讀《系統虛擬化-原理與實現》-第三章

虛擬化概述

概念:

  • 在虛擬環境裏,虛擬機監控器(VMM)搶佔了操作系統的位置,編程的物理機的管理者,同時向上層的軟件呈現出虛擬的硬件平臺,欺騙着上層的操作系統

  • 虛擬機可以看做是物理機的一種高效隔離的複製。

  • 敏感指令: 操作特權資源的指令,特權指令往往是敏感指令,但特權指令並不僅僅包含特權指令

  • 虛擬化漏洞: 如果一個體系存在敏感指令不是特權指令,那麼就稱其存在虛擬化漏洞

虛擬化漏洞是可以採用一些手段來彌補或避免的如:

  • 虛擬機所有指令都採用模擬方式實現
  • 修改guest 的操作系統,避免非特權的敏感指令
  • 二進制掃描修補替換掉非特權的敏感指令

處理器虛擬化

guest對虛擬處理器的期望:

  1. 指令集合與執行效果
  2. 可用的寄存器集合
  3. 運行模式
  4. 地址翻譯
  5. 保護機制
  6. 中斷、異常機制

指令的模擬

VMM運行在最高特權級,而guest運行在非最高特權級(但guest OS認爲自己運行在最高特權級),當guest訪問特權資源時,會觸發異常,跳轉到VMM設置好的處理函數中去(陷入VMM),通過軟件方式模擬這條敏感指令。

  • VMM 會通過各種手段來保證敏感指令能觸發異常(不被物理CPU所直接執行),從而陷入到VMM中進行模擬

  • 例如:

  1. guest訪問CRO寄存器
  2. 處理器發現特權級別不符,拋出異常
  3. VMM截獲這個異常,模擬這條指令

幾種陷入方式:

  1. 基於處理器保護機制觸發異常
  2. 虛擬機主動觸發異常
  3. 異步中斷
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章