[VirtIO]

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.

VirtIO SPECIFICATIONS
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.

VirtIO DEVICES
red line

virtio-net

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.

virtio-block

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.

virtio-scsi

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.


virtio-serial

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.

virtio-ballon

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.

virtio-rng

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


virtio-9p

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.

SOURCE CODE
red line

Linux

Linux logo

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

Windows

Windows logo

Open source drivers are available for VirtIO devices on github.

OSv

OSv logo

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

DO YOU NEED HELP?

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!