Overview

Operating systems manage computing resources and provide the abstractions that programmers use to build complex, interactive systems.  In this course, we will study OS concepts as pioneered or refined in the Unix operating system and modern innovations as implemented in recent distributions of Linux.

The main topics this semester are concurrency (including process control, interprocess communication, and threads),  
resource management  (including multiprocessing and virtual memory), and basic network programming (client-server architectures, network protocols, and multithreading).  We'll program with the software interface (system calls) provided by Linux for application programmers and study abstractions supported by the OS such as processes, virtual memory, files, devices, and sockets.

Prerequisites

Textbooks

Administrative Handouts


Stephen P. Carl
scarl AT sewanee DOT edu