Nachos 5.0j Tutorial

Rong Zheng*, Ala Shaabana and Qiang Xu
Dept. of Computing and Software
McMaster University
Hamilton, ON, Canada
{rzheng,shaabaa,xuq22}@mcmaster.ca

December 18, 2014

*Contact author
Contents
Disclaimer
How to Use this Document
1 Introduction
2 Installation and Execution of Nachos 5.0j
 2.1 System requirements
 2.2 Nachos Installation
 2.3 Cross-compiler Installation
 2.4 Organization of Nachos 5.0j sources
 2.5 Execution
 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
 Exercise
4 Threads and Scheduling
 4.1 KThread and Nachos thread life cycles
 4.2 Scheduler
 Exercise
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
 Exercise
6 Nachos Memory Management
 6.1 Memory allocation
 6.2 Address translation
 Exercise
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