硬件虛擬化是一種對計算機或是操作系統(tǒng)的虛擬。那怎么才可以使用硬件虛擬化技術(shù)呢?
要使用硬件虛擬化技術(shù),首先要啟動虛擬機指令集來獲得虛擬機監(jiān)視器的控制權(quán)。要停止使用虛擬機監(jiān)視器,則放棄控制權(quán)并停用虛擬機指令集。如果CPU不支持硬件虛擬化技術(shù)(或固件上設(shè)置禁用硬件虛擬化技術(shù)),啟動虛擬機指令集會引起“非法指令錯誤(Invalid Opcode Exception,簡稱#UD)”。若沒有啟動虛擬機指令集就去獲取虛擬機監(jiān)視器控制權(quán)也同樣會引起“非法指令錯誤”。若已經(jīng)有其他程序獲取了虛擬機監(jiān)視器的控制權(quán),但沒有實現(xiàn)虛擬化虛擬機監(jiān)視器,即VT嵌套,則該程序嘗試獲取虛擬機監(jiān)視器的控制權(quán)時會失敗。
硬件虛擬化技術(shù)流程:
當(dāng)客戶軟件執(zhí)行了特定的指令時,觸發(fā)“退出虛擬機事件(VM Exit)”,即非根模式到根模式的轉(zhuǎn)換,此時會保存處理器上下文并執(zhí)行虛擬機監(jiān)視器的處理代碼,一般來講虛擬機監(jiān)視器的處理代碼可能也會修改處理器的上下文,處理完成后則恢復(fù)處理器上下文,并觸發(fā)“進入虛擬機事件(VM Entry)”,客戶軟件繼續(xù)運行。
硬件虛擬化技術(shù)被運用在哪些地方呢?
一是常見的虛擬機項目。
二是安全軟件。最經(jīng)典的就是隱藏鉤子過PatchGuard檢測。
三是VT調(diào)試器。VT調(diào)試器的特點在于可以通過調(diào)試異常時通過退出虛擬機事件實現(xiàn)本地承接本地內(nèi)核斷點,也可以通過在進入虛擬機事件時的“事件注入”特性來插入新的斷點。
四是反恢復(fù)鉤子/惡意掛鉤。反惡意掛鉤的本質(zhì)是和反恢復(fù)鉤子一樣的,同樣是用EPT/RVI設(shè)定物理內(nèi)存的禁止寫入頁,或用硬件虛擬化原有特性來攔截操作MSR,DRX。
所以現(xiàn)在是不是對于硬件虛擬化技術(shù)多了一些了解和認識呢?你們還知道哪些小編沒有說到的硬件虛擬化技術(shù)的知識點呢?
上一個教程:返回列表
下一個教程:返回列表