Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Exokernel
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Operating system kernel developed by the MIT Parallel and Distributed Operating Systems group}} {{More citations needed|date=September 2016}} [[File:exokernel revised(english).png|frame|right|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]] '''Exokernel''' is an [[operating system]] [[kernel (operating system)|kernel]] developed by the [[MIT]] Parallel and Distributed Operating Systems group,<ref>{{Cite web|url=https://pdos.csail.mit.edu/archive/exo/|title=MIT Exokernel Operating System|website=pdos.csail.mit.edu|access-date=2018-01-25}}</ref> and also a class of similar operating systems. Operating systems generally present hardware resources to applications through high-level [[abstraction (computer science)|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.<ref>{{Cite journal|last1=Engler|first1=D. R.|last2=Kaashoek|first2=M. F.|last3=O'Toole Jr.|first3=J.|last4=Engler|first4=D. R.|last5=Kaashoek|first5=M. F.|last6=O'Toole Jr.|first6=J.|date=1995-12-03|title=Exokernel: an operating system architecture for application-level resource management|journal=ACM SIGOPS Operating Systems Review|volume=29|issue=5|pages=251, 251β266, 266|doi=10.1145/224056.224076|s2cid=221932539|issn=0163-5980}}</ref> Exokernels are tiny, since functionality is limited to ensuring protection and [[multiplexing]] of resources, which is considerably simpler than conventional [[microkernel]]s' implementation of message passing and [[monolithic kernel]]s' 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.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)