Virtio:针对 Linux 的 I/O 虚拟化框架(3)示例 virtio 驱动程序
- UID
- 1066743
|
Virtio:针对 Linux 的 I/O 虚拟化框架(3)示例 virtio 驱动程序
您可以在 Linux 内核的 ./drivers 子目录内找到各种前端驱动程序的源代码。可以在 ./drivers/net/virtio_net.c 中找到 virtio 网络驱动程序,在 ./drivers/block/virtio_blk.c 中找到 virtio 块驱动程序。子目录 ./drivers/virtio 提供 virtio 接口的实现(virtio 设备、驱动程序、virtqueue 和连接点)。virtio 还应用在 High-Performance Computing (HPC) 研究中,以开发出通过共享内存传递的 inter-virtual machine (VM) 通信。尤其是,这是通过使用 virtio PCI 驱动程序的虚拟化 PCI 接口实现的。您可以在 部分更多地了解这个知识点。
现在,您可以在 Linux 内核中实践这个半虚拟化基础架构。您所需的包括一个充当 hypervisor 的内核、一个来宾操作性内核和用于设备模拟的 QEMU。您可以使用 KVM(位于主机内核中的一个模块)或 Rusty Russell 的 lguest(修改版的 Linux 来宾操作系统内核)。这两个虚拟化解决方案都支持 virtio(以及用于系统模拟的 QEMU 和用于虚拟化管理的 libvirt)。
Rusty 的 lguest 是针对半虚拟化驱动程序和更快速地模拟虚拟设备的更简洁代码库。但更重要的是,实践证明 virtio 比现有的商业解决方案提供更出色的性能(网络 I/O 能够提升 2-3 倍)。性能的提升是需要付出代价的,但是如果您使用 Linux 作为 hypervisor 和来宾操作系统,那么这样做是值得的。 |
|
|
|
|
|