CSCI-GA.3250-001: Honors Operating Systems (Grad)

Latest Announcements

11/11: Class will not meet this Thursday
We've gone over by 15 minutes far more than five times...
11/2: Minor change to Lab 5 files
If you haven't started Lab 5, you don't need to act. If you have started, then do a 'git pull' to get the update. As usual, you can use gitk or other git tools to inspect the diffs.
11/2: Lab 7 released
Lab 7 is released. The lab consists of three deliverables. Project proposals are due by email to the staff email list on November 17 (no slack hours can be used). Code is due on December 12. Demos will take place on December 15 and 16.
10/29: Lab 6 released
The lab is in two parts. Part 6A is due Friday, November 14, and part 6B is due Friday, November 21.
10/19: Lab 5 released
The lab is due November 7, 9:00 PM.
10/15: Schedule change for Friday office hours
Mike's office hours Friday will be 2:15-2:45 and 4:45-5:15 PM rather than the usual time of 1:00-2:00 PM
10/15: Updating RCU link
In the originally posted paper for RCU, Figure 15 did not display. This issue is fixed in the schedule page. The updated link is also here.
10/9: Memory barriers
We discussed memory barriers in class today. This paper (also posted on the schedule page) delves into memory barriers.
10/9: Read-Copy Update links updated
The reading for our next class consists of a paper, a talk, and skimming another paper
10/7: The makeup class is rescheduled to the following week
The makeup class will be Friday, October 17 at 3:00 PM, not Friday October 10 at 3:00 PM.

See all announcements RSS 2.0 feed

Course information


This course is for students who want to hack on operating systems and more generally learn how they work. Class meetings will cover research papers (both classic and recent) and readings on operating systems, with a significant portion of class time devoted to discussion. A crucial component of the course is the labs. Students will implement the core of an exokernel-style operating system, called JOS. (JOS was developed for MIT's 6.828 and has been used in courses at several other schools, including NYU.)

Prerequisites and suggested background

Who should take this course?

PhD students who are interested in systems. This course satisfies the master's core OS requirement. If you are a masters student who has had previous exposure to systems (see above), then this course might be a good way to satisfy the core OS requirement, provided that you are prepared to challenge yourself.

The work

The class will consist of assigned readings, twice-weekly discussions, labs, a final exam, and a final project:

We will assume that you check the announcements (either on this site or by RSS) every 24 hours. Also, we will use Piazza and occasionally email you (for the most urgent communications). You are responsible for monitoring all three of these media.

A note about the labs

Regardless of whether you have the suggested background, we recommend that you start the labs long before they are due. The standard advice is "Start the labs early", but that is not quite right. The best advice, I think, is "Start the labs on time, but on time is probably much earlier than you think it is".


We are indebted to the present and past staffs of related courses elsewhere: MIT, UCLA, Harvard, Stanford, and UT.

Last updated: Tue Nov 11 17:45:27 -0500 2014 [validate xhtml]