CS 1610: Operating Systems (2025)

Grading server

Overview

This is an in-depth course in operating systems design and implementation, focusing on multicore operating systems kernels. Operating systems are some of the most complex software artifacts that exist. Kernels abstract the features provided by computer hardware, making those features safer and more convenient to use. This means that OS designers have to understand how hardware works (at least at the level of specifications) and how software works. OS programmers also must become comfortable with navigating in, and contributing to, code bases too large to wholly understand. Most of us can pick up this important skill.

The course uses Chickadee, an operating system based on CS 61 WeensyOS. Chickadee takes advantage of newer hardware, language, and OS design features than many teaching operating systems.

Lecture: Monday/Wednesday, 2:15–3:30pm, SEC LL2.224
Section: Biweekly mandatory sections, locations and times TBD

Coursework

Collaboration and academic integrity

Discussion, collaboration, and the exchange of ideas are essential to doing academic work, and to engineering. You are encouraged to collaborate with your classmates as you work on problem sets; for instance, you may have one or more partners who you frequently collaborate with. You are welcome to discuss general strategies for solutions as well as specific bugs and code structure questions. You may also browse Internet resources for general information (though you may not access prior solutions that may or may not be available on the web).

However, the work you turn in must be your own—the result of your own efforts. You should understand your code well enough that given enough time, you could replicate your solution from scratch, without collaboration and with access to only general reference material. Every student will turn in a separate code base, and we will check that these code bases show evidence of individual work.

You must cite any books, articles, online resources, and so forth that helped you with your work, using appropriate citation practices. We also ask you to list the names of students with whom you have collaborated on labs, and briefly describe how you collaborated. (You do not need to list course staff.)

Limitations and caveats:

In addition to this policy, college students are subject to Harvard College’s academic integrity policies as described in the College Handbook for Students.

Generative AI note: Do not ask generative AI tools like ChatGPT or GitHub Copilot to write code for you. Submitting code that was written by or directly inspired by these tools is a violation of the academic integrity policy. Using generative AI tools as a search engine to find and/or summarize relevant technical documents or discussions is allowed, but when you submit your psets, you must check in full transcripts of relevant chats with generative AI tools. We recommend that students use extreme caution when interacting with generative AI models (or random content on the web)--that content may be incorrect, sometimes in subtly ways!

Rationale: Students benefit from talking through their code with partners. There’s less stress and loneliness and easier debugging. But we want every student to understand the work of every problem set—that’s what the class is about.

Textbooks and resources

The class will use Ed to host the discussion board. Go the Canvas page for CS 1610 to find the sign-up link for the Ed board!

There are no mandatory textbooks for CS 1610, but we can recommend some helpful texts if you like that sort of thing. They can be rented for Kindle.

There are also extensive online resources on kernel design, architecture, and operating systems development.

There are also many online resources (of varying quality and age) on C++. Here are some good ones:

Course staff

Lecturer: James Mickens, mickens+cs161@g.harvard.edu
Office hours: SEC LL2.224, Monday/Wednesday 3:30pm–4:30pm (i.e., immediately after class)

TF: Victoria Kauffman (victoriakauffman@college.harvard.edu)
Office hours: Leverett dining hall, Tuesday/Thursday 8:00pm-9:00pm

TF: Anthony Malysz (anthonymalysz@college.harvard.edu)
Office hours: Eliot dining hall, Sunday 8:00pm-10:00pm

TF: Vikram Singh (vikramsingh@college.harvard.edu)
Office hours: Mather dining hall, Monday 8:00pm--10:00pm

TF: Austin Wilson (amwilson@college.harvard.edu)
Office hours: Winthrop CS Night, Wednesday 8:00pm-10:00pm