Two years of experience with a &mgr;-Kernel based OS
ACM SIGOPS Operating Systems Review
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
The Flux OSKit: a substrate for kernel and language research
Proceedings of the sixteenth ACM symposium on Operating systems principles
The performance of μ-kernel-based systems
Proceedings of the sixteenth ACM symposium on Operating systems principles
Disco: running commodity operating systems on scalable multiprocessors
Proceedings of the sixteenth ACM symposium on Operating systems principles
Self-paging in the Nemesis operating system
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
An empirical study of operating systems errors
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
The SawMill multiserver approach
EW 9 Proceedings of the 9th workshop on ACM SIGOPS European workshop: beyond the PC: new challenges for the operating system
An Architecture for Device Drivers Executing as User-Level Tasks
USENIX MACH III Symposium
User Level IPC and Device Management in the Raven Kernel
USENIX Microkernels and Other Kernel Architectures Symposium
Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor
Proceedings of the General Track: 2002 USENIX Annual Technical Conference
HOTOS '99 Proceedings of the The Seventh Workshop on Hot Topics in Operating Systems
Memory resource management in VMware ESX server
ACM SIGOPS Operating Systems Review - OSDI '02: Proceedings of the 5th symposium on Operating systems design and implementation
Supporting Hot-Swappable Components for System Software
HOTOS '01 Proceedings of the Eighth Workshop on Hot Topics in Operating Systems
Recursive Restartability: Turning the Reboot Sledgehammer into a Scalpel
HOTOS '01 Proceedings of the Eighth Workshop on Hot Topics in Operating Systems
Xen and the art of virtualization
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Improving the reliability of commodity operating systems
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Towards scalable multiprocessor virtual machines
VM'04 Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium - Volume 3
Linux device driver emulation in mach
ATEC '96 Proceedings of the 1996 annual conference on USENIX Annual Technical Conference
Improving application performance through swap compression
ATEC '99 Proceedings of the annual conference on USENIX Annual Technical Conference
Diagnosing performance overheads in the xen virtual machine environment
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
Virtualization for high-performance computing
ACM SIGOPS Operating Systems Review
MINIX 3: a highly reliable, self-repairing operating system
ACM SIGOPS Operating Systems Review
Flexible, Low-overhead Event Logging to Support Resource Scheduling
ICPADS '06 Proceedings of the 12th International Conference on Parallel and Distributed Systems - Volume 2
Solving the starting problem: device drivers as self-describing artifacts
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Debugging operating systems with time-traveling virtual machines
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
VMM-independent graphics acceleration
Proceedings of the 3rd international conference on Virtual execution environments
Transparent network services via a virtual traffic layer for virtual machines
Proceedings of the 16th international symposium on High performance distributed computing
Towards trustworthy computing systems: taking microkernels to the next level
ACM SIGOPS Operating Systems Review
The mechanics of in-kernel synchronization for a scalable microkernel
ACM SIGOPS Operating Systems Review
SafeDrive: safe and recoverable extensions using language-based techniques
OSDI '06 Proceedings of the 7th symposium on Operating systems design and implementation
XFI: software guards for system address spaces
OSDI '06 Proceedings of the 7th symposium on Operating systems design and implementation
Improving dependability by revisiting operating system design
HotDep'07 Proceedings of the 3rd workshop on on Hot Topics in System Dependability
Reliable device drivers require well-defined protocols
HotDep'07 Proceedings of the 3rd workshop on on Hot Topics in System Dependability
Open source as a foundation for systems research
ACM SIGOPS Operating Systems Review
The design and implementation of microdrivers
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
Parallax: virtual disks for virtual machines
Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008
HOTOS'07 Proceedings of the 11th USENIX workshop on Hot topics in operating systems
Microdrivers: a new architecture for device drivers
HOTOS'07 Proceedings of the 11th USENIX workshop on Hot topics in operating systems
Energy management for hypervisor-based virtual machines
ATC'07 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference
Bridging the gap between software and hardware techniques for I/O virtualization
ATC'08 USENIX 2008 Annual Technical Conference on Annual Technical Conference
The role of virtualization in embedded systems
Proceedings of the 1st workshop on Isolation and integration in embedded systems
Self-stabilizing device drivers
ACM Transactions on Autonomous and Adaptive Systems (TAAS)
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
Achieving 10 Gb/s using safe and transparent network interface virtualization
Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Virtualization-based separation of privilege: working with sensitive data in untrusted environment
Proceedings of the 1st EuroSys Workshop on Virtualization Technology for Dependable Systems
Towards high-quality I/O virtualization
SYSTOR '09 Proceedings of SYSTOR 2009: The Israeli Experimental Systems Conference
Investigating virtual passthrough I/O on commodity devices
ACM SIGOPS Operating Systems Review
Shared device driver model for virtualized mobile handsets
Proceedings of the First Workshop on Virtualization in Mobile Computing
Fast byte-granularity software fault isolation
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Device driver isolation within virtualized embedded platforms
CCNC'09 Proceedings of the 6th IEEE Conference on Consumer Communications and Networking Conference
Why panic()?: improving reliability with restartable file systems
ACM SIGOPS Operating Systems Review
Reverse engineering of binary device drivers with RevNIC
Proceedings of the 5th European conference on Computer systems
NOVA: a microhypervisor-based secure virtualization architecture
Proceedings of the 5th European conference on Computer systems
Self-stabilizing device drivers
SSS'06 Proceedings of the 8th international conference on Stabilization, safety, and security of distributed systems
A survey on approaches for addressing dependability attributes in the OSGi service platform
ACM SIGSOFT Software Engineering Notes
On the DMA mapping problem in direct device assignment
Proceedings of the 3rd Annual Haifa Experimental Systems Conference
Membrane: Operating system support for restartable file systems
ACM Transactions on Storage (TOS)
The OKL4 microvisor: convergence point of microkernels and hypervisors
Proceedings of the first ACM asia-pacific workshop on Workshop on systems
Membrane: operating system support for restartable file systems
FAST'10 Proceedings of the 8th USENIX conference on File and storage technologies
Reverse-engineering drivers for safety and portability
HotDep'08 Proceedings of the Fourth conference on Hot topics in system dependability
CuriOS: improving reliability through operating system structure
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
Decaf: moving device drivers to a modern language
USENIX'09 Proceedings of the 2009 conference on USENIX Annual technical conference
Tolerating malicious device drivers in Linux
USENIXATC'10 Proceedings of the 2010 USENIX conference on USENIX annual technical conference
Towards virtual passthrough I/O on commodity devices
WIOV'08 Proceedings of the First conference on I/O virtualization
Standardized but flexible I/O for self-virtualizing devices
WIOV'08 Proceedings of the First conference on I/O virtualization
Ally: OS-transparent packet inspection using sequestered cores
WIOV'10 Proceedings of the 2nd conference on I/O virtualization
Trust and protection in the Illinois browser operating system
OSDI'10 Proceedings of the 9th USENIX conference on Operating systems design and implementation
The turtles project: design and implementation of nested virtualization
OSDI'10 Proceedings of the 9th USENIX conference on Operating systems design and implementation
Virtual WiFi: bring virtualization from wired to wireless
Proceedings of the 7th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Transparently bridging semantic gap in CPU management for virtualized environments
Journal of Parallel and Distributed Computing
A light-weight virtual machine monitor for Blue Gene/P
Proceedings of the 1st International Workshop on Runtime and Operating Systems for Supercomputers
SplitX: split guest/hypervisor execution on multi-core
WIOV'11 Proceedings of the 3rd conference on I/O virtualization
vIOMMU: efficient IOMMU emulation
USENIXATC'11 Proceedings of the 2011 USENIX conference on USENIX annual technical conference
Policy-centric protection of OS kernel from vulnerable loadable kernel modules
ISPEC'11 Proceedings of the 7th international conference on Information security practice and experience
Towards GPGPU assisted computing in virtualized environments
Euro-Par 2010 Proceedings of the 2010 conference on Parallel processing
Ally: OS-Transparent Packet Inspection Using Sequestered Cores
Proceedings of the 2011 ACM/IEEE Seventh Symposium on Architectures for Networking and Communications Systems
Reorganizing UNIX for reliability
ACSAC'06 Proceedings of the 11th Asia-Pacific conference on Advances in Computer Systems Architecture
ELI: bare-metal performance for I/O virtualization
ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
Scheduler support for video-oriented multimedia on client-side virtualization
Proceedings of the 3rd Multimedia Systems Conference
Adding advanced storage controller functionality via low-overhead virtualization
FAST'12 Proceedings of the 10th USENIX conference on File and Storage Technologies
A lightweight virtual machine monitor for Blue Gene/P
International Journal of High Performance Computing Applications
File system virtual appliances: Portable file system implementations
ACM Transactions on Storage (TOS)
Proceedings of the 2012 ACM conference on Computer and communications security
Towards scalable and high performance I/O virtualization: a case study
HPCC'07 Proceedings of the Third international conference on High Performance Computing and Communications
Assessing the trustworthiness of drivers
RAID'12 Proceedings of the 15th international conference on Research in Attacks, Intrusions, and Defenses
The nonkernel: a kernel designed for the cloud
Proceedings of the 4th Asia-Pacific Workshop on Systems
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
ACM SIGOPS 24th Symposium on Operating Systems Principles
VirtuOS: an operating system with kernel virtualization
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
Efficient and scalable paravirtual I/O system
USENIX ATC'13 Proceedings of the 2013 USENIX conference on Annual Technical Conference
I/o paravirtualization at the device file boundary
Proceedings of the 19th international conference on Architectural support for programming languages and operating systems
Hi-index | 0.00 |
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.