Summary: The Nachos Instructional Operating System
Wayne A. Christopher, Steven J. Procter, and Thomas E. Anderson
Computer Science Division
University of California
Berkeley, CA 94720
Abstract
In teaching operating systems at an undergraduate level, it is very important to provide a
project that is realistic enough to show how real operating systems work, yet simple enough that
the students can understand and modify it in signi cant ways. A number of these instructional
systems have been created over the last two decades, but recent changes in hardware and software
design, along with the increasing power of available computational resources, have changed the
basis for many of the tradeo s made by these systems.
We have implemented an instructional operating system, called Nachos, and designed a
series of assignments to go with it. Our system includes CPU and device simulators, and runs
as a regular UNIX process. Nachos illustrates and takes advantage of modern OS technology,
such as threads and remote procedure calls, recent hardware advances, such as RISC's and
the prevalence of memory hierarchies, and modern software design techniques, such as object-
oriented programming and distributed computing.
We have used Nachos in the undergraduate operating systems class at Berkeley, with positive
results. Nachos is freely available, and we would like to see it widely used for undergraduate