VirtIO 规范
VirtIO 是一种通用的半虚拟化的解决方案,它定义了一组规范:只要 Guest 和 Host 按照此规范进行数据操作,就可以使虚拟机绕过内核空间而直接和用户空间的进程间通信,以此达到提高 IO 性能的目的。
众所周知,真实硬件具有复杂的细节,模拟起来不仅复杂且效率低,当一个 Guest 访问到完全虚拟设备的寄存器 or 内存时,会 trap 到 Hypervisor 的设备模拟代码中,这一过程需要虚拟机内、外的多次切换过程,效率很低。 VirtIO 极大地简化了设备的实现,当我们只需要最基本的内外传输的功能时,VirtIO 是很好的选择。