The GWU advanced OS class dives into the details of trade-offs in the design and implementation of complex code-bases, with a focus on microkernels and hypervisors. This repo includes the syllabus and other organizational aspects of the Advanced OS class.
In this class, students will:
- Learn how to optimize for writing readable code.
- Understand how to do a deep, detailed dive into a code-base, and practice this in multiple code-bases with related goals.
- Understand how security guarantees are engineered into systems.
- Understand the trade-offs involved in designing for effective parallelism.
- Implement an OS on top of a microkernel.
Graduate students should have taken the Architecture class, while undergraduates should have taken the OS class. This class is quite detailed and focused on the C implementation of various systems. If you don't have a decent grasp of C, this class will be quite challenging. If you can effectively read C code, but still feel a little shakey with the language, you'll likely be in good company in the class.
Find the class schedule and timeline.
The "book" for this class includes
- lectures for the class and some notes about each lecture's discussion,
- an outline "book" of the material for the class, with many references,
- background concepts can be learned using the lectures for the undergraduate OS class,
- the FAQ book for the undergraduate OS class, which will be expanded in this class, and
- the source code for the various systems we'll study.
All of this is free, and you don't need to purchase any materials.
This class will be very implementation-focused. We'll focus on learning how to implement various OS features relating to system structure, security, and parallelism, and will focus on studying that theory with real implementations. As such, students have to be willing and able to focus on heavy implementation. The class will also require a fairly large amount of peer review, so students have to buy into helping each other, and providing each other useful feedback.
Calibrating your expectations: For those of you who have taken the undergraduate OS class, this class is relatively less of a committment. Compared to that class, students will be given more leeway and responsibility to manage their own time. Compared to the IoT class (Spring '20), this class will be more traditional including continual instruction and multiple, shared homeworks. As such it will be less based on papers and will have more than a single project.
See the grading information for more details.