CPSC 405: Learning by doing

Catalog Description: CPSC 405 - Operating Systems and Systems Programming (4 Credits) Prerequisites: CPSC 305 and CPSC 340. This course examines the abstractions above the hardware that make a computer usable to both programmers and users. These abstractions include processes, context switching, concurrent programming, semaphores, virtual addressing, transactions, access control, and virtualization. Many of these abstractions are the foundation for operating systems kernel development. The abstractions are also applicable to any large-scale programming project. Programming intensive.

You may wonder why we are studying xv6, an operating system that resembles Unix v6, instead of the latest and greatest version of Linux, Windows, or BSD Unix. xv6 is big enough to illustrate the basic design and implementation ideas in operating systems. On the other hand, xv6 is far smaller than any modern production O/S, and correspondingly easier to understand. xv6 has a structure similar to many modern operating systems; once you've explored xv6 you will find that much is familiar inside kernels such as Linux.


I am basing this course on MIT's Operating System Class, which is part of the Parallel and Distributed Operating Systems (PDOS) section. The course number is PDOS 6.1810. The next two paragraphs are from the MIT PDOS Website.

6.1810 would not exist today had it not been for a wonderful set of past TAs (Josh Cates, Austin Clements, Russ Cox, Cody Cutler, Bryan Ford, Max Krohn, Emil Sit, Jonathan Behrens, and Anish Athalye). They made this class a reality. Collectively we dedicate 6.1810 to the memory of Josh Cates; we hope that many students will be inspired by Josh's enthusiasm for operating systems.

We are also grateful to the students and teaching staff at MIT (including SIPB) and other schools for their many contributions.

Questions or comments regarding CPSC 405? Send e-mail to Gusty at ecooper@umw.edu.

Creative Commons License Top // CPSC 405 home // Last updated Saturday, 2-Mar-2024 13:39:24 EST