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.