Catalog description: System programming with emphasis on processes, memory management, multithreaded programming, synchronization and deadlocks, interprocess communication, parallel and distributed computing, networking, files systems, security, signals, and virtualization containers.
Longer Description: This class is a programming-focused class, exploring how programs interact with the operating system and use system and related services. As far as programming level, you can consider it as sitting between CSC 261 (hardware and assembly language) and CSC 130/230 (higher-level programming without hard connection to the underlying system). The class will use C for programming in a Linux environment, interacting with the system through Linux system calls, the standard C library, and support libraries such as pthreads. The class is heavy on specifics and concrete details, and light on theory/generality which will be covered in a later class (CSC 462 -- Principles of Operating Systems).