A Comparison of OS Extension Technologies
Christopher Small and Margo Seltzer
Harvard University
Abstract
The current trend in operating systems research is to allow
applications to dynamically extend the kernel to improve application
performance or extend functionality, but the most effective approach
to extensibility remains unclear. Some systems use safe languages to
permit code to be downloaded directly into the kernel; other systems
provide in-kernel interpreters to execute extension code; still others
use software techniques to ensure the safety of kernel extensions. The
key characteristics that distinguish these systems are the philosophy
behind extensibility and the technology used to implement
extensibility. This paper presents a taxonomy of the types of
extensions that might be desirable in an extensible operating system,
evaluates the performance cost of various extension technologies
currently being employed, and compares the cost of adding a kernel
extension to the benefit of having the extension in the kernel. Our
results show that compiled technologies (e.g. Modula-3 and software
fault isolation) are good candidates for implementing general-purpose
kernel extensions, but that the overhead of interpreted languages is
sufficiently high that they are inappropriate for this use.
Download the full text of this paper in
ASCII (62,228 bytes) and
POSTSCRIPT (208,223 bytes) form.
To Become a USENIX Member, please see our
Membership Information.