We describe an operating system architecture that securely multiplexes machine resources while permitting an unprecedented degree of application-specific customization of traditional operating system abstractions. By abstracting physical hardware resources, traditional operating systems have significantly limited the performance, flexibility, and functionality of applications. The exokernel architecture removes these limitations by allowing untrusted software to implement traditional operating system abstractions entirely at application-level. We have implemented a prototype exokernel-based system that includes Aegis, an exokernel, and ExOS, an untrusted application-level operating system. Aegis defines the low-level interface to machine resources. Applications can allocate and use machine resources, efficiently handle events, and participate in resource revocation. Measurements show that most primitive Aegis operations are 10--100 times faster than Ultrix, a mature monolithic UNIX ope...
|
891
|
Active Messages: A Mechanism for Integrated Communication and Computation
– Eicken, Culler, et al.
- 1992
|
|
672
|
Architectural considerations for a new generation of protocols
– Clark, Tennenhouse
- 1990
|
|
632
|
End-to-end arguments in system design
– Saltzer
- 1981
|
|
561
|
Efficient software-based fault isolation
– Wahbe, Lucco, et al.
- 1993
|
|
390
|
Scheduler activations: Effective kernel support for the user-level management of parallelism
– Anderson, Bershad, et al.
- 1991
|
|
363
|
Extensibility, safety and performance in the SPIN operating system
– Bershad, Savage, et al.
- 1995
|
|
336
|
Lottery Scheduling: Flexible Proportional-Share Resource Management
– Waldspurger, Weihl
- 1994
|
|
286
|
Why aren't operating systems getting faster as fast as hardware
– Ousterhout
- 1990
|
|
258
|
On microkernel construction
– Liedtke
- 1995
|
|
238
|
A new kernel foundation for UNIX development
– Mach
- 1986
|
|
233
|
Lightweight Remote Procedure Call
– Bershad, Anderson, et al.
- 1990
|
|
202
|
The packet filter: An efficient mechanism for user-level network code
– MOGUL, RASHID, et al.
- 1987
|
|
196
|
Operating System Support for Database Management
– Stonebraker
- 1981
|
|
193
|
Experiences with the amoeba distributed operating system
– Tanenbaum, Renesse, et al.
- 1990
|
|
187
|
W.: Chorus distributed operating system
– Rozier, Abrossimov, et al.
- 1988
|
|
167
|
Virtual Memory Primitives for User Programs
– Appel, Li
- 1991
|
|
151
|
Survey of virtual machine research
– Goldberg
- 1974
|
|
148
|
Experiences with a high-speed network adaptor: A software perspective
– Druschel, Peterson, et al.
- 1994
|
|
136
|
Stride scheduling: Deterministic proportional share resource management
– Waldspurger, Weihl
- 1995
|
|
131
|
Application-Controlled Physical Memory using External Page-Cache Management
– Harty, Cheriton
- 1991
|
|
129
|
Improving IPC by Kernel Design
– Liedtke
- 1993
|
|
116
|
Implementation and Performance of Application-Controlled File Caching
– Cao, Felten, et al.
- 1994
|
|
108
|
The V Kernel: A software base for distributed systems
– Cheriton
- 1988
|
|
107
|
PATHFINDER: A pattern-based packet classifier
– BAILEY, GOPAL, et al.
- 1994
|
|
101
|
Threads and input/output in the synthesis kernel
– Massalin, Pu
- 1989
|
|
101
|
E cient Packet Demultiplexing for Multiple Endpoints and Large Messages
– Yuhara, Bershad, et al.
- 1994
|
|
99
|
A Caching Model of Operating System Kernel Functionality
– Cheriton, Duda
- 1994
|
|
94
|
Sharing and Protection in a Single-Address-Space Operating System
– Chase, Levy, et al.
- 1994
|
|
94
|
Limits to low-latency communications on high-speed networks
– Thekkath, Levy
- 1993
|
|
90
|
Pilot: An operating system for a personal computer
– Redell
- 1980
|
|
81
|
Architectural support for translation table management in large address space machines
– Huck, Hays
- 1992
|
|
71
|
Hardware and Software Support for Efficient Exception Handling
– Thekkath, Levy
- 1994
|
|
70
|
Design tradeoffs for software-managed TLBs
– Nagle, Uhlig, et al.
- 1993
|
|
63
|
The origin of the VM/370 time-sharing system
– Creasy
- 1981
|
|
61
|
placement algorithms for large real-index caches
– Page
- 1992
|
|
57
|
The nucleus of a multiprogramming system
– Hansen, P
- 1970
|
|
49
|
Software Prefetching and Caching for Translation Lookaside Bu ers
– Bala, Kaashoek, et al.
- 1994
|
|
46
|
Alpha AXP architecture
– Sites
- 1993
|
|
41
|
Tools for development of application-specific virtual memory management
– Krueger, Loftesness, et al.
- 1993
|
|
35
|
The Operating System Kernel as a Secure Programmable Machine
– Engler, Kaashoek, et al.
- 1994
|
|
34
|
A flexible measurement tool for software systems
– Deutsch, Grant
- 1972
|
|
31
|
An open operating system for a single-user machine
– Lampson, Sproull
- 1979
|
|
24
|
The case for application-specific operating systems
– Anderson
- 1992
|
|
22
|
VINO: An Integrated Platform for Operating System and Database Research
– Small, Seltzer
- 1994
|
|
21
|
SPACE: A new approach to operating system abstraction
– Probert, Bruno, et al.
- 1991
|
|
17
|
On reliable and extendable operating systems
– Lampson
- 1971
|
|
13
|
Scout: A communicationoriented operating system
– Hartman, Montz, et al.
- 1994
|
|
11
|
An experiment using registers for fast message-based interprocess communication
– Cheriton
- 1984
|
|
11
|
The persistent relevance of IPC performance: New techniques for reducing the IPC penalty
– Hsieh, Kaashoek, et al.
- 1993
|
|
10
|
Increasing network throughput by integrating protocol layers
– Abbot, Peterson
- 1993
|