USENIX Annual Technical Conference (NO 98), 1998
Abstract
SLIC: An Extensibility System for Commodity Operating Systems
Douglas P. Ghormley, University of California, Berkeley
David Petrou, Carnegie Mellon University
Steven H. Rodrigues, Network Appliance, Inc.
Thomas E. Anderson, University of Washington
Abstract
Modern commodity operating systems are large and complex
systems developed over many years by large teams of
programmers, containing hundreds of thousands of lines of
code. Consequently, it is extremely difficult to add significant
new functionality to these systems. In response to this
problem, a number of recent research projects have explored
novel operating systemarchitectures to support untrusted extensions,
including SPIN, VINO, Exokernel, and Fluke. Unfortunately,
these architectures require substantial implementation
effort and are not generally available in commodity
systems.
In contrast, by leveraging the technique of interposition,
we have designed and implemented a prototype extension
system called SLIC which requires only trivial operating system
changes. SLIC efficiently inserts trusted extension code
into commodity operating systems, enabling a large class of
trusted extensions for existing commodity operating systems
such as Solaris and Linux, while retaining full compatibility
with existing application binaries. By interposing trusted
extensions on existing kernel interfaces, our solution enables
extensions which are protected from malicious applications,
are enforced upon uncooperative applications, are compos-able
with extensions from other third-party sources, and can
be developed at the user-level using state-of-the-art development
tools. We have used SLIC to implement and demon-strate
a number of useful operating system extensions, including
a patch to fix a security hole described in a CERT advisory,
a simple encryption file system, and a restricted execution
environment for arbitrary untrusted binaries. Performance
measurements of the SLIC prototype demonstrate a
one-time installation cost of 2-8 msec and a per-extension invocation
overhead commensurate with a procedure call.
- View the full text of this paper in
PDF form.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.
|