Hypervisor如何处理非VM-instance主机进程执行的敏感指令?



我知道所谓的Type2 Hypervisor(如VMWare Workstation, VirtualBox)是作为内核模块实现的。其中VM-instance为主机操作系统进程。

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

  • 一台机器有一个CPU
  • 主机操作系统为Windows,有两个进程calc.exe和VM-instance(启动Linux)。
  • calc.exe有一些敏感指令

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

我有两个想法。

i) Hypervisor捕获来自calc.exe的敏感指令。Hypervisor识别calc.exe或VM-instance进程。如果必要的话,Hypervisor会模拟从vm实例进程执行的进程。

ii) Hypervisor在上下文切换中断导致VM-EXIT时不执行vmresume。换句话说,CPU是"VMX ROOT mode";在执行calc.exe时。因此Hypervisor不能工作。

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

谢谢。

Imagine Context Switch

敏感;意味着指令可以区分是否在客户虚拟机中运行。(或者可能影响来宾虚拟机之外的状态)。calc.exe不在客户虚拟机中运行,所以它做什么都无关紧要。

calc.exe基本上是管理程序的一部分。正常的操作系统机制可以阻止用户空间进程扰乱其他进程(包括来宾虚拟机),即不允许它们禁用中断或覆盖其他进程的内存。

最新更新