We propose a method to reuse unmodified device drivers and to improve system dependability using virtual machines. We run the unmodified device driver, with its original operating system, in a virtual machine. This approach enables extensive reuse of existing and unmodified drivers, independent of the OS or device vendor, significantly reducing the barrier to building new OS endeavors. By allowing distinct device drivers to reside in separate virtual machines, this technique isolates faults caused by defective or malicious drivers, thus improving a system’s dependability. We show that our technique requires minimal support infrastructure and provides strong fault isolation. Our prototype’s network performance is within 3–8 % of a native Linux system. Each additional virtual machine increases the CPU utilization by about 0.12%. We have successfully reused a wide variety of unmodified Linux network, disk, and PCI device drivers. 1
|
266
|
On µ-kernel construction
– Liedtke
- 1995
|
|
154
|
Memory resource management in vmware esx server
– Waldspurger
- 2002
|
|
152
|
Survey of virtual machine research
– Goldberg
- 1974
|
|
137
|
An empirical study of operating system errors
– Chou, Yang, et al.
- 2001
|
|
136
|
Virtualizing i/o devices on vmware workstation’s hosted virtual machine monitor
– Sugerman, Venkitachalam, et al.
- 2001
|
|
133
|
Disco: running commodity operating systems on scalable multiprocessors
– Bugnion, Devine, et al.
- 1997
|
|
129
|
Improving the reliability of commodity operating systems
– Swift, Bershad, et al.
- 2003
|
|
95
|
The Flux OSKit: A Substrate for Kernel and Language Research
– Ford, Back, et al.
- 1997
|
|
83
|
Recursive restartability: Turning the reboot sledgehammer into a scalpel
– Candea, Fox
- 2001
|
|
63
|
Self-paging in the Nemesis operating system
– Hand
- 1999
|
|
51
|
Safe Hardware Access with the Xen Virtual
– Fraser, Hand, et al.
- 2004
|
|
35
|
et al., “Xen and the Art of Virtualization
– Barham
- 2003
|
|
30
|
An I/O system for Mach 3.0
– Forin, Golub, et al.
- 1991
|
|
23
|
The sawmill multiserver approach
– GEFFLAUT, JAEGER, et al.
|
|
19
|
The performance of microkernel-based systems
– Härtig, Hohmuth, et al.
- 1997
|
|
19
|
et al. Recovery-oriented computing (roc): Motivation, definition, techniques, and case studies
– Patterson
- 2002
|
|
18
|
Towards scalable multiprocessor virtual machines
– Uhlig, Levasseur, et al.
- 2004
|
|
15
|
Reconstructing I/O
– Fraser, Hand, et al.
- 2004
|
|
13
|
Towards untrusted device drivers
– Leslie, Heiser
- 2003
|
|
11
|
User level IPC and device management in the Raven kernel
– Ritchie, Neufeld
- 1993
|
|
10
|
III. An architecture for device drivers executing as user-level tasks
– Golub, Sotomayor, et al.
- 1993
|
|
9
|
Improving application performance through swap compression
– Cervera, Cortes, et al.
- 1999
|
|
9
|
Linux Device Driver Emulation in Mach
– Goel, Duchamp
- 1996
|
|
5
|
An I/O architecture for microkernelbased operating systems
– Härtig, Löser, et al.
- 2003
|
|
4
|
Two years of experience with a µ-kernel based OS
– Liedtke, Bartling, et al.
- 1991
|
|
4
|
Y.: How to schedule unlimited memory pinning of untrusted processes or provisional ideas about serviceneutrality
– Liedtke, Uhlig, et al.
- 1999
|
|
3
|
The Fluke device driver framework
– Maren
- 1999
|
|
3
|
VMware ESX Server I/O Adapter Compatibility Guide, January 2003. Carl Waldspurger. Memory resource management in VMware ESX
– VMware
|
|
2
|
Initial evaluation of a user-level device driver framework
– Elphinstone, Götz
- 2004
|
|
2
|
Microsoft Virtual PC
– Honeycutt
- 2003
|
|
1
|
et al. Utilizing Linux kernel components
– Appavoo, Auslander, et al.
- 2002
|
|
1
|
et al. Position summary: Supporting hot-swappable components for system software
– Hui, Appavoo, et al.
- 2001
|