KVM将Linux内核转变为虚拟机监控器,复用调度器和内存管理,并添加虚拟化支持。QEMU负责设备模拟,支持多种设备和固件。virtio实现半虚拟化I/O,vhost-net和vhost-user加速网络性能。VFIO和IOMMU实现设备直通,确保内存隔离。AMD的SEV和Intel的TDX等机密计算技术增强了安全性。
VFIO是Linux内核中的一个功能,可以将PCIe设备暴露给用户态程序,实现虚拟机PCIe直通。VFIO提供了一系列用户API,可以在用户态中直接控制PCIe设备。VFIO的用户API定义在include/uapi/linux/vfio.h中,通过ioctl调用来初始化VFIO设备。VFIO提供了访问Configuration空间和BAR空间、DMA映射、中断设置等功能。QEMU通过VFIO实现了PCIe设备直通,将VFIO设备挂载到虚拟PCIe总线上,并通过回调函数实现对BAR空间和Configuration空间的访问。VFIO还可以与DPDK框架一起使用,实现在用户态运行网卡驱动。与UIO驱动相比,VFIO处理了IOMMU映射,更安全可靠。
完成下面两步后,将自动完成登录并继续当前操作。