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.