MIT жасаған Exokernel ядросы және операциялық жүйелердегі жаңа тәсілдер
Exokernel
Exokernel – MIT жасаған операциялық жүйе ядросы. Қолданба дамытушыларға аппараттық абстракцияны өздері басқаруға мүмкіндік береді, кішкентай және тиімді.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
MIT Parallel and Distributed Operating Systems тобының әзірлеген операциялық жүйе ядросы.
Operating system kernel developed by the MIT Parallel and Distributed Operating Systems group
Экзожернел – MIT Parallel and Distributed Operating Systems тобының әзірлеген операциялық жүйе ядросы, сонымен қатар осыған ұқсас операциялық жүйелер класы. Операциялық жүйелер әдетте аппараттық ресурстарды (виртуалды) файлдық жүйелер сияқты жоғары деңгейдегі абстракциялар арқылы ұсынады. Экзожернелдің идеясы – қолданба дамытушыларға мүмкіндігінше аз абстракцияларды тану, оларға аппараттық абстракциялар туралы көптеген шешімдерді өздері қабылдауға мүмкіндік беру. Экзожернелдер өте кішкентай, себебі олардың функционалдығы ресурстарды қорғаумен және мультиплекстеумен шектеледі, бұл дәстүрлі микроядролардың хабар алмасуын және монолиттік ядролардың жоғары деңгейдегі абстракцияларын жүзеге асыруынан әлдеқайда қарапайым. Іске асырылған абстракциялар кітапханалық операциялық жүйелер деп аталады; олар белгілі бір жад адрестерін, дискілік блоктарды және т.б. сұрауы мүмкін. Ядро тек сұралған ресурс бос екенін және қолданбаға оған қол жеткізуге рұқсат етілетінін қамтамасыз етеді. Бұл төменгі деңгейдегі аппараттық қолжетімділік бағдарламашыға арнайы абстракцияларды жүзеге асыруға және қажетсіздерін жоюға мүмкіндік береді, көбінесе бағдарламаның өнімділігін арттыру үшін. Сондай-ақ, ол бағдарламашыларға абстракцияның қандай деңгейін – жоғарыны немесе төменгіні – таңдауға мүмкіндік береді. Экзожернелдерді операциялық жүйелерге қатысты соңғы-соңғы принциптің қолданылуы ретінде қарастыруға болады, себебі олар қолданбалық бағдарламаны өзге талаптарды ескере отырып жасалған басқа абстракциялардың үстіне өз абстракцияларын қоюға мәжбүр етпейді. Мысалы, MIT Exokernel жобасында Cheetah веб-сервері дискіде алдын ала форматталған Интернет протоколы пакеттерін сақтайды, ядро рұқсатсыз оқу мен жазуды болдырмау арқылы дискіге қауіпсіз қол жеткізуді қамтамасыз етеді, бірақ дискінің абстракциялануы қалай жүзеге асырылатыны қолданбаға немесе қолданба пайдаланатын кітапханаларға байланысты.
Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating Systems group, and also a class of similar operating systems. Operating systems generally present hardware resources to applications through high level abstractions such as (virtual) file systems. The idea behind exokernels is to force as few abstractions as possible on application developers, enabling them to make as many decisions as possible about hardware abstractions. Exokernels are tiny, since functionality is limited to ensuring protection and multiplexing of resources, which is considerably simpler than conventional microkernels' implementation of message passing and monolithic kernels' implementation of high level abstractions. Implemented abstractions are called library operating systems; they may request specific memory addresses, disk blocks, etc. The kernel only ensures that the requested resource is free, and the application is allowed to access it. This low level hardware access allows the programmer to implement custom abstractions, and omit unnecessary ones, most commonly to improve a program's performance. It also allows programmers to choose what level of abstraction they want, high, or low. Exokernels can be seen as an application of the end to end principle to operating systems, in that they do not force an application program to layer its abstractions on top of other abstractions that were designed with different requirements in mind. For example, in the MIT Exokernel project, the Cheetah web server stores preformatted Internet Protocol packets on the disk, the kernel provides safe access to the disk by preventing unauthorized reading and writing, but how the disk is abstracted is up to the application or the libraries the application uses.
Мотивация
Дәстүрлі түрде, ядроны жобалаушылар жеке аппараттық ресурстарды қолданба бағдарламалары үшін көрінбейтін етуге тырысты, осы үшін бағдарламалардан аппараттық құралдармен абстракциялық модель арқылы өзара әрекеттесуді талап етті. Мұндай модельдерге дискіде сақтау үшін файлдық жүйелер, жад үшін виртуалды адрестік кеңістіктер, тапсырмаларды басқару үшін жоспарлаушылар және желілік байланыс үшін сокеттер кіреді. Аппараттық құралдардың осы абстракциялары бағдарламаларды жазуды жеңілдетсе де, өнімділікті шектейді және жаңа абстракциялармен тәжірибе жасауға кедеріл келтіреді. Қауіпсіздікке бағытталған қолданбаға дискіде ескі деректерді қалдырмайтын файлдық жүйе қажет болуы мүмкін, ал сенімділікке бағытталған қолданбаға осындай деректерді қателіктерден қалпына келтіру үшін сақтайтын файлдық жүйе қажет болуы мүмкін. Бір мүмкіндік – ядроны толығымен алып тастап, бағдарламаны тікелей аппараттық құралдарға бағдарлау, бірақ онда бүкіл машина жазылып жатқан қолданбаға арналады (және керісінше, бүкіл бағдарламалық код базасы осы машинаға арналады). Экзоядро тұжырымы – бұл компромисс: ядро машинаның негізгі физикалық ресурстарын (мысалы, дискілік блоктар, жад беттері және процессор уақыты) бірнеше қолданба бағдарламаларына бөліп берсін, ал әр бағдарлама осы ресурстармен не істеу керектігін өзі шешсін. Бағдарлама содан кейін өзіне қажетті абстракцияларды іске асыратын қолдау кітапханасына сілтеме жасай алады (немесе оларды өзі іске асыра алады).
Traditionally, kernel designers have sought to make individual hardware resources invisible to application programs by requiring the programs to interact with the hardware via some abstraction model. These models include file systems for disk storage, virtual address spaces for memory, schedulers for task management, and sockets for network communication. These abstractions of the hardware make it easier to write programs in general, but limit performance and stifle experimentation in new abstractions. A security oriented application might need a file system that does not leave old data on the disk, while a reliability oriented application might need a file system that keeps such data for failure recovery. One option is to remove the kernel completely and program directly to the hardware, but then the entire machine would be dedicated to the application being written (and, conversely, the entire application codebase would be dedicated to that machine). The exokernel concept is a compromise: let the kernel allocate the basic physical resources of the machine (e. g. disk blocks, memory pages, and processor time) to multiple application programs, and let each program decide what to do with these resources. The program can then link to a support library that implements the abstractions it needs (or it can implement its own).
MIT экзоядролары
MIT екі ядроны пайдалана отырып, экзоядроға негізделген екі операциялық жүйені әзірледі: Aegis – сақтау құрылғыларына шектеулі қолдау көрсеткен тұжырымдық үлгі және XOK, ол экзоядро тұжырымдамасын толыққандырақ іске асырды. MIT экзоядро жүйесінің маңызды идеясы – операциялық жүйенің қолданбалы бағдарламалық қамтамасыз ету ұсынған шағын бағдарламалар үшін басқарушы рөлінде жұмыс істеуі керек, мұнда экзоядро аппараттық құралдарды қауіпсіз пайдалануын кепілдік бере алуы тиіс деген талаппен ғана шектеледі.
MIT developed two exokernel based operating systems, using two kernels: Aegis, a proof of concept with limited support for storage, and XOK, which applied the exokernel concept more thoroughly. An essential idea of the MIT exokernel system is that the operating system should act as an executive for small programs provided by the application software, which are constrained only by the requirement that the exokernel must be able to guarantee that they use the hardware safely.
Қолданбалар
Exokernel үшін қол жетімді кітапханалық операциялық жүйелерге арнайы ExOS жүйесі және BSD эмуляторы кіреді. Бұдан өзге, экзожерна командасы ядроны тікелей пайдаланатын Cheetah веб-серверін жасады.
The available library operating systems for Exokernel include the custom ExOS system and an emulator for BSD. In addition to these, the exokernel team created the Cheetah web server, which uses the kernel directly.
Тарих
Экзоядролық тұжырымдама кем дегенде 1994 жылдан бері бар, бірақ экзоядролар әлі де зерттеу нысаны болып табылады және ең ірі коммерциялық операциялық жүйелердің ешқайсысында қолданылмаған. Экзоядролық жүйені іске асыру концепциясы – Кембридж университеті, Глазго университеті, Citrix Systems және Швеция компьютерлік ғылымдары институты жасаған Nemesis. MIT де бірнеше экзоядролық жүйелерді, оның ішінде ExOS-ты құрды.
The exokernel concept has been around since at least 1994, but exokernels are still a research effort and have not been used in any major commercial operating systems. A concept operating exokernel system is Nemesis, written by University of Cambridge, University of Glasgow, Citrix Systems, and the Swedish Institute of Computer Science. MIT has also built several exokernel based systems, including ExOS.