Spring 2023
Brown University
CS167 offers comprehensive insights into the principles and intricacies of operating systems. Topics range from multithreaded programming to file system designs. Students will not only grasp theoretical knowledge but also get hands-on experience, particularly through the optional lab CS169, where they can develop an operating system called Weenix.
In this class, you'll have the opportunity to learn both the overarching principles of operating systems as well as the intricacies of how they work.
We'll cover topics including multithreaded programming; managing threads, interrupts, and storage; processor scheduling; operating system structure; virtualization; security; and the design of both local and distributed file systems. You'll develop your skill as a C programmer while simultaneously learning what goes on inside your computer from the moment you power it on.
As part of the class, if you are enrolled in CS167, you may choose to take the (optional) half-credit lab, CS169. If you do so, you will attend the same lectures and complete the written assignments as usual. However, you will only complete the first two programming assignments from CS167, before embarking on an in-depth project wherein you build much of the functionality of a small operating system called Weenix. It is a significant time investment, and you'll still get a lot from the class if you don't take the lab. Some thoughts on taking CS169 from previous students can be found here. CS267 covers the material of both CS167 and 169; it is for graduate students only.
Operating Systems In Depth: Design and Programming, 1st Edition
Lecture slides and notes available at Lectures
No videos available
Assignments available at Assignments
Lecture reviews and help sessions available at Resources