Hypervisor 如何处理从不是 VM 实例的主机进程执行的敏感指令?

How does Hypervisor deal with sensitive instructions executed from host process that is not VM-instance?

我知道所谓的 Type2 Hypervisor(如 VMWare Workstation、VirtualBox)是作为内核模块实现的。 VM 实例是主机 OS 进程。

假设以下情况。(我知道这很奇怪但为了简单起见)

我不明白 Hypervisor 是否捕获敏感指令,而 运行 calc.exe 在 CPU。

我有两个想法。

i) Hypervisor 捕获来自 calc.exe 的敏感指令。 管理程序识别 calc.exe 或 VM 实例进程。 如果需要,Hypervisor 会模拟从 VM 实例进程执行的它。

ii) 当上下文切换中断导致 VM-EXIT 时,Hypervisor 不执行 vmresume。 换句话说,CPU 在执行 calc.exe 时是“VMX ROOT MODE”。因此 Hypervisor 不起作用。

在ii)的情况下,当VM-instance进程重新分配给CPU时,Hypervisor如何执行vmresume?

谢谢。

Imagine Context Switch

“敏感”意味着一条指令可以区分 运行 是否在来宾虚拟机内部。 (或者可能影响来宾 VM 外部的状态)。 calc.exe 不在来宾 VM 中 运行,所以它做什么并不重要。

calc.exe 基本上是管理程序的一部分。这取决于正常的 OS 机制来阻止用户-space 进程弄乱其他进程(包括来宾 VM),即不让它们禁用中断或覆盖其他进程的内存。