Fluke: Flux µ-kernel Environment

We developed an entirely new kernel and OS architecture. The OS structure relies on the properties specified by "Fluke," which is the specification of an environment, not a particular implementation. Of course, we do have an implementation of it, which for maximum confusion is also named Fluke.

A paper, Microkernels Meet Recursive Virtual Machines, describes how Fluke efficiently supports the "nested process model." The nested process model provides many useful properties, including strong, hierarchical resource management. That paper, as well as a paper on our scheduling mechanism, CPU Inheritance Scheduling appeared at OSDI '96. Slides from our OSDI talks are also available. Several other Fluke papers can be found in our publications page.

Flask is a security-enhanced version of the Fluke kernel and OS, being developed cooperatively by the Utah Flux team and the US Department of Defense.

Alta provides essentially the same OS and process model as does Fluke, but executes Java byte code instead of machine language, and uses type-safety instead of the MMU to provide protection.

Software: Fluke kernel source initial release.

A complete software distribution of Fluke, Alta and Fluke's design and rationale document will be forthcoming "real soon now." The API for the environment is available in html format, 1-up postscript and 2-up postscript. Beware: the API is currently 110 pages long (but mostly white space).

One of the design features which should provide large performance gains is safely storing portions of normal kernel objects in user space, as outlined in these slides from a work-in-progress talk at December '95 SOSP. This avoids kernel entry/exit in many common cases.

Artist's renditions are available of the Fluke Nested Process Architecture and of the Fluke OS providing encapsulated environments for untrusted applications.

Up to Flux project home page

Jay Lepreau
Dept. of Computer Science
University of Utah

Last modified Dec 10 1999