The Flux OSKit: A Substrate for OS and Language Research
Bryan Ford, Godmar Back, Greg Benson (U.C. Davis), Jay Lepreau,
Albert Lin (MIT), and Olin Shivers (MIT)
oskit@cs.utah.edu
University of Utah Department of Computer Science
3190 MEB, Salt Lake City, Utah 84112
Abstract
Implementing new operating systems is tedious, costly, and often
impractical except for large projects. The Flux OSKit addresses this
problem in a novel way by providing clean, well-documented OS
components designed to be reused in a wide variety of other
environments, rather than defining a new OS structure. The OSKit uses
unconventional techniques to maximize its usefulness, such as
intentionally exposing implementation details and platform-specific
facilities. Further, the OSKit demonstrates a technique that allows
unmodified code from existing mature operating systems to be
incorporated quickly and updated regularly, by wrapping it with a
small amount of carefully designed ``glue'' code to isolate its
dependencies and export well-defined interfaces. The OSKit uses this
technique to incorporate over 230,000 lines of stable code including
device drivers, file systems, and network protocols. Our experience
demonstrates that this approach to component software structure and
reuse has a surprisingly large impact in the OS implementation domain.
Four real-world examples show how the OSKit is catalyzing research and
development in operating systems and programming languages.
Full paper
(HTML format)
or compressed Postscript in
9 point as appears in proceedings,
or more readable
10 point
or
11 point font,
appears in
Proceedings of the
16th ACM Symposium on Operating Systems Principles,
Saint-Malo, France, October 1997.