The Flux OS Toolkit: Reusable Components for OS Implementation

Bryan Ford, Kevin Van Maren, Jay Lepreau, Stephen Clawson, Bart Robinson, Jeff Turner
oskit@cs.utah.edu

University of Utah Department of Computer Science
3190 MEB, Salt Lake City, Utah 84112

Abstract

To an unappreciated degree, research both in operating systems and their programming languages has been severely hampered by the lack of cleanly reusable code providing grungy OS infrastructure such as bootstrap code and device drivers. The Flux OS Toolkit solves this problem by providing a set of clean, well-documented, shrink-wrapped components. These components can be used as basic building blocks both for operating systems and for booting language runtime systems directly on the hardware. The toolkit's design allows it to itself reuse device drivers, unchanged, from other sources. We believe the kit also makes feasible the production of highly assured embedded and operating systems: by enabling reuse of low-level code, the high cost of detailed verification of that code can be amortized over many systems for critical environments. The OS toolkit is already heavily used in several different OS and programming language projects, and will catalyze research and development that would otherwise never have been attempted.

Full paper presented at and appears in Proceedings of the Sixth IEEE Workshop on Hot Topics in Operating Systems, May 1997.