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

Latest Announcements

9/17: Lab 3 released
The lab is in two parts. Part 3A is due Friday, October 3. Part 3B is due Friday, October 10.
9/16: Paper reading advice
Here is helpful paper reading advice.
9/16: Adjustment in reading schedule
On Thursday, we will discuss the Comparison of hardware and software techniques. If you read the paper for today, please reskim it before Thursday's class.
9/10: Lab 2 released
The lab is in two parts. Part 2A is due Wednesday, September 17 (only five days after Lab 1). Part 2B is due Friday, September 26.
9/8: Mike's Friday office hours rescheduled
This week, Mike's office hour will be Thursday 5:30-6:30, not Friday 1:00-2:00
9/4: Grading script should be fixed now
If you haven't started the lab, don't worry about any of this. If you have, do a 'git pull' (first making sure you are on the branch lab1).
9/4: Lab1 grading script broken
We released a broken grading script. We will release a fix shortly, along with instructions to update. However, you can work most of the lab without this script, so the broken script should not block your work.
9/4: Lab 1 released
It is due Friday, September 12, 2014.
9/4: Signup link for course email list
Please sign up for the course email list here. Apologies for not having included this link previously.
9/2: Posted grading, exams, reading schedule for first few weeks
The lab schedule is still TBD.

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: Wed Sep 17 21:23:03 -0400 2014 [validate xhtml]