簡體   English   中英

管理程序如何處理從非 VM 實例的主機進程執行的敏感指令?

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

我知道所謂的 Type2 Hypervisor(例如 VMWare Workstation、VirtualBox)是作為內核模塊實現的。 VM-instance 是主機操作系統進程。

假設以下情況。(我知道這很奇怪,但為了簡單起見)

  • 一台機器有一個 CPU。
  • 主機操作系統是 Windows,它有兩個進程,calc.exe 和 VM-instance(引導 Linux)。
  • calc.exe 有一些敏感指令。

我不明白 Hypervisor 在 CPU 上運行 calc.exe 時是否會捕獲敏感指令。

我有兩個想法。

i) 管理程序捕獲來自 calc.exe 的敏感指令。 管理程序識別 calc.exe 或 VM 實例進程。 如有必要,Hypervisor 會模擬從 VM 實例進程執行的它。

ii) 當由於上下文切換中斷導致 VM-EXIT 時,Hypervisor 不會執行 vmresume。 換句話說,CPU 在執行 calc.exe 時是“VMX ROOT MODE”。 因此管理程序不起作用。

在 ii) 的情況下,當 VM 實例進程重新分配給 CPU 時,Hypervisor 如何執行 vmresume?

謝謝你。

想象上下文切換

“敏感”意味着指令可以區分是否在來賓 VM 中運行。 (或者可能會影響來賓 VM 之外的狀態)。 calc.exe 不在來賓 VM 中運行,因此它的作用無關緊要。

calc.exe 基本上是管理程序的一部分。 阻止用戶空間進程弄亂其他進程(包括來賓 VM)取決於正常的操作系統機制,即不讓它們禁用中斷或覆蓋其他進程的內存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM