4va*_*ch3 3 linux virtualization kvm qemu virtual-machine
我发现 QEMU 和 KVM 之间的界限非常模糊。我发现有人说虚拟机是 qemu 进程,而其他人说是 kvm 进程。究竟是什么?QEMU 和 KVM 在虚拟机 I/O 中扮演什么角色?例如,当 vm 执行 PIO/MMIO 时,是 qemu 还是 kvm 会捕获它并将其转换为硬件操作。还是双方都有责任?
KVM:Linux 内核中的代码,它为用户空间提供友好的界面以使用 CPU 虚拟化。这包括用户空间可以调用的“创建 CPU”、“运行 CPU”等功能。对于完整的虚拟机,您需要有一些可以使用它的用户空间代码。这通常是 QEMU,或者更简单的“kvmtool”;一些大型云提供商有自己的自定义用户空间代码。
QEMU:模拟虚拟硬件,包括磁盘、内存、CPU、串行端口、图形和其他设备。还提供了用于执行诸如启动、停止和迁移等操作的机制(UI 和一些可编程接口)。QEMU 支持几种不同的“加速器”模式来处理 CPU 仿真:
从实现的角度来看,KVM 和 QEMU 之间的界限非常清晰——KVM 是主机内核的一部分,而 QEMU 是一个单独的用户空间程序。对于用户,您通常不必关心边界在哪里,因为这是一个实现细节。
要回答您关于 MMIO 会发生什么的问题:
| 归档时间: |
|
| 查看次数: |
853 次 |
| 最近记录: |