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

Latest Announcements

12/11: Late assignments
We will accept code submissions until 11:59 PM Monday December 15 (under the usual lateness rules: slack hours and/or deduction of grades for lateness). After that time, we will not accept submitted assignments at all.
12/11: Open vs. closed notes for final exam
The final exam is open notes except that you cannot bring printouts of JOS source code. The exam is also closed computer: no laptops, phones, tablets, etc.
12/9: Thursday's reading is now posted
Sorry for the delay
12/9: Prior exam posted
The exams page includes an example exam. There are no guarantees about similarity of format, difficulty, scope, etc.
12/9: Office hours rescheduled
Mike's office hours this Friday will be 4:00-5:00 PM rather than 1:00-2:00 PM
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.

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: Thu Dec 11 17:08:18 -0500 2014 [validate xhtml]