Supporting Virtio in Bare-Metal Virtual Machine Monitor

Ganis Zulfa Santoso, Young-Woo Jung, and Hag-Young Kim


cloud-based software engineering, virtual machine monitor, i/o virtualization, virtio, paravirtualization


Paravirtualization in Virtual Machine Monitor (VMM) is a virtualization technique which allows a Virtual Machine (VM) to run at a near native speed. It is considered to be faster alternative than full virtualization. But paravirtualization does not come cheap as it requires modifications (front-end drivers) in the guest Operating System (OS) as well. If a VMM decides to support multiple OSs, it means that the developers need to write front-end drivers for each OS. It is a difficult task to achieve. Fortunately, there is a standardized I/O virtualization framework called Virtio. A lot of Virtio front-end drivers are already available in multiple OSs. Those drivers can be used by any other VMMs as long as it has a standardized Virtio back-end driver. By having Virtio back-end driver, a VMM can support multiple kinds of I/O device in many flavors of OS for their guest VMs. Typical virtio implementation utilizes QEMU to provide device emulation. For a VMM, especially bare-metal VMM, integrating QEMU into its solution can introduce unnecessary complexity. In this paper, we designed and implemented Virtio backend in bare-metal VMM without QEMU. We also evaluated the performance of our implementation and compare it to the native speed.

Important Links:

Go Back