Review of Exokernel

From: Gail Rahn (gail_at_screaminggeek.com)
Date: Wed Jan 21 2004 - 16:47:18 PST

  • Next message: Cem Paya 98: "Review: performance and flexibility on exokernels"

    The "Application Performance and Flexibility on Exokernel Systems" paper
    describes the performance implications a system where an application manages
    its own hardware and software resources. The application's OS resources are
    still *protected* by the OS kernel, only management is delegated to the
    application. The paper posits that an application can better anticipate its
    resource needs than the OS environment in which it runs. So exokernels can
    enhance application performance. To allow applications manage resources
    directly, most applications would link with a prefab library ("libOS") that
    manages resources and provides the typical resource abstractions. Some
    applications with extensive or complex resource needs would implement their
    own customized resource management. The Authors implemented ExOS as the
    default libOS for the Xok operating system (a UNIX variant).

    My own "Yugo" development bias is to create the simplest, most efficient
    application that meets the design needs. To that end, I am sympathetic to
    the Authors' observation that exokernels allow application developers to
    selectively adopt OS features. If my application runs just fine without new
    and unreliable OS features, then as a developer I would just as soon ignore
    them. Exokernels allow this to happen.

    However, I believe that the implementation costs are too high for adoption
    of this OS feature. The Xok/ExOS implementations seem more to me like an
    extensible OS implementation than an architecure truly accessible to
    application-level programmers.

    Given a tool, a software developer is very likely to break it. For an
    application to performance improvements, the libOS developer would need to
    have a great understanding of the memory management principles at work in
    the libOS implementation. This is an optimistic assessment of the software
    dev marketplace. The ExOS implementors themselves needed several high-level
    design iterations.

    Part of the purpose of a modern operating system is to allow a small set of
    crafty software developers implement difficult features *in the operating
    system*, allowing application developers to piggyback or avoid the
    difficult questions. In the marketplace, wouldn't most Xok applications
    either use the default libOS or hire an OS expert to make implementation
    improvements? And if so, then doesn't the performance improvement remain a
    function of OS-level improvements? Doesn't this paper expose that the line
    between the operating system and the trusted server is fuzzy? Aren't
    exokernels a mechanism to give high-performance servers the opportunity to
    optimize OS resources under very specialized conditions?

    -- Gail.

    -------------
    Gail Rahn
    grahn_at_cs.washington.edu


  • Next message: Cem Paya 98: "Review: performance and flexibility on exokernels"

    This archive was generated by hypermail 2.1.6 : Wed Jan 21 2004 - 16:49:14 PST