我正在尝试阅读 qemu-kvm 和 kvm 模块,但很难理解以下内容:
How does qemu-kvm interact with kvm kernel module?
任何解释或指示将不胜感激。
qemu-kvm 通过
ioctl
类型与 KVM 交互(reference):
KVM_CREATE_VM
ioctl,发送到 /dev/kvm
的文件描述符,创建一个 VM 文件描述符。KVM_CREATE_VCPU
,创建一个VCPU文件描述符。KVM_SET_REGS
ioctl 初始化寄存器。更多信息通过
mmap
-ing VCPU 文件描述符在QEMU 和KVM 之间传递。最后,来宾运行发送到 VCPU 文件描述符的 KVM_RUN
ioctl,直到内核需要 QEMU 做一些事情(通常模拟一些虚拟硬件)。
这里有一份关于 qemu-kvm 如何与 KVM 交互的简短文档:
https://insujang.github.io/2017-05-02/kvm-internal-how-a-vm-is-created/