操作系統:虛擬化和雲

虛擬化的必要條件

虛擬機管理程序需要在以下三個維度上有良好的表現:

  1. 安全性:虛擬機管理程序應完全掌控虛擬資源。
  2. 保真性:程序在虛擬機上執行的行爲應與在裸機上相同。
  3. 高效性:虛擬機中運行的大部分代碼應不受虛擬機管理程序的干涉。

敏感指令:在內核態和用戶態執行的行爲不同。(進行 I/O 操作或修改 MMU 設置)
特權指令:在用戶態執行會導致陷入。
機器可虛擬化的一個必要條件是:敏感指令爲特權指令的子集。簡單來說,如果用戶態想要做不應該在用戶態做的事情,硬件必須陷入。

VT 技術的基本思想是創建可以運行虛擬機的容器


第一類和第二類虛擬機管理程序

第一類虛擬機管理程序運行在裸機上;第二類虛擬機管理程序依賴於宿主操作系統的系統服務。

第一類虛擬機管理程序就像一個操作系統,因爲它是唯一一個運行在最高特權級的程序。它的工作是支持真實硬件的多個虛擬機拷貝,類似於不同操作系統支持的進程。

第二類虛擬機是一個依賴於 Windows、Linux 等操作系統分配和調度資源的程序,很像一個普通的進程。當然,第二類虛擬機管理程序仍僞裝成具有 CPU 和各種設備的完整計算機。

兩類虛擬機管理程序都必須以一種安全的方式執行機器指令。

運行在兩類虛擬機管理程序上的操作系統都稱作客戶操作系統。對於第二類虛擬機管理程序,運行在底層硬件上的操作系統稱作宿主操作系統

  • 第一類虛擬機管理程序:Xen、Hyper-V、vSphere
  • 第二類虛擬機管理程序:VMare、Wine、Parallels

在不支持虛擬化的平臺上實現虛擬化

客戶機內核的敏感指令被替換爲對模擬這些指令的例程的調用。真實硬件不會直接執行客戶操作系統中的敏感指令。這些敏感指令被轉爲對虛擬機管理程序的調用,虛擬機管理程序模擬了這些指令的功能。

二進制翻譯:虛擬機管理程序在運行中改寫了部分代碼,將有問題的指令替換成了安全的指令序列,模擬原指令的功能。由於進行了改寫操作,因此可以替換掉不屬於特權指令的敏感指令。其他的指令可以直接執行。(例如,一條不安全的 I/O 指令會被替換成一個陷入操作,經過安全性檢查之後,執行等價的指令並返回結果)


雲的五條必要特徵:

  1. 按需自助服務:無需人爲操作就能自動爲用戶提供資源。
  2. 普適的網絡訪問:所有資源都可以通過網絡用標準化的機制訪問,以支持各種異構設備。
  3. 資源池:雲提供商擁有的資源可以服務多個用戶並動態再分配,用戶通常不知道他們使用的資源的具體位置。
  4. 快速可伸縮:能根據用戶需求彈性甚至是自動地獲取和釋放資源。
  5. 服務可計量:雲提供商按服務類型計量用戶使用的資源。

雲即服務:雲的功能是提供一個用戶可以直接訪問並任意使用的虛擬機。因而,同一個雲中可能運行着不同的操作系統。這種雲稱作基礎設施即服務

  • 基礎設置即服務(IAAS)
  • 平臺即服務(PAAS)
  • 軟件即服務(SAAS)
  • 網絡即服務(NAAS)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章