2012-01-22 254 views
9

我一直在試圖找出VMware的是如何工作的(Linux安裝特別是當),我有幾個問題:虛擬機

  1. 當VMware遇到像push cs命令會發生什麼事?特別是cs,因爲它的特權級別是0,VMware運行在1級特權級別上,所以我假設它不得不將它翻譯成其他命令。

  2. 虛擬內存:它如何在虛擬機上工作?有2級翻譯 - 進程虛擬內存 - >虛擬機物理內存 - >真實機器物理內存?當真正的機器交換頁面時,VMware將如何得到通知?

+1

好問題。 –

+1

完全偏離主題的問題。 – bmargulies

+1

好問題。我對答案感興趣。 – alexy13

回答

1
  • 大多數指令直接在CPU上運行。但特權指令導致異常,處理程序模擬它們。
  • 現在我明白你的意思與push cs的例子。你的意思是在不同的權限級別上默默行爲不同的指令。 The wikipedia article on x86 virtualization表示它們是二進制翻譯的,即在主CPU上運行代碼之前存在重新編譯階段。
  • 在較舊的x86中,vmware維護影子頁表。客戶頁面表必須被仿真,以允許vmware跟蹤客戶OS具有頁表的視圖。較新的x86具有虛擬化擴展,可以以高效的方式允許多級頁表。