Day 2: Conference: User Mode Linux
Jeff Dike gave us an overview of his User Mode Linux work.
The idea is that the OS and its processes run as processes on the host kernel.
The hardware is emulated, typically with files.
Processes are mapped to processes on the host kernel and the PID and owner are
renumbered/renamed as needed. The main reason for this is to speed up context
switching, but it does complicate context switching, debugging and signal
handling.
Faults are implemented with signals. Memory faults for instance are handled
with SIGSEGV and interrupts are handled with SIGIO.
What works?
- Almost everything
- All Filesystems and network protocols
- X-Window apps (through Xnest)
- Kernel Modules
What doesn't work are priviledged instructions and nesting.
Applications
- Kernel debugging with gdb via ptrace proxy
- gprof and gcov
- Security: as a jail or sandbox
- Resource allocation: virtual hosting (user level code runs at almost native
speed, but I/O intensive code (apache) can take a performance hit of 3).
- Prototyping (testing before commiting to a virtual environment)
Future work
- SMP and clustering
- hostfs extensions
- security: full memory protection
- performance: tracing thread, block driver, host kernel
- Ports to other architectures
Email
Link to Home Page
2001/01/28 (12:29): Version 1.0