A Comparison of OS Extension Technologies
Christopher Small and Margo Seltzer
Harvard University
USENIX Technical Conference, January 1996
Abstract
The current trend in operating systems research is to allow
applications to dynamically extend the kernel to increase 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.
ps |
pdf |
tar.gz of source code for all tests (200KB)