Systems Programming

Welcome

Applications programmers write code that ordinary people use to get their jobs done. Systems programmers write the tools that allow applications programmers to do their work. Systems programming therefore encompasses operating systems (which itself includes process scheduling, virtual memory, and low level control of a computer's hardware), device drivers (which connect novel pieces of hardware to an operating system), compilers, linkers, databases, and a whole host of tools we computer scientists use every day without thinking about them.

This class explores how things work under the covers. Specifically, you will write programs in C on a Linux platform to explore concepts such as dynamic memory management, file I/O, and parallel processes. At the end of the course, you should not only be able to accomplish the tasks that we specifically covered: you will have learned how to go about understanding new systems concepts and system calls to solve new problems.




Author: Mark A. Sheldon
Last modified: 23 January 2008