CS262B Reading Summary
M. Frans Kaashock, et al
Feng Zhou
1/22/2004
This paper presents the techniques used in constructing Exokernel
systems, in particular the Xok/ExOS system running on x86
processors. Exokernel systems are so-called "library OSes"
because instead of implementing all OS functionalities in kernel
(monolithic kernels), or partially in user-level servers
(micro-kernels), Exokernels put large portion of OS functionalities
into application libraries, in the hope that this increases both
performance and flexibility.
Major strengths of the paper are:
One major flaw:
As the authors noted, one of the major weaknesses of Exokernels is
that the implementation of a general-purpose and well-performing
Exokernel system is hard. This is understandable because as
functionality is partition between the kernel and the libOS, neither
part has full knowledge of the system. Distributed systems are
also hard to design mainly because of the same problem. Moreover,
no interface
between kernel and libOS can be versatile enough to support all kinds
of
applications. This probably implies that Exokernels may be a
better fit for OSes targeted at a narrower range of application, e.g.
server OSes or embedded OSes.
Another obvious problem with Exokernels is evolving the system may
be hard because the user-kernel interface is in general wider and
sometimes implicit because of memory mapping of kernel data structures.