MIT Exokernel Operating System

Putting the Application in Control.

An operating system is interposed between applications and the physical hardware. Therefore, its structure has a dramatic impact on the performance and the scope of applications that can be built on it. Since its inception, the field of operating systems has been attempting to identify an appropriate structure: previous attempts include the familiar monolithic and micro-kernel operating systems as well as more exotic language-based and virtual machine operating systems. Exokernels dramatically depart from this previous work. An exokernel eliminates the notion that an operating system should provide abstractions on which applications are built. Instead, it concentrates solely on securely multiplexing the raw hardware: from basic hardware primitives, application-level libraries and servers can directly implement traditional operating system abstractions, specialized for appropriateness and speed.
Structure of an exokernel system. Applications use their own Library Operating System (LibOS) which
in turn use the exokernel to allocate and deallcate hardware resources.

We have built several exokernel based systems. The newest exokernel is XOK, which runs on PC hardware, and ExOS, our first library operating system (libos). The ExOS library provides a user-level and extensible implementation of an UNIX operating system. Most UNIX applications like gcc, perl, apache, tcsh, and telnet compile and work without changes using ExOS. Further, measurements of application performance show that ExOS performs at least as well as OpenBSD and FreeBSD and much better when using specialized libos's. For example, the Cheetah web server built on top of XOK performs eight times faster than NCSA or Harvest and three to four times faster than IIS running on Windows NT Enterprise Edition.


Check out a slide-show about exokernels on our documentation page.

An alpha-release of our exopc distribution  is currently available. It contains all source and tools required to build and boot the entire system on a pc. We hope that by making the exopc distribution publicly available we can interest the 'net community at large in developing and using exokernels.

For more information on exokernels and related projects see the home pages of the  Parallel and Distributed Operating Systems group at the MIT Lab for Computer Science. Papers can be found at the PDOS papers page

Last updated by Marc 5, 1998.