| 1 | VirtIO Devices |
| 2 | ============== |
| 3 | |
| 4 | VirtIO devices are paravirtualized devices designed to be efficient to |
| 5 | emulate and virtualize. Unless you are specifically trying to exercise |
| 6 | a driver for some particular hardware they are the recommended device |
| 7 | models to use for virtual machines. |
| 8 | |
| 9 | The `VirtIO specification`_ is an open standard managed by OASIS. It |
| 10 | describes how a *driver* in a guest operating system interacts with |
| 11 | the *device* model provided by QEMU. Multiple Operating Systems |
| 12 | support drivers for VirtIO with Linux perhaps having the widest range |
| 13 | of device types supported. |
| 14 | |
| 15 | The device implementation can either be provided wholly by QEMU, or in |
| 16 | concert with the kernel (known as *vhost*). The device implementation |
| 17 | can also be off-loaded to an external process via :ref:`vhost user |
| 18 | <vhost_user>`. |
| 19 | |
| 20 | .. toctree:: |
| 21 | :maxdepth: 1 |
| 22 | |
| 23 | virtio-gpu.rst |
| 24 | virtio-pmem.rst |
| 25 | virtio-snd.rst |
| 26 | vhost-user.rst |
| 27 | vhost-user-contrib.rst |
| 28 | |
| 29 | .. _VirtIO specification: https://docs.oasis-open.org/virtio/virtio/v1.3/virtio-v1.3.html |