我是kvm的新手,当客人处理外部中断或模拟设备中断时,有人可以解释它的过程吗?
谢谢阿莫斯
在 x86 架构中,Intel 在这种情况下,大部分中断都会导致 CPU VM 退出,这意味着 CPU 的控制权将从 guest 回到主机。
所以过程是
来宾操作系统在 VMX 非根模式下使用 CPU。
CPU 知道中断即将到来。
CPU 的控制权返回给以 VMX 根模式运行的主机。(虚拟机退出)
主机 (KVM) 处理中断。
主机执行 VMLAUNCH 指令让 CPU 再次转换到 VMX 非 root 模式以运行来宾代码。
重复 1。
如果您是 kvm 新手,您应该首先阅读一些关于 kvm 模块如何工作的论文(我假设您了解虚拟化的基本概念)。它如何使用 qemu 进行 i/o 仿真等。我建议您阅读这些论文:
kvm:Linux 虚拟机监视器:https : //www.kernel.org/doc/mirror/ols2007v1.pdf#page=225 基于内核的虚拟机技术:http ://www.fujitsu.com/downloads/MAG/ vol47-3/paper18.pdf KVM:基于内核的虚拟化驱动程序:http ://www.linuxinsight.com/files/kvm_whitepaper.pdf
这些是开始 kvm 的人写的论文。(它们简短而甜蜜:))
在此之后,您应该开始查看源代码中的 kvm 文档,尤其是文件 api.txt,它非常好。
然后我认为您可以跳入源代码以了解事物的实际工作方式。
干杯