For operating systems, students often learn as much from the programming assignments as they do from the lectures or textbook. We wrote OS:PP in part to help make it easier to include challenging labs in an OS course.

There are a number of existing labs that have proven to go well with OS:PP. Here are a few; others can be found by looking at the syllabi page.

Mike Dahlin developed a set of standalone class assignments, includinguser-level thread management, synchronization of network buffers,and atomic persistent storage. Although no longer supported,the materials are available here.

In my own class, I use a subset of Margo Seltzer's OS/161 project. The project is to build a bootable multiprocessor operating systemfrom scratch, given some initial code; the project includesa MIPS machine simulator so that students experience interrupt handlers and page faults as in a normal system. OS/161 is one of several course projects derived from the Nachos system I developed in the early 1990s. Although it is a complete re-write, it would be familiar to anyone who has done Nachos. Caution: Students find OS/161 to be a tremendous amount of work; at UW, we subset it (we're on quarters so we have to), but even so it is still a tremendous amount of work. My subset is here.

Another option is Pintos, developed at Stanford but used at various schools. Like OS/161, Pintos is also a re-write of Nachos to boot on native hardware. Pintos runs on x86 rather than MIPS, and it assumes a uniprocessor rather than a multiprocessor platform. Pintos comes with an extensive test suite. Pintos is less work than OS/161, but it is still quite a lot of work for students. (OS/161 has more of an open-ended design, while Pintos channels students along certain code paths.) Some use a subset: for example, Berkeley uses the first two assignments in Pintos, and complements it with an assignment to build a key-value store.

Recent Articles from the Blog

  • Instructor solution sets

    We have posted solution sets to the exercises in the 2nd edition on the instructor portion of the website. Registration and login is now required...

  • Kindle edition is up!

    We are happy to announce that OSPP, 2nd edition is now available in ebook format via the Kindle app for tablets and smartphones. The ebook...

  • Welcome to OS:PP 2nd Edition!

    Welcome to our new website for Operating Systems: Principles and Practice, second edition, by Tom Anderson and Mike Dahlin. We have put together in one...