Nachos Overview 2011 级 OS 级级级级 2013 级
Nachos Overview
2011 级 OS 课程设计2013 秋
to get your hands dirty
Read and analyze Build
observe
the only way to teach operating systems concepts and their design and implementation effectively is
to have students read and experiment with an operating
system at the source code level.
Nachos
• The Nachos operating system is a small working operating system on MIPS architecture written by Prof. Tom Anderson from the University of California at Berkeley and used widely for teaching operating systems throughout the world
• 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.
How to study
• Our goal is to give you guidance not only to study the concepts in the text, but also to read and understand the source code of the Nachos operating system
• we use the Nachos source code to illustrate the concepts. This is probably the only way to enable you to have a sound grasp of the concepts described in the text.
How to study
• the first round of reading. As a matter of fact, you will need to go back and forth between the text and the relevant Nachos source code many times before you can really grasp the concepts in this module
• Understanding and experimenting
Contents
• Introduction• Installation• Nachos directory structure
1. Introduction
• Nachos has an excellent balance between simplicity and realism– Nachos is a UNIX process– Nachos was originally developed for use on DEC MIPS
systems (DEC was acquired by Compaq years ago, which was acquired in turn by HP recently) and user programs are in binary format, making Nachos real enough avoiding the sense of a toy.
• side- by- side– The program nachos implements both the machine
simulation and the operating system
1.1 The architecture of Nachos
1.2 MIPS simulator
• Timer• Disk• Network• Console– a display and a keyboard
• MIPS instruction processor
1.3 MIPS/intel
• user- level code– Run at MIPS– gcc cross- compile
• Nachos– Run at intel
2 Installation
• 2.1 Cross compiler• 2.2 Nachos
3. Nachos directory structure
• code– contains all source code and configuration files for
Nachos– bin.
• COFF for unix; NOFF for Nachos
– machine• The machine simulation
– threads• Thread support• main() routine of the nachos program, in main.cc• the best place to start reading the Nachos code
3. Nachos directory structure cont.
• code– userprog
• the creation of address spaces• loading of user• (test) programs, and execution of test programs on the simulated
machine
– filesys• The ”real” file system uses • A“stub” file system
– Network• support for networking
– test• User test programs to run on the simulated machine
4 Assumption of UNIX skills
• basic UNIX commands and file systems• make utility and Makefiles• gdb debugger tool
5. What This Course Is About
• It concentrates on the concepts and techniques in design and implementation of operating systems
• This course covers the design and implementa-tion of three principle components of operating systems– Process Management– Memory Management– File Systems Management
6. Teaching Material
• Textbook– Operating System Concepts"
• Nachos Source Code– about 9,500 lines of C++ code with extensive
comments• Study book
Laboratoris
• Laboratory 1: Installation of Nachos System• Laboratory 2: Makefiles of Nachos • Laboratory 3: Synchronization Using Semaphores • Laboratory 4:Nachos File system• Laboratory 5: Extendable Files• Laboratory 6: User Programs and System Calls• Laboratory 7: Extension of AddrSpace• Laboratory 8: System Calls Exec() and Exit()
Assignments
• Assignment 1: Overview and process• Assignment 2: Synchronization and monitors• Assignment 3: File System Interface and
Implementation