We have implemented a protected-mode, stand-alone operating system that supports multi-threading. This code runs directly on the PC hardware without support from any other operating system. We have a handful of demonstrations (see section 3 on page ) that illustrate the multi-threading and concurrency control. Our code is seamlessly integrated into the existing Nachos code, such that Nachos can be run under an existing operating system such as FreeBSD or SunOS with minimal run-time support, or it can be relinked without recompilation to run stand-alone on real hardware.
We set out to implement a multi-threaded, stand-alone operating system that would run unassisted on the Intel 80486 processor. Our original goals were to implement the multi-threading, user programs, and filesystem modules of the nachos project. While these are still desirable goals, and attainable from the code as it exists now, only the multi-threading has been realized. The code is very extensible, however, and any such modules could be implemented by following examples in the current code.
Nachos/486 has a number of potential uses and applications. It could be used as an advanced graduate level edition of the Nachos operating system project. Designing a hardware interface to an operating system that has been simulated and not yet implemented is a necessary part of commercial operating system development. Our work could provide students with implementations of the boring, mundane, or arcane parts of this project. The students would have to implement the interesting and sometimes subtle parts of porting an operating system from its simulator to its hardware. As with the other parts of nachos, we can provide the skeleton and let students flesh it out. It is the authors opinion that the positive re-enforcement from watching the results of weeks, if not months, of intense work running unassisted on a computer is invaluable.
Nachos/486 can also serve as a vehicle for exploration into the Intel architecture. It allows the user to incrementally add support for protected mode features, while maintaining a runnable operating system. Various test cases can be designed and implemented to test different aspects of the protected-mode operation, and the built-in statistics gathering can aid the developer in understanding the operation of the kernel. All of this is provided without removing the simulator, so that code can be verified before it is run alone on the hardware. While the fact that Nachos as distributed by Berkeley uses a freely available MIPS simulator, it would not be difficult to replace this portion of the system with a CPU simulator specific to the Intel x86 family. The authors are aware of at least one such simulator.