From: Ankur Rawat \(Excell Data Corporation\) (a-arawat_at_microsoft.com)
Date: Wed Jan 21 2004 - 14:30:50 PST
ExoKernel is a design approach to build extensible Operating systems. It
is fundamentally different from the traditional approach because it
strives to give the user applications maximum control in managing system
resources and providing the same level of protection available in
monolithic systems. An attempt is made to design mechanisms and
interfaces to support the development of traditional OS semantics.
Other approaches to providing extensibility are:
* Building better microkernels
* Virtual machines
* Downloading untrusted code into kernel
The main design principles of this architecture are:
* Separate protection from management
* Expose allocation
* Expose names
* Expose revocation
* Expose information
ExoKernel architecture provides protection in the kernel and supports
interfaces to build libOSes that can provide the regular OS
abstractions. LibOS are libraries that provide abstractions with regular
OS semantics. Multiple LibOSes providing abstractions for the same
feature set can co exist in a exoKernel based system. LibOSes allow a
great degree of flexibility in developing operating systems. Application
running on exoKernel systems can use LibOS abstractions or can directly
use kernel abstractions to access system resources. This is beneficial
for applications who wish to manage and optimize the system resources
they own and use.
Following are some of the challenges in building such a system:
* Building abstractions of the kernel that are flexible to support
development of different types of LibOS (supporting different types of
OS abstractions) and providing fine level protection.
* Shared abstractions: Such as guaranteeing invariants in libOS
when they share some resource. Exokernel provides support for these by
providing software regions, hierarchical capabilities, wakeup predicates
and inexpensive critical sections.
XN:
XN is XOk's stable storage system design. Given it is their fourth
design, speaks about the complexity and the effort required to build a
system based on above mentioned design principles. UDF is the
cornerstone of XN; it is a very innovative solution to enable
flexibility and protection at the same time. It also enables library
file systems to provide UNIX semantics such as fork safely.
The UDF solution was reached after trying the following approaches:
* Disk block level multiplexing
* Self descriptive metadata
* Template-based description
Some of the ideas discovered and applied in the making the system
efficient and meeting design goals of XN were very interesting and can
be useful for solving other such problems in other domains.
Particularly:
* Secure bindings: Security check when page is entered in the page
table and not on every access
* UDF
* Coherent caching of disk blocks.
Performance:
The authors compare ExOS with other monolithic systems by running
different kinds of applications on both systems. From the results
reported in the paper, I believe that ExoKernel is useful for
specialized applications such as Cheetah web server but not very
convinced if it provides any advantages in running regular applications
or unmodified apps.
This archive was generated by hypermail 2.1.6 : Wed Jan 21 2004 - 14:30:58 PST