我必须使用 KVM API 在 VMX-non root模式下运行一段代码。这可以通过使用用户空间程序中的KVM API轻松完成。但是,我必须从内核空间本身做到这一点。向用户空间发送所需数据并运行用户空间程序不是一种选择。
This post提到了一种从内核空间发出ioctl调用的方法,并且由于KVM API使用 ioctl 调用与KVM内核模块进行交互,这似乎是一种看似合理的方法。但是,我无法理解这种方法,并且不确定它是否能以无错误的方式工作。
KVM是否公开了一个可以从内核空间本身运行的API?如果没有,我如何创建一个用户空间程序从内核空间(大量数据结构)接收所需的数据,然后做同样的事情呢?
答案 0 :(得分:0)
已经有Qemu这是一个通过ioctls与KVM交互的用户空间程序。 Qemu支持您需要的一切。
您可以扩展Qemu以轻松实现您的KVM应用程序作为Qemu命令。
查看Qemu根目录中的hmp-commands.hx文件以获取示例。