VirtIO de facto standard for paravirtualized devices

The purpose of VirtIO is to ensure that virtual environments and guests have a straightforward, efficient, standard, and extensible mechanism for virtual devices, rather than boutique per-environment or per-OS mechanisms.

red line

Virtual I/O Device V1.0

VirtIO specification V1.0 was created by standardization committee. The below document describes the specifications of the “virtio” family of devices. These devices are found in virtual environments, yet by design they look like physical devices to the guest within the virtual machine - and this document treats them as such.

Old Draft

This is the initial VirtIO specification that was used before standardization committee was formed.

red line


The virtio network device is a virtual ethernet card, and is the most complex of the devices supported so far by virtio. It has enhanced rapidly and demonstrates clearly how support for new features should be added to an existing device.


The virtio block device is a simple virtual block device (ie. disk). Read and write requests (and other exotic requests) are placed in the queue, and serviced (probably out of order) by the device except where noted.


The virtio SCSI host device groups together one or more virtual logical units (such as disks), and allows communicating to them using the SCSI protocol. An instance of the device represents a SCSI host to which many targets and LUNs are attached.


The virtio console device is a simple device for data input and output. A device may have one or more ports. Each port has a pair of input and output virtqueues. Moreover, a device has a pair of control IO virtqueues.


The virtio memory balloon device is a primitive device for managing guest memory. It allows the guest to adapt to changes in allowance of underlying physical memory. The device can also be used to communicate guest memory statistics to the host.


The virtio entropy device supplies high-quality randomness for guest use.


This device is used as a transport layer for 9p file system.

Next devices

There is on going work on virtio-vga and virtio-input devices.

red line


Linux logo

Drivers for VirtIO devices are part of Linux kernel. You can explore the source code here.


Windows logo

Open source drivers are available for VirtIO devices on github.


OSv logo

Drivers for VirtIO devices are part of OSv. You can explore the source code here.


red line
Do you need to develop your own device?
Or maybe you need to implement VirtIO drivers?
Visit our web site, send us email or call us!