虛擬化、完全虛擬化、半虛擬化和準虛擬化技術區別

虛擬化技術:百度百科中的定義是這樣的:虛擬化是一個廣義的術語,在計算機方面通常是指計算元件在虛擬的基礎上而不是真實的基礎上運行。虛擬化技術可以擴大硬件的容量,簡化軟件的重新配置過程。CPU的虛擬化技術可以單CPU模擬多CPU並行,允許一個平臺同時運行多個操作系統,並且應用程序都可以在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率。這個定義已經比較完整了。

(完)全虛擬化技術:完全虛擬化技術又叫硬件輔助虛擬化技術,最初所使用的虛擬化技術就是全虛擬化(Full Virtualization)技術,它在虛擬機(VM)和硬件之間加了一個軟件層--Hypervisor,或者叫做虛擬機管理程序(VMM)。hypervisor 可以劃分爲兩大類。首先是類型 1,這種 hypervisor 是直接運行在物理硬件之上的。其次是類型 2,這種 hypervisor 運行在另一個操作系統(運行在物理硬件之上)中。類型 1 hypervisor 的一個例子是基於內核的虛擬機(KVM —— 它本身是一個基於操作系統的 hypervisor)。類型 2 hypervisor 包括 QEMU 和 WINE。

  因爲運行在虛擬機上的操作系統通過Hypervisor來最終分享硬件,所以虛擬機發出的指令需經過Hypervisor捕獲並處理。爲此每個客戶操作系統(Guest OS)所發出的指令都要被翻譯成CPU能識別的指令格式,這裏的客戶操作系統即是運行的虛擬機,所以Hypervisor的工作負荷會很大,因此會佔用一定的資源,所以在性能方面不如裸機。但是運行速度要快於硬件模擬。全虛擬化最大的優點就是運行在虛擬機上的操作系統沒有經過任何修改,唯一的限制就是操作系統必須能夠支持底層的硬件,不過目前的操作系統一般都能支持底層硬件,所以這個限制就變得微不足道了。全虛擬化技術如圖1所示。

圖1:全虛擬化技術

半/準虛擬化技術:半虛擬化技術是後來纔出現的技術,半虛擬化技術英文是paravirtualization,也叫做準虛擬化技術,現在比較熱門,它就是在全虛擬化的基礎上,把客戶操作系統進行了修改,增加了一個專門的API,這個API可以將客戶操作系統發出的指令進行最優化,即不需要Hypervisor耗費一定的資源進行翻譯操作,因此Hypervisor的工作負擔變得非常的小,因此整體的性能也有很大的提高。不過缺點就是,要修改包含該API的操作系統,但是對於某些不含該API的操作系統(主要是windows)來說,就不行能用這種方法。半/準虛擬化技術如圖2所示。

圖2:半/準虛擬化技術

隨着硬件虛擬化技術的逐漸演化,運行於Intel平臺的全虛擬化的性能已經超過了準虛擬化產品,這一點在64位的操作系統上表現的更爲明顯。加之,全虛擬化不需要對客戶機操作系統做任何修改的固有優勢。可以預言,基於硬件的全虛擬化產品將是未來虛擬化技術的核心。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章