Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Not Another Completely Heuristic Operating System

From Wikipedia, the free encyclopedia
Operative System
This article includes a list ofgeneral references, butit lacks sufficient correspondinginline citations. Please help toimprove this article byintroducing more precise citations.(November 2009) (Learn how and when to remove this message)
Operating system
Nachos
DeveloperUniversity of California, Berkeley
(Thomas Anderson, Wayne A. Christopher, Steven J. Procter)
Written inC++
Working stateDiscontinued
Initial release1992; 34 years ago (1992)
Latest release3.4
Latest preview4.0 / 1996; 30 years ago (1996)
Supported platformsMIPS architecture
Kernel typeMonolithic
LicenseBerkeley Software Distribution
Official websitewww.cs.washington.edu/homes/tom/nachos/

Not Another Completely Heuristic Operating System, orNachos, is instructional software for teachingundergraduate, and potentially graduate level operating systems courses. It was developed at theUniversity of California, Berkeley, designed byThomas Anderson, and is used by numerous schools around the world.

Originally written inC++ forMIPS, Nachos runs as a user-process on a host operating system. A MIPS simulator executes the code for any user programs running on top of the Nachos operating system. Ports of the Nachos code exist for a variety of architectures.

In addition to the Nachos code, a number of assignments are provided with the Nachos system. The goal of Nachos is to introduce students to concepts in operating system design and implementation by requiring them to implement significant pieces of functionality within the Nachos system.

In Nachos' case, Operating System simulator simply means that you can run an OS (a guest OS) on top of another one (the host OS), similar toBochs/VMware. It features emulation for:

which are there to run the Nachos[1] user space applications. That means that you can write programs for Nachos, compile them with a realcompiler (an oldgcc compiler[2] that produces code for MIPS) and run them. The Nachoskernel instead is compiled to the platform of the Host OS and thus runs natively on the Host OS' CPU.

Nachos version 3.4 has been the stable, commonly used version of Nachos for many years. Nachos version 4.0 has existed as abeta since approximately 1996.

Implementation

[edit]

Nachos has various modules implementing the functionality of a basic operating system. Thewrapper functions for varioussystem calls of the OS kernel are generally implemented in a manner similar to that of theUNIX system calls.[3] Various parts of the OS are instantiated as objects using the native code. For example, a classMachineis used as the master class of the simulated machine.[4] It contains various objects, such asFileSystem,Processor,Timer, etc. which are defined to simulate various hardware aspects.

Major components

[edit]

NachOS Machine - Nachos simulates a machine that roughly approximates the MIPS architecture. The machine hasregisters, memory and a CPU. The Nachos/MIPS machine is implemented by the Machine object, an instance of which is created when Nachos starts up. It contains methods like Run, ReadRegister, WriteRegister, etc. It also defines an interrupt object to handleinterrupts. Timer and statistics are also implemented in this.

NachOS Threads - In NachOS athread class is defined. A thread has an associated state with it which may be ready, running, blocked or just created. The thread object has various methods like PutThreadToSleep, YieldCPU, ThreadFork, ThreadStackAllocate, etc. Each thread runs at avirtual address space.

NachOS UserPrograms - Nachos runs user programs in their own privateaddress space. Nachos can run any MIPS binary, assuming that it restricts itself to only making system calls that Nachos understands. In Unix, "a.out" files are stored in "coff" format. Nachos requires thatexecutables be in the simpler "Noff" format. To convert binaries of one format to the other, use the coff2noff program.

[5]

Successors

[edit]

As Nachos has not been in active development for a number of years, and possesses a number of recognized flaws (particularly with regards toportability: Nachos relies on MIPSassembly code, and requires porting to run onx86 architecture), successor projects have been initiated. In 2004,Stanford University createdPintos, a Nachos-inspired system written inC and designed to run on actualx86 hardware. In 2000, Dan Hettena at UC Berkeley ported Nachos toJava as Nachos 5.0j, in an effort to make Nachos more portable, more accessible to undergraduates, and less susceptible to subtle bugs in student code that had in earlier versions often dominated student project development time. Another Java-based version was created by Professor Peter Druschel atRice University. It was later adapted by Professor Eugene Stark atStony Brook University in 2003 and applied in theoperating systems course. AtGraz University of Technology (Austria), a system called SWEB ("Schon wieder ein Betriebssystem") has been implemented and is used to teach operating system principles.

Compared to other teaching operating systems

[edit]
SystemLines of codeKernel typeLanguageHardware environmentLacks (vs others)
Minix 1~12kMicrokernelCx86-16?
Minix 2?MicrokernelCx86-32?
Minix 3~100k+MicrokernelCx86-32N/a
Nachos~15kNo kernel. User-space OS simulatorC++MIPS simulatorSMP,paging,real hardware
Pintos~25kMonolithicCx86 (typically underQEMU/Bochs)SMP,user-space drivers
Xinu~10kMonolithicCx86 /ARMSMP, paging,virtual memory
xv6~10kMonolithicCx86 /x86-64 /RISC-Vuser-space drivers,POSIX layer

References

[edit]
  1. ^"Guide to Nachos, University of Pittsburgh". Retrieved2014-02-17.
  2. ^"Compiling C and C++ Programs, University of Wisconsin". Retrieved2014-02-17.
  3. ^"Nachos Beginner's Guide, Level 2: System calls and exceptions, Linköping University". Retrieved2014-09-09.
  4. ^"Machine Class at Nachos Documentation, University of California, Berkeley". Retrieved2014-09-09.
  5. ^"A road map through NachOS, Duke University". Retrieved2015-05-05.

External links

[edit]
General
Variants
Kernel
Architectures
Components
Process management
Concepts
Scheduling
algorithms
Memory management,
resource protection
Storage access,
file systems
Supporting concepts
Retrieved from "https://en.wikipedia.org/w/index.php?title=Not_Another_Completely_Heuristic_Operating_System&oldid=1320281600"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp