All Topics  
Exokernel

 

   Email Print
   Bookmark   Link






 

Exokernel



 
 
Exokernel is an operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
  kernel developed by the MIT Parallel and Distributed Operating Systems group, and also a class of similar operating systems.

The idea behind exokernels is to force as few abstractions
Abstraction (computer science)

In computer science, abstraction is a mechanism and practice to reduce and factor out details so that one can focus on a few concepts at a time....
 as possible on 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
Multiplexing

In telecommunications and computer networks, multiplexing is a process where multiple analog message signals or digital data streams are combined into one signal over a shared medium....
 of resources, which are vastly simpler than conventional microkernel
Microkernel

In computer science, a microkernel is a computer kernel which provides the mechanisms needed to implement an operating system, such as low-level address space management, thread management, and inter-process communication....
s' implementation of message passing and monolithic kernel
Monolithic kernel

A monolithic kernel is a Kernel architecture where the entire operating system is run in kernel space as supervisor mode. In difference with other architectures , the monolithic kernel defines alone a high-level virtual interface over computer hardware, with a set of primitives or system calls to implement all operating system services such...
s' implementation of abstractions.

Applications may request specific memory addresses, disk blocks, etc.






Discussion
Ask a question about 'Exokernel'
Start a new discussion about 'Exokernel'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Exokernel is an operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
  kernel developed by the MIT Parallel and Distributed Operating Systems group, and also a class of similar operating systems.

The idea behind exokernels is to force as few abstractions
Abstraction (computer science)

In computer science, abstraction is a mechanism and practice to reduce and factor out details so that one can focus on a few concepts at a time....
 as possible on 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
Multiplexing

In telecommunications and computer networks, multiplexing is a process where multiple analog message signals or digital data streams are combined into one signal over a shared medium....
 of resources, which are vastly simpler than conventional microkernel
Microkernel

In computer science, a microkernel is a computer kernel which provides the mechanisms needed to implement an operating system, such as low-level address space management, thread management, and inter-process communication....
s' implementation of message passing and monolithic kernel
Monolithic kernel

A monolithic kernel is a Kernel architecture where the entire operating system is run in kernel space as supervisor mode. In difference with other architectures , the monolithic kernel defines alone a high-level virtual interface over computer hardware, with a set of primitives or system calls to implement all operating system services such...
s' implementation of abstractions.

Applications 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
End-to-end principle

The end-to-end principle is one of the central design principles of the Internet and is implemented in the design of the underlying methods and protocols in the Internet Protocol Suite....
 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
Web server

The term web server can mean one of two things:# A computer program that is responsible for accepting Hypertext Transfer Protocol requests from clients , and Server them HTTP responses along with optional data contents, which usually are web pages such as Hypertext Markup Language documents and linked objects ....
 stores preformatted Internet Protocol
Internet protocol

Internet protocol may refer to:*The Internet Protocol, a specific protocol implementation in the Internet protocol suite*The Internet protocol suite, a set of communications protocols that are used for the Internet...
 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 conceptual model. These models include file system
File system

In computing, a file system is a method for store and organize computer files and the data they contain to make it easy to find and access them....
s for disk storage, virtual address spaces for memory, schedulers
Scheduling (computing)

Scheduling is a key concept in computer multitasking and multiprocessing operating system design, and in real-time operating system design. In modern operating systems, there are typically many more processes running than there are CPUs available to run them....
 for task management, and sockets
Berkeley sockets

The Berkeley sockets application programming interface comprises a library for developing applications in the C that perform inter-process communication, most commonly across a computer network....
 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 exokernel

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 interrupt
Interrupt

In computing, an interrupt is an asynchronous communication signal from hardware indicating the need for attention or a synchronous event in software indicating the need for a change in execution....
s, hardware exceptions
Exception handling

Exception handling is a programming language construct or computer hardware mechanism designed to handle the occurrence of exceptions - special conditions that change the normal flow of execution....
, 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
Translation Lookaside Buffer

A Translation lookaside buffer is a Central processing unit CPU cache that is used by Memory management unit to improve the speed of virtual address translation....
. A program can share a page with another program by sending it a capability
Capability

Capability is the ability to perform actions.As it applies to human capital, capability is the sum of expertise and capacity.It is a component within the theories of:...
 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 byte code 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
Web server

The term web server can mean one of two things:# A computer program that is responsible for accepting Hypertext Transfer Protocol requests from clients , and Server them HTTP responses along with optional data contents, which usually are web pages such as Hypertext Markup Language documents and linked objects ....
, which uses the kernel directly.

History


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
Nemesis (computing)

Nemesis is an operating system designed by the University of Cambridge, the University of Glasgow, the Swedish Institute of Computer Science and Citrix Systems....
, written by University of Cambridge
University of Cambridge

The University of Cambridge , located in Cambridge, England, is the List of oldest universities in continuous operation university in the Anglosphere....
, University of Glasgow
University of Glasgow

The University of Glasgow was founded in 1451, in Glasgow, Scotland, and, along with its contemporary institution, the University of St Andrews, it formed the Kingdom of Scotland's equivalent to Oxbridge....
, Citrix Systems
Citrix Systems

Citrix Systems is an United States multinational corporation with a focus on software and services specialized in virtualization and remote access software for delivering applications over a network and the Internet....
, and the Swedish Institute of Computer Science
Swedish Institute of Computer Science

The Swedish Institute of Computer Science, SICS, is an independent non-profit research organization with a research focus on applied computer science....
. MIT
Massachusetts Institute of Technology

The Massachusetts Institute of Technology is a private university research university located in Cambridge, Massachusetts, Massachusetts, United States....
 has also built several exokernel based systems, including ExOS.

See also

  • Hybrid kernel
    Hybrid kernel

    A hybrid kernel is a Kernel architecture based on combining aspects of microkernel and monolithic kernel architectures used in computer operating systems....
  • Hypervisor
    Hypervisor

    A hypervisor, also called virtual machine monitor , is a computer hardware platform virtualization software that allows multiple operating systems to run on a host computer concurrently....
  • Kernel (computer science)
  • Microkernel
    Microkernel

    In computer science, a microkernel is a computer kernel which provides the mechanisms needed to implement an operating system, such as low-level address space management, thread management, and inter-process communication....
  • Monolithic kernel
    Monolithic kernel

    A monolithic kernel is a Kernel architecture where the entire operating system is run in kernel space as supervisor mode. In difference with other architectures , the monolithic kernel defines alone a high-level virtual interface over computer hardware, with a set of primitives or system calls to implement all operating system services such...
  • Nanokernel
  • Paravirtualization
    Paravirtualization

    In computing, paravirtualization is a virtualization technique that presents a software interface to virtual machines that is similar but not identical to that of the underlying hardware....
  • Single address space operating system
    Single address space operating system

    In computer science, a single address space operating system is a type of operating system with simple memory management which uses only one globally shared virtual address space....
     (SASOS)
  • Dalex


External links

  • by Úlfar Erlingsson and Athanasios Kyparlis
  • Putting the Application in Control
  • An operating system with principles