PortOS: An Educational Operating System

What is PortOS ?

PortOS is an instructional operating system for the Post-PC environment, designed for use in an undergraduate operating systems course. It provides the necessary infrastructure for developing operating systems on desktops and handheld devices. It runs under Windows, including NT/2K/ME/98/XP as well as CE/PocketPC/HandheldPC. Its main goal is to introduce concepts related to self-organization, ubiquitous computing and mobility into the undergraduate curriculum. It supports standard development and debugging tools, including command line builds as well as Microsoft Visual Studio.

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 Projects

PortOS projects start from the simple, fundamental material and build up to a peer-to-peer, decentralized instant messaging application over wireless hosts.

Ports and Supported Platforms

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.

History and Acknowledgements

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.


PortOS is available for free. You can download the individual project components through the project pages above.

Or you can download the whole kit here.

Emin Gun Sirer