Abstract

Device drivers are a major concern for existing and new operating systems (OSs) in terms of the development cost and code quality. Unfortunately, the OS-dependent nature of device drivers makes their reuse or unification complicated because the execution environments of device drivers are tightly coupled with the hosting OS kernel. Previous studies of porting device drivers from major OSs suffer from various conflicts and engineering cost, and unmodified reuse of device drivers with virtual machines (VMs) incurs non-negligible overhead. In this paper, we present the design and implementation of a unified hardware abstraction layer that uses a thin hypervisor, on which an OS kernel runs with a single device driver for each device class, thereby reducing the development costs of device drivers for OSs that run on bare-metal machines. Our key technique is device masquerade; rather than virtualizing devices with fat software layers, a thin hypervisor converts physical devices into standardized abstract devices with minimum efforts. We exploit a de facto standard interface to hardware devices that allows clean separation of the abstraction layer implementation from OS kernels and easy deployment in practical use. To reduce virtualization overhead, the hypervisor supports only a single VM and allows pass-through access to already standardized devices such as interrupt controllers. The experimental results confirmed that the performance of our system was comparable to that on a bare-metal machine without any hypervisors.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call