This course is intended to give students a thorough understanding of design and implementation issues for modern operating systems.
We will cover key design issues in implementing an operating system, such as memory management, inter-core synchronization, scheduling, protection, inter-process communication, device drivers, and file systems, paying particular attention to system designs that differ from the traditional monolithic arrangements of Unix/Linux and Windows.
Prerequisites: This course builds on the undergraduate operating systems course (CSE 451 or equivalent), the contents of which will be assumed knowledge. Proficiency in C programming is assumed.
Project: The course is structured around a significant project which builds up, over the course of the semester, a fairly complete operating system for the x86 architecture, running on the QEMU emulator. The OS is based on the jos teaching operating system, developed at MIT.
Please go to the project page to access the project.
Lectures: Where practical, lectures will align with project-related material (to provide more background, knowledge, and time in completing the practical work), and also the prior research ideas, some of which have informed the design of jos. They will also provide comparisons between systems such as Unix, Windows, L4, Barrelfish and jos.
Discussion: Instead of email, we will use Piazza for class and project discussion and Q&A. Please subscribe to Piazza as soon as possible if you're attending this lecture. Click here to go to the enrollment page.
Readings: There is no textbook for this course, as no published book covers the material in sufficient depth. Instead, reading for the course will consist of research papers and system documentation; this will be posted on the Piazza site in due course.
Grading: Grading will likely be based solely on the project.
Class Schedule: The class schedule is available here.
Video: Lecture videos can be found here.
Parking at Microsoft Building 99 [Directions]: Please use the multi-story parking garage opposite to Building 99 main entrance. If you are not a Microsoft employee and building 99 is locked when you arrive, please wait for a student who is a Microsoft employee to let you in. If you arrive late, please find Matt McGinley, who runs our A/V. Or better yet, get the cell phone number of a friend at Microsoft who is also attending the class. Please try to be on-time, since phone calls interrupt the lecture.