VM 上的应用程序是否可以直接与 Hypervisor 通信(而不是通过 VM 内核)?
Is it possible for applications on VMs to communicate with Hypervisor directly (not through VM Kernel)?
假设这个数字:
有没有可能如图所示直接存在通讯1号线?是否有任何管理程序支持这种类型的行为?如果没有,是否可以更改管理程序(如 KVM)以支持此功能?
我怀疑通信线路 2 是可行的。但我不太确定。因此,该问题也适用于如图所示的通信线路 2。
是的,这是可能的。例如,使用 Intel VMX,可以从应用程序中使用 vmcall 指令。可以使用在用户模式下允许并导致 VM 退出的任何其他指令,例如 cpuid 或对未映射页面的内存访问。
这个问题的答案讨论了如何向 KVM 添加 vmcall 处理程序。 Implementing a custom hypercall in kvm
假设这个数字:
有没有可能如图所示直接存在通讯1号线?是否有任何管理程序支持这种类型的行为?如果没有,是否可以更改管理程序(如 KVM)以支持此功能?
我怀疑通信线路 2 是可行的。但我不太确定。因此,该问题也适用于如图所示的通信线路 2。
是的,这是可能的。例如,使用 Intel VMX,可以从应用程序中使用 vmcall 指令。可以使用在用户模式下允许并导致 VM 退出的任何其他指令,例如 cpuid 或对未映射页面的内存访问。
这个问题的答案讨论了如何向 KVM 添加 vmcall 处理程序。 Implementing a custom hypercall in kvm