我正在研究 QEMU/KVM 和 Firecracker/KVM。据我了解,Firecracker 和 QEMU 都与 KVM 通信,通过将 CPU 模式更改为来宾到主机(反之亦然),最终使硬件辅助虚拟化受益。
在CPU的guest模式下,guest甚至可以直接执行其特权指令,那么为什么我们还需要半虚拟化呢?
在 Firecracker 中,仅模拟了 5 个设备,例如
- virtio网,
- virtio 块,
- virtio-vsock 等。
即使在这种极简设计中,我们也必须放置半虚拟化驱动程序。难道我们不能仅仅依靠硬件辅助虚拟化吗?