Sep 25, 2008

Nachos

It is an instructional operating system. The original nachos written in C++ with little assembly code, ran as a regular UNIX process. It simulated the hardware devices for a simple computer
Thus it has simulated:
1. a timer
2. a console
3. a MIPS R3000 processor
4. a disk
5. a network link
In order to achieve reasonable performance the Operating System kernel ran it natively, while user processes ran on simulated processor. Because it is simulated multiple Nachos instance can be achieved in the same machine.

Java
Nachos machine:
---------------
Nachos simulates a real CPU and hardware devices, including interrupts and memory management. The java package nachos.machine provides this simulation.

Configuring nachos:
-------------------
The nachos simulation is configured for various projects using the nachos.conf file(mostly equivlent to BIOS configuration of modern pc). It specifies which device to use and which nachos kernel to use.

Boot process:
---------------
Similar to real machine booting. An instance of nachos.machine.Machine class is created to begin booting. The Machine object(The hardware of nachos) initializes the devices including
1. interupt controller
2. timer
3. elevator controller
4. MIPS processor
5. console
6. file system.
The Machine object then hands control to the AutoGrader in use(an action equivalent to the loading the bootstrap code from the boot sector of the disk). It is the AutoGrader that creates a Nachos kernel, starting the operating system. The nachos kernel is just a subclass of nachos.machine.Kernel.

Nachos hardware devices:
------------------------
Nachos simulation includes several hardware devices e.g. network interface. But elevator controller device is unique to nachos.
1. Interrupt management
2. Timer
3. Serial console
4. Disk
5. Network link

No comments: