From: Gail Rahn (gail_at_screaminggeek.com)
Date: Wed Jan 21 2004 - 16:47:18 PST
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
This archive was generated by hypermail 2.1.6 : Wed Jan 21 2004 - 16:49:14 PST