fbpx
Wikipedia

Exokernel

Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating Systems group,[1] and also a class of similar operating systems.

Graphic overview of Exokernel. Exokernels are much smaller than a normal kernel (monolithic kernel). They give more direct access to the hardware, thus removing most abstractions

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.[2] 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.

Motivation

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 exokernels

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.

Design

The MIT exokernel manages hardware resources as follows:

Processor
The kernel represents the processor resources as a timeline from which programs can allocate intervals of time. A program can yield the rest of its time slice to another designated program. The kernel notifies programs of processor events, such as interrupts, hardware exceptions, and the beginning or end of a time slice. If a program takes a long time to handle an event, the kernel will penalize it on subsequent time slice allocations; in extreme cases the kernel can abort the program.
Memory
The kernel allocates physical memory pages to programs and controls the translation lookaside buffer. A program can share a page with another program by sending it a capability to access that page. The kernel ensures that programs access only pages for which they have a capability.
Disk storage
The kernel identifies disk blocks to the application program by their physical block address, allowing the application to optimize data placement. When the program initializes its use of the disk, it provides the kernel with a function that the kernel can use to determine which blocks the program controls. The kernel uses this callback to verify that when it allocates a new block, the program claims only the block that was allocated in addition to those it already controlled.
Networking
The kernel implements a programmable packet filter, which executes programs in a bytecode language designed for easy security-checking by the kernel.

Applications

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.

History

 
The Architecture of MINIX 3

The exokernel concept has been around since at least 1994,[3] but as of 2010 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.

See also

References

  1. ^ "MIT Exokernel Operating System". pdos.csail.mit.edu. Retrieved 2018-01-25.
  2. ^ Engler, D. R.; Kaashoek, M. F.; O'Toole Jr., J.; Engler, D. R.; Kaashoek, M. F.; O'Toole Jr., J. (1995-12-03). "Exokernel: an operating system architecture for application-level resource management". ACM SIGOPS Operating Systems Review. 29 (5): 251, 251–266, 266. doi:10.1145/224056.224076. ISSN 0163-5980. S2CID 221932539.
  3. ^ Engler, Kaashoek & O’Toole 1995.

Bibliography

  • Engler, Dawson R (1998). "The Exokernel Operating System Architecture" (PostScript). MIT. Retrieved 2006-09-22. {{cite journal}}: Cite journal requires |journal= (help)
  • ———; Kaashoek, M. Frans (1996). "Exterminate All Operating System Abstractions" (PostScript). MIT. Retrieved 2006-09-22. {{cite journal}}: Cite journal requires |journal= (help)
  • ———; Kaashoek, M. Frans; O’Toole, James Jr (1995). "Exokernel: An Operating System Architecture for Application-Level Resource Management" (PDF). Proceedings of the Fifteenth ACM Symposium on Operating Systems Principles: 251–66. doi:10.1145/224056.224076. ISBN 978-0-89791-715-5. S2CID 221932539. Retrieved 2014-10-08.

External links

  • Erlingsson, Úlfar; Kyparlis, Athanasios, Microkernels, Cornell, The extent to which simple, efficient operations are a good choice in a kernel interface design.
  • Exokernel Operating System, MIT. A research exokernel.
  • Nemesis, UK: Cambridge. A research exokernel.
  • , Return Infinity, archived from the original on 2014-09-06. A commercial exokernel.
  • , archived from the original on 2019-07-28, retrieved 2013-05-13. A research exokernel.
  • ExAmour, FR. The GNU exokernel.

exokernel, this, article, needs, additional, citations, verification, please, help, improve, this, article, adding, citations, reliable, sources, unsourced, material, challenged, removed, find, sources, news, newspapers, books, scholar, jstor, september, 2016,. This article needs additional citations for verification Please help improve this article by adding citations to reliable sources Unsourced material may be challenged and removed Find sources Exokernel news newspapers books scholar JSTOR September 2016 Learn how and when to remove this template message Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating Systems group 1 and also a class of similar operating systems Graphic overview of Exokernel Exokernels are much smaller than a normal kernel monolithic kernel They give more direct access to the hardware thus removing most abstractions 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 2 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 Contents 1 Motivation 2 MIT exokernels 2 1 Design 2 2 Applications 3 History 4 See also 5 References 6 Bibliography 7 External linksMotivation EditTraditionally 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 exokernels EditMIT 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 Design Edit The MIT exokernel manages hardware resources as follows Processor The kernel represents the processor resources as a timeline from which programs can allocate intervals of time A program can yield the rest of its time slice to another designated program The kernel notifies programs of processor events such as interrupts hardware exceptions and the beginning or end of a time slice If a program takes a long time to handle an event the kernel will penalize it on subsequent time slice allocations in extreme cases the kernel can abort the program Memory The kernel allocates physical memory pages to programs and controls the translation lookaside buffer A program can share a page with another program by sending it a capability to access that page The kernel ensures that programs access only pages for which they have a capability Disk storage The kernel identifies disk blocks to the application program by their physical block address allowing the application to optimize data placement When the program initializes its use of the disk it provides the kernel with a function that the kernel can use to determine which blocks the program controls The kernel uses this callback to verify that when it allocates a new block the program claims only the block that was allocated in addition to those it already controlled Networking The kernel implements a programmable packet filter which executes programs in a bytecode language designed for easy security checking by the kernel Applications Edit 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 History Edit The Architecture of MINIX 3 The exokernel concept has been around since at least 1994 3 but as of 2010 update 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 See also EditHybrid kernel Hypervisor Kernel operating system Microkernel Monolithic kernel Nanokernel Paravirtualization Rump kernel Single address space operating system SASOS Unikernel BareMetalReferences Edit MIT Exokernel Operating System pdos csail mit edu Retrieved 2018 01 25 Engler D R Kaashoek M F O Toole Jr J Engler D R Kaashoek M F O Toole Jr J 1995 12 03 Exokernel an operating system architecture for application level resource management ACM SIGOPS Operating Systems Review 29 5 251 251 266 266 doi 10 1145 224056 224076 ISSN 0163 5980 S2CID 221932539 Engler Kaashoek amp O Toole 1995 Bibliography EditEngler Dawson R 1998 The Exokernel Operating System Architecture PostScript MIT Retrieved 2006 09 22 a href Template Cite journal html title Template Cite journal cite journal a Cite journal requires journal help Kaashoek M Frans 1996 Exterminate All Operating System Abstractions PostScript MIT Retrieved 2006 09 22 a href Template Cite journal html title Template Cite journal cite journal a Cite journal requires journal help Kaashoek M Frans O Toole James Jr 1995 Exokernel An Operating System Architecture for Application Level Resource Management PDF Proceedings of the Fifteenth ACM Symposium on Operating Systems Principles 251 66 doi 10 1145 224056 224076 ISBN 978 0 89791 715 5 S2CID 221932539 Retrieved 2014 10 08 External links EditErlingsson Ulfar Kyparlis Athanasios Microkernels Cornell The extent to which simple efficient operations are a good choice in a kernel interface design Exokernel Operating System MIT A research exokernel Nemesis UK Cambridge A research exokernel BareMetal OS Return Infinity archived from the original on 2014 09 06 A commercial exokernel XOmB archived from the original on 2019 07 28 retrieved 2013 05 13 A research exokernel ExAmour FR The GNU exokernel Retrieved from https en wikipedia org w index php title Exokernel amp oldid 1146582588, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.