Proceedings of the 2002 Usenix Annual Technical Conference Think: a Software Framework for Component-based Operating System Kernels

Building a flexible kernel from components is a promising solution for supporting various embedded systems. The use of components encourages code re-use and reduces development time. Flexibility permits the system to be configured at various stages of the design, up to run time. In this paper, we propose a software framework, called THINK, for implementing operating system kernels from components of arbitrary sizes. A unique feature of THINK is that it provides a uniform and highly flexible binding model to help OS architects assemble operating system components in varied ways. An OS architect can build an OS kernel from components using THINK without being forced into a predefined kernel design (e.g. exo-kernel, micro-kernel or classical OS kernel). To evaluate the THINK framework, we have implemented KORTEX, a library of commonly used kernel components. We have used KORTEX to implement several kernels, including an L4-like micro-kernel, and kernels for an active network router, for the Kaffe Java virtual machine, and for a Doom game. Performance measurements show no degradation due to componentization and the systematic use of the binding framework, and that application-specific kernels can achieve speed-ups over standard general-purpose operating systems such as Linux.

[1]  Eric Eide,et al.  Knit: component composition for systems software , 2000, OSDI.

[2]  Jochen Liedtke,et al.  On micro-kernel construction , 1995, SOSP.

[3]  Chorus Systemes,et al.  Overview of the CHORUS? Distributed Operating Systems , 1991 .

[4]  Jean-Bernard Stefani,et al.  Jonathan: an open distributed processing environment in Java , 1999, Distributed Syst. Eng..

[5]  Larry L. Peterson,et al.  Making paths explicit in the Scout operating system , 1996, OSDI '96.

[6]  Calton Pu,et al.  Fast, optimized Sun RPC using automatic program specialization , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[7]  Andrew Herbert,et al.  Mobile Java objects , 1999, Distributed Syst. Eng..

[8]  Henry M. Levy,et al.  Limits to low-latency communication on high-speed networks , 1993, TOCS.

[9]  Charles Consel,et al.  Safe and efficient active network programming , 1998, Proceedings Seventeenth IEEE Symposium on Reliable Distributed Systems (Cat. No.98CB36281).

[10]  Abraham Silberschatz,et al.  The Pebble Component-Based Operating System , 1999, USENIX Annual Technical Conference, General Track.

[11]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[12]  Eddie Kohler,et al.  The Click modular router , 1999, SOSP.

[13]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[14]  Roy H. Campbell,et al.  A Case for Nano-Kernels , 1995 .

[15]  Claude Kaiser,et al.  Overview of the CHORUS ® Distributed Operating Systems , 1991 .

[16]  Larry L. Peterson,et al.  The x-Kernel: An Architecture for Implementing Network Protocols , 1991, IEEE Trans. Software Eng..

[17]  Acm Siggops Proceedings of the Second Symposium on Operating Systems Design and Implementation (OSDI '96), October 28-31, 1996, Seattle, Washington , 1996 .

[18]  Jay Lepreau,et al.  The Flux OSKit: a substrate for kernel and language research , 1997, SOSP.

[19]  Christoph Kreitz,et al.  Building reliable, high-performance communication systems from components , 2000, OPSR.

[20]  J. Liedtke On -Kernel Construction , 1995 .

[21]  A. J. Herbert,et al.  Mobile Java Objects , 1999 .

[22]  Margo I. Seltzer,et al.  Dealing with disaster: surviving misbehaved kernel extensions , 1996, OSDI '96.

[23]  Mike Hibler,et al.  An OS interface for active routers , 2001, IEEE J. Sel. Areas Commun..

[24]  Brian N. Bershad,et al.  Extensibility safety and performance in the SPIN operating system , 1995, SOSP.

[25]  Robin Fairbairns,et al.  The Design and Implementation of an Operating System to Support Distributed Multimedia Applications , 1996, IEEE J. Sel. Areas Commun..

[26]  Marc Shapiro A binding protocol for distributed shared objects , 1994, 14th International Conference on Distributed Computing Systems.

[27]  Jochen Liedtke,et al.  The performance of μ-kernel-based systems , 1997, SOSP.