Course Description
Summary
A close look at how the unix operating system runs processes. Topics include machine-level data representation, C code and its compiled x86 assembly, virtual memory, process swapping, stack overflows, forking, the system heap, how compiling and linking are implemented, and inter-process communication. This material is a standard intermediate level part of undergrad computing programs, providing an understanding of the interaction between an operating system, its resources, and the programs it runs.
Students will need a computer (Windows, Linux, MacOS) onto which software and modules may be installed. Some cloud-based computing resources may be provided.