Exokernel Review

From: Nathan Dire (ndire_at_cs.washington.edu)
Date: Wed Jan 14 2004 - 14:50:20 PST

  • Next message: Steve Arnold: "Review: Exokernel"

    In "Application Performance and Flexibility on Exokernel Systems", the authors
    explore benefits of the exokernel architecture using an implemented system for
    x86 machines.

    The purpose of exokernel architectures is to expose system resource management
    to the application level. The exokernel principles followed by the authors in
    the paper include: separating protection and management; exposing allocation;
    exposing names; exposing revocation; and exposing information. I think these
    basic ideas are quite compelling. They certain challenge the traditional
    limited UNIX syscalls, which have a strong precedent. With the degree of
    specialization in applications, I think there are certainly plenty of
    applications waiting for the opportunity to take better advantage of the
    hardware. One question I would have about the approach is security, though
    perhaps it can be argued that such system is more easily secured with access
    to more information and a smaller protected core.

    It appears that a major difficulty with exokernel systems is providing a
    stable storage system that can support multiple libFSes. The authors discuss
    the challenges encountered in the implementation their solution, XN. The main
    purpose of XN is to protect block accesses, since user code doesn't
    necessarily have to access data though the appropriate libFS. In XN, the
    mechanism for this is untrusted deterministic functions (UDFs). This
    functionality allows the libFS to tell the kernel how to protect accesses to
    the disk blocks. Another major challenge of XN is ensuring consistency, which
    is accomplished using a buffer cache registry.

    The specific results in this paper are regarding the level of performance that
    can be achieved using both unmodified and specialized applications. The
    experiments are performed using on x86 system using the Xok kernel and the
    ExOS libOS for Xok. The authors are able to achieve performance with standard
    UNIX program comparable to that of existing UNIX systems, and are even able to
    show dramatic performance gains using a customized web server called Cheetah.

    The results for Cheetah and XCP show that the ability to provide 'zero-touch'
    operations seems to be quite powerful for performance. At my company I've
    certainly seen the struggle to make I/O operations zero-copy with FreeBSD.

    One concept I didn't understand was portability of code in the system. With
    wakeup predicates and UDF's, the system appears to support functions which can
    be passed into the kernel by applications using some sort of restricted
    language. I don't know the specifics of this mechanism, but I wonder about
    the usability and flexibility.

    Overall, the paper presents a strong validation of the exokernel architecture.
    I think the ideas have the most relevance for specialized server appliances
    where performance is critical, the hardware configurations are limited, and
    there is significant effort expended optimizing user-space code (but not
    enough to justify a completely customized kernel).


  • Next message: Steve Arnold: "Review: Exokernel"

    This archive was generated by hypermail 2.1.6 : Wed Jan 14 2004 - 14:50:22 PST