KVM是必须使用硬件虚拟化辅助技术(如Intel VT-x、AMD-V)的hypervisor,尽管KVM能够借助于物理硬件提供的CPU、内存等的虚拟化支持来提升效率,但KVM本身不提供IO设备以及虚拟机管理方面的支持,而是借助于Qemu来提供这些功能。KVM加上Qemu的组合可以为用户提供全虚拟化的解决方案,但QEMU通过纯软件的方式模拟得到的IO设备每次I/O操作的路径比较长,虚拟机和宿主机之间的切换(也就是VMEntry和VMExit这种上下文切换),需要耗费一定量的CPU时钟周期,而且很容易引起CPU之间的xcall,性能较差,而Virtio就是因为解决了这个性能问题而被人熟知的。当然,virtio的也是有缺点的,它必须要客户机安装特定的Virtio驱动使其知道是运行在虚拟化环境中,且按照Virtio的规定格式进行数据传输。KVM是必须使用硬件虚拟化辅助技术(如Intel VT-x、AMD-