Exokernel: An Operating System Architecture for
Application-Level Resource Management
Motivation
- Traditional OS architectures are slow and too restrictive: they
constrain applications to using a single interface
- Different applications have different requirements; performance
studies show greater application control has benefits (e.g. virtual
memory, file caching)
- Kernel can be made small and efficient by making it as close to
hardware as possible
Exokernel mechanisms
- Exports instruction set plus system calls to encapsulate
privileged instructions
- Secure bindings for reservation of resources by applications
- Application-visible revocation and abort protocols for resources
- Protected control transfer between applications as a basis for
IPC, as with Lightweight Remote Procedure Call
- Packet filters and Application-specific Secure Handlers to allow
general processing on receipt of packets
Aegis Exokernel
- Small kernel runs in physical memory
- Low domain crossing overhead: 18 instructions
- Dynamic packet filter for ASHes, created and compiled to object
code at run-time, 10X faster than interpreted filters
- Round-robin scheduling with reservation of timeslices, can be
passed to another process on protected control transfer
- Applications can opt for contiguous or dispersed time slices!
- Stack and non-stack paths for system calls
ExOS library operating system
- Provides application-level virtual memory
- Easily extended, e.g. choose between regular or inverted page
table versions for best performance
- Outperforms Ultrix on matrix-multiplication, Appel and Li benchmarks
Discussion
- Comparison to Ultrix is made without making clear what is left
out! How compatible is the Exokernel architecture with existing OS design?
- Does the Exokernel approach make sense when we all have computers
on our desktops?
- Does Exokernel make kernel hackers out of application designers?
Don't we just want multiple operating systems?
- How portable is a library OS?
- Paper is vague on what a Unix-style process maps to. Does an Exokernel
"processor environment" have 1 Unix process, or several? (Coordination
versus protection)
Summary written by Benjamin Atkin for CS614, Monday April 26th 1999.