Начос операциялық жүйесі: UC Berkeley-де жасалған оқулық бағдарлама. MIPS симуляторында жұмыс істейді, ОС курстарында кеңінен қолданылады. C++ тілінде.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Операциялық жүйе
Operative System
Nachos, яғни «Тағы бір толыққанды эвристикалық операциялық жүйе емес», – бакалавриат және мүмкін жоғары сынып студенттеріне арналған операциялық жүйелер курстарын оқытуға арналған оқу бағдарламалық құралы. Ол Калифорния университетінде (Беркли) Томас Андерсон жасаған және әлемнің көптеген оқу орындарында қолданылады. Бастапқыда C++ тілінде MIPS үшін жазылған Nachos хост операциялық жүйеде пайдаланушы процесі ретінде жұмыс істейді. MIPS симуляторы Nachos операциялық жүйесінде іске қосылатын кез келген пайдаланушы бағдарламасының кодын орындайды. Nachos кодының әртүрлі архитектураларға арналған нұсқалары бар. Nachos жүйесімен бірге бірнеше тапсырмалар да беріледі. Nachos-тың мақсаты – студенттерді операциялық жүйені жобалау және іске асыру тұжырымдамаларымен таныстыру, оларға Nachos жүйесінде маңызды функционалдық бөлімдерді іске асыруды тапсыру арқылы. Nachos жағдайында операциялық жүйе симуляторы дегеніміз – Bochs/VMware сияқты, бір операциялық жүйені (қосымша OS) екіншісінің (хост OS) үстінде іске қосу мүмкіндігін білдіреді. Ол келесілерді эмуляциялайды:
* CPU (MIPS CPU)
* Қатты дискі
* Үзіліс контроллері, таймер және басқа да компоненттер
Бұл компоненттер Nachos пайдаланушы кеңістігіндегі қолданбаларды іске қосу үшін қажет. Яғни, сіз Nachos үшін бағдарламалар жазып, оларды нақты компилятормен (MIPS үшін кодты құрастыратын ескі gcc компиляторы) жинай аласыз және іске қоса аласыз. Nachos ядросы хост операциялық жүйенің платформасына компиляцияланады және хост операциялық жүйенің процессорында тікелей жұмыс істейді. Nachos 3.4 нұсқасы көп жылдар бойы Nachos-тың тұрақты және кеңінен қолданылатын нұсқасы болды. Nachos 4.0 нұсқасы шамамен 1996 жылдан бері бета-нұсқа ретінде қолданылуда.
Not Another Completely Heuristic Operating System, or Nachos, is instructional software for teaching undergraduate, and potentially graduate level operating systems courses. It was developed at the University of California, Berkeley, designed by Thomas Anderson, and is used by numerous schools around the world. Originally written in C++ for MIPS, 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 to Bochs/VMware. It features emulation for:
A CPU (a MIPS CPU)
A hard drive
An interrupt controller, timer, and misc. other components
which are there to run the Nachos user space applications. That means that you can write programs for Nachos, compile them with a real compiler (an old gcc compiler that produces code for MIPS) and run them. The Nachos kernel 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 a beta since approximately 1996.
Іске асыру
Nachos негізгі операциялық жүйенің функционалдығын іске асыратын әртүрлі модульдерді қамтиды. ОЖ ядросының әртүрлі жүйелік шақыруларына арналған орауыш функциялар UNIX жүйелік шақыруларына ұқсас әдіспен жүзеге асырылады. ОЖ-ның әртүрлі бөліктері туған кодты пайдалана отырып, объектілер ретінде құрылады. Мысалы, Machine класы симуляцияланған машинаның бас класы ретінде қолданылады. Ол FileSystem, Processor, Timer және т.б. сияқты әртүрлі объектілерді қамтиды, олар әртүрлі аппараттық жайттарды модельдеу үшін анықталған.
Nachos has various modules implementing the functionality of a basic operating system. The wrapper functions for various system calls of the OS kernel are generally implemented in a manner similar to that of the UNIX system calls Various parts of the OS are instantiated as objects using the native code. For example, a class Machineis used as the master class of the simulated machine. It contains various objects, such as FileSystem, Processor, Timer, etc. which are defined to simulate various hardware aspects.
Негізгі компоненттері
Нахос машинасы MIPS архитектурасына жуық машинаны симуляциялайды. Машинада регистрлер, жад және процессор бар. Nachos/MIPS машинасы Machine объектісі арқылы іске асырылады, Nachos іске қосылғанда оның бір данасы құрылады. Ол Run, ReadRegister, WriteRegister сияқты әдістерді қамтиды. Сондай-ақ, ол үзілістерді басқару үшін үзіліс объектісін анықтайды. Таймер және статистика да осы жерде іске асырылған. NachOS жіптері NachOS-та жіп класы анықталған. Жіптің күйі болады, ол дайын, орындалып жатқан, тоқтатылған немесе жаңадан құрылған болуы мүмкін. Жіп объектісінің PutThreadToSleep, YieldCPU, ThreadFork, ThreadStackAllocate және т.б. сияқты әртүрлі әдістері бар. Әрбір жіп виртуалды адрестік кеңістікте жұмыс істейді. NachOS пайдаланушы бағдарламаларын өздерінің жеке адрестік кеңістігінде іске қосады. NachOS кез келген MIPS екілік кодын іске қоса алады, егер ол NachOS түсінетін жүйелік шақыруларды ғана жасаумен шектелсе. Unix жүйесінде "a.out" файлдары "coff" форматында сақталады. NachOS орындалатын файлдардың қарапайым "Noff" форматында болуын қажет етеді. Бір форматтағы екілік файлдарды екінші форматқа түрлендіру үшін coff2noff бағдарламасын пайдаланыңыз.
NachOS Machine Nachos simulates a machine that roughly approximates the MIPS architecture. The machine has registers, 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 handle interrupts. Timer and statistics are also implemented in this. NachOS Threads In NachOS a thread 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 a virtual address space. NachOS UserPrograms Nachos runs user programs in their own private address 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 that executables be in the simpler "Noff" format. To convert binaries of one format to the other, use the coff2noff program.
Орынбасарлар
Nachos бірнеше жылдан бері белсенді түрде дамытылмағандықтан және бірқатар анықталған кемшіліктері бар (әсіресе портативтілік тұрғысынан: Nachos MIPS құрастыру кодын пайдаланады және x86 архитектурасында жұмыс істеу үшін түрлендіруді қажет етеді), оның ізбасар жобалары қолға алынды. 2004 жылы Стэнфорд университеті C тілінде жазылған және нақты x86 аппараттық құралдарында жұмыс істеуге арналған Pintos жүйесін жасады, ол Nachos-тан шабыттанды. 2000 жылы UC Берклидегі Дэн Хеттена Nachos-ты Java тіліне Nachos 5.0j ретінде түрлендірді, бұл Nachos-ты көбірек портативті, студенттерге қолжетімді ету және студенттік кодтағы ұсақ қателерге байланысты туындайтын мәселелерді азайту мақсатында жасалды, себебі бұрынғы нұсқаларда осы мәселелер студенттік жобаларды дамыту уақытының көп бөлігін алып жатқан еді. Райс университетінің профессоры Питер Друшель де Java тіліндегі тағы бір нұсқасын жасады. Кейіннен 2003 жылы Стони Брук университетінің профессоры Юджин Старк оны бейімдеп, Операциялық жүйе курсында қолданды. Грац технологиялық университетінде (Австрия) SWEB ("Schon wieder ein Betriebssystem") деп аталатын жүйе іске асырылды және ол операциялық жүйе принциптерін оқыту үшін пайдаланылады.
As Nachos has not been in active development for a number of years, and possesses a number of recognized flaws (particularly with regards to portability: Nachos relies on MIPS assembly code, and requires porting to run on x86 architecture), successor projects have been initiated. In 2004, Stanford University created Pintos, a Nachos inspired system written in C and designed to run on actual x86 hardware. In 2000, Dan Hettena at UC Berkeley ported Nachos to Java 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 at Rice University. It was later adapted by Professor Eugene Stark at Stony Brook University in 2003 and applied in the Operating System course. At Graz University of Technology (Austria), a system called SWEB ("Schon wieder ein Betriebssystem") has been implemented and is used to teach operating system principles.