What is systems programming?
Systems programming is a term that has evolved over time, and it can encompass quite a few disparate disciplines. Generally, it’s understood in opposition to application programming, which is the writing of programs for regular people (not computer scientists exclusively) to use to get something done. Word processors, spreadsheets, web browsers, payroll programs are all applications programs. Systems programs are the tools that make application programming possible. Often, this means that systems code is the intermediary between the hardware and other programs. Operating systems are a great example: They regulate access to precious resources, protect multiple users from each other, and provide a consistent interface to hardware capabilities. Device drivers are another example, often considered part of the operating system: They provide a consistent interface to the (rest of the) operating system for various pieces of hardware. All the programming language tools we use (compilers, assem