[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 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.
This is the initial VirtIO specification that was used before standardization committee was formed.
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.
There is on going work on virtio-vga and virtio-input devices.