VirtIO: Difference between revisions

From FriendOS Wiki
Jump to navigation Jump to search
(Initial page test)
 
No edit summary
 
Line 1: Line 1:
VirtIO is a standard for performant virtualized hardware for use within virtual machines created and managed by the [https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=virtio OASIS Open Virtual I/O Device TC].
VirtIO is a standard for performant virtualized hardware for use within virtual machines, created and managed by the [https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=virtio OASIS Open Virtual I/O Device TC]. VirtIO supports a variety of devices, such as, but not limited to: block (e.g. hard drive), network card, GPU, etc. Each of these devices have their own specific configuration and features, but all use the same underlying VirtIO queue structure for relaying data and commands to & from the device.
 
=== Device Types ===
{| class="wikitable sortable mw-collapsible"
|+VirtIO Device Types
!Device Name
!Device ID
!Description
|-
|Network Card
|1
|Ethernet network interface
|-
|Block Device
|2
|Block storage capabilities, e.g. hard drive, for storing files and other information
|-
|Console
|3
|Serial console device for simple I/O communication
|-
|Entropy Source
|4
|A source of entropy for cryptographically secure [[PRNG]]<nowiki/>s
|-
|Memory Ballooning (Traditional)
|5
|[TODO]
|-
|ioMemory
|6
|[TODO]
|-
|rpmsg
|7
|[TODO]
|-
|SCSI Host
|8
|Grouping of one or more virtual logical units (e.g. disks) that can be managed via the SCSI protocol
|-
|9P Transport
|9
|[TODO]
|-
|MAC80211 WLAN
|10
|802.11 WLAN interface for wireless [[LAN]] communication
|-
|rproc Serial
|11
|[TODO]
|-
|VirtIO CAIF
|12
|[TODO]
|-
|Memory Balloon
|13
|[TODO]
|-
|GPU
|16
|2D & 3D GPU device, requires a 3D GPU on the host machine for 3D mode, as well as negotiating specific features
|-
|
|
|
|-
|
|
|
|-
|
|
|
|}
 
=== Device Transports ===
VirtIO supports three different types of device transports: [[PCI|PCI Bus]], [[MMIO]], and [[Channel I/O]]. The PCIe transport is configured via the normal PCIe configuration mechanisms, while the MMIO transport is configured strictly via MMIO reads and writes.

Latest revision as of 23:02, 22 November 2022

VirtIO is a standard for performant virtualized hardware for use within virtual machines, created and managed by the OASIS Open Virtual I/O Device TC. VirtIO supports a variety of devices, such as, but not limited to: block (e.g. hard drive), network card, GPU, etc. Each of these devices have their own specific configuration and features, but all use the same underlying VirtIO queue structure for relaying data and commands to & from the device.

Device Types

VirtIO Device Types
Device Name Device ID Description
Network Card 1 Ethernet network interface
Block Device 2 Block storage capabilities, e.g. hard drive, for storing files and other information
Console 3 Serial console device for simple I/O communication
Entropy Source 4 A source of entropy for cryptographically secure PRNGs
Memory Ballooning (Traditional) 5 [TODO]
ioMemory 6 [TODO]
rpmsg 7 [TODO]
SCSI Host 8 Grouping of one or more virtual logical units (e.g. disks) that can be managed via the SCSI protocol
9P Transport 9 [TODO]
MAC80211 WLAN 10 802.11 WLAN interface for wireless LAN communication
rproc Serial 11 [TODO]
VirtIO CAIF 12 [TODO]
Memory Balloon 13 [TODO]
GPU 16 2D & 3D GPU device, requires a 3D GPU on the host machine for 3D mode, as well as negotiating specific features

Device Transports

VirtIO supports three different types of device transports: PCI Bus, MMIO, and Channel I/O. The PCIe transport is configured via the normal PCIe configuration mechanisms, while the MMIO transport is configured strictly via MMIO reads and writes.