Contents

1 Introduction
2 Installation and Execution of Nachos 5.0j
 2.1 System requirements
 2.2 Nachos Installation
  2.2.1 Windows Installation
  2.2.2 Linux Installation
  2.2.3 Mac OS X Installation
 2.3 Cross-compiler Installation
  2.3.1 Linux Installation
  2.3.2 Mac OSX Installation
  2.3.3 Windows Installation
 2.4 Organization of Nachos 5.0j sources
  2.4.1 nachos.machine
  2.4.2 Others
 2.5 Execution
  2.5.1 Nachos configure file
  2.5.2 Makefile
  2.5.3 Command line options
 2.6 Using Eclipse with Nachos
3 Nachos Machine
 3.1 Boot process
 3.2 Processor
 3.3 Interrupt management
 3.4 Timer
 3.5 Serial console
 3.6 Network link
4 Threads and Scheduling
 4.1 KThread and Nachos thread life cycles
 4.2 Scheduler
5 User Level Process
 5.1 Developing and compiling user programs
 5.2 Loading COFF binaries
 5.3 User threads
 5.4 System calls and exception handling
6 Nachos Memory Management
 6.1 Memory allocation
 6.2 Address translation
  6.2.1 Software-managed TLB
  6.2.2 Per-process page table
A Common Object File Format (COFF)
 A.1 COFF header
 A.2 Section table
B Q&As – Questions Raised During Nachos Projects
 B.1 Virtual memory