ExoKernel Review.

From: Ankur Rawat \(Excell Data Corporation\) (a-arawat_at_microsoft.com)
Date: Wed Jan 21 2004 - 14:30:50 PST

  • Next message: Raz Mathias: "Review: Application Performance and Flexibility on Exokernel Systems"

    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.

     


  • Next message: Raz Mathias: "Review: Application Performance and Flexibility on Exokernel Systems"

    This archive was generated by hypermail 2.1.6 : Wed Jan 21 2004 - 14:30:58 PST