2017-04-02 100 views
1

我瞭解陷阱和模擬是什麼,但我很努力去理解二進制翻譯是什麼以及它與陷阱和模擬有什麼不同。我對這個主題非常陌生,並且試圖從2006年的一篇論文中瞭解這篇介紹:陷阱和模擬與二進制翻譯有什麼區別?

「直到最近,x86架構都沒有允許經典的陷阱和模擬虛擬化。x86的虛擬機監視器,例如VMware®Workstation和Virtual PC,而是使用客戶內核代碼的二進制轉換,但英特爾和AMD現在都引入了架構擴展來支持傳統的虛擬化。「

我也不明白什麼「經典虛擬化」是在上下文陷阱和模擬與二進制翻譯。任何幫助理解這些條款將不勝感激。

+0

Trap-and-emulate *是經典的虛擬化技術,早在20世紀60年代和70年代就開始使用。 –

回答

2

我認爲這個link會幫助你。我試圖總結它,欲瞭解更多信息,請參閱鏈接。

每當訪客操作系統嘗試執行其中一項特權操作時,處理器將「陷阱」該指令並將控制權交給主機操作系統或管理程序,以便它可以執行所需的操作,然後返回控制權回到客人身邊。但是大多數真實世界的指令集,包括x86,都沒有考慮到虛擬化的設計。因此,有特權說明沒有任何相應的陷阱設施。

二進制翻譯直接解決了這個問題。它並不依賴處理器本身來檢測特權指令,而是使用虛擬化軟件檢查軟件中的指令流,並且每當虛擬化軟件檢測到有問題的指令時,就立即重寫它,通常用一種手冊替換它陷阱,這會在適當的時候將控制權交給管理程序。希望這可以幫助你。