The PortOS projects cover threads, synchronization, scheduling, unreliable datagrams, reliable networking, ad-hoc routing, and filesystems. The projects were designed for and used in a 14-week honors course at Cornell, though the modular design of the assignments should make them suitable for use in a wider range courses.
This paper describes PortOS in more detail:
PortOS shares many of the goals of the Nachos instructional operating system. It differs from Nachos in that:
PortOS works on Windows platforms for both desktop and handheld environments. It runs on Windows NT/2K/ME/98/XP as well as CE/PocketPC/HandheldPC. We use Windows XP and HP Jornadas running Handheld PC 2K equipped with HP/Lucent 802.11b cards in our class, and those are the platforms we officially support. PortOS also runs under the WinCE simulators.
PortOS was developed at Cornell by Emin Gun Sirer, Ben Atkin, Sunny Gleason, Vivek Uppal, Ken Hopkinson, Alin Dobra, Adrian Bozdog and Niranjan Nagarajan, based on Brian N. Bershad's original code developed for Unix. The following people also suggested improvements and fixes (in chronological order): Alex Mouchtchouk, Alex Livshits, Alex Krishenbaum, Vijay Kumar.
This material is based upon work supported by the National Science Foundation under Grant No. 0203449. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.
PortOS was used at Cornell in Spring 2003, Spring 2002, Fall 2001, and Spring 2001. These links contain the lectures and handouts I used in conjunction with PortOS.
Or you can download the whole kit here.