Nachos is instructional software that allows students to study and modify a real operating system. The only difference between Nachos and a ``real'' operating system is that Nachos runs as a single Unix process, whereas real operating systems run on bare machines. However, Nachos simulates the general low-level facilities of typical machines, including interrupts, virtual memory and interrupt-driven device I/O.
The rest of this document attempts to provide a road map through Nachos. It is not intended to replace the need for reading the source code; rather, it this document attempts to speed up the learning process by describing ``the big picture.''
Section 2 provides an overview of the underlying machine
that Nachos simulates and runs on top of. Section
describes Nachos threads and the mechanics of scheduling,
synchronization and thread switching. Section 4
describes how user-level programs execute as separate processes within
their own private address spaces. Section 5 provides an
overview of the filesystem implementation. Section 6
reports on experience using Nachos to teach operating systems courses,
and provides specific suggestions on individual assignments.