SLIC: An Extensibility System for Commodity Operating Systems

SLIC: An Extensibility System for Commodity Operating Systems
复制标题

SLIC:商品操作系统的可扩展性系统

DOI:
--
复制
发表时间:
1998
期刊:
USENIX Annual Technical Conference
影响因子:
--
通讯作者:
T. Anderson
T. Anderson
中科院分区:
--
文献类型:
--
作者:
Douglas P. Ghormley;Steven H. Rodrigues;David Petrou;T. Anderson

文献摘要

被引文献

相似文献

现代商用操作系统是由大型程序员团队经过多年开发的大型复杂系统,包含数十万行代码。因此,向这些系统添加重要的新功能是极其困难的。为了解决这个问题,许多最近的研究项目探索了新的操作系统体系结构,以支持不受信任的扩展,包括SPIN、VINO、exokkernel和Fluke。不幸的是,这些体系结构需要大量的实现工作,并且通常在商品系统中不可用。
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 system architectures 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 composable 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 demonstrate 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 µsec and a per-extension invocation overhead commensurate with a procedure call.