硬件虛擬化和軟件虛擬化
硬件虛擬化
- 硬件虛擬化就是硬件物理平台本身提供了對特殊指令的截獲和重定向的支持。支持虛擬化的硬件,也是一些基於硬件實現軟件虛擬化技術的關鍵。在基於硬件實現軟件虛擬化的技術中,在硬件是實現虛擬化的基礎,硬件(主要是CPU)會為虛擬化軟件提供支持,從而實現硬件資源的虛擬化。
支持虛擬化的硬件有:
- Intel-VT-(Intel Virtualization Technology),Intel公司為解決純軟件虛擬化解決方案在可靠性、安全性和性能上的不足而引進的技術。它可以讓一個CPU工作起來像多個CPU在並行運行,從而使得在一部電腦內同時運行多個操作系統成為可能
- AMD-V-(AMD Virtualization),是AMD公司的虛擬化技術。它是對x86處理器系統架構的一組硬件擴展和硬件輔助虛擬化技術,可以簡化純軟件的虛擬化解決方案,改進VMM(虛擬機監視器)的設計,更充分地利用硬件資源,提高服務器和數據中心的虛擬化效率
軟件虛擬化
軟件虛擬化就是利用軟件技術,在現有的物理平台上實現對物理平台訪問的截獲和模擬。在軟件虛擬化技術中,有些技術不需要硬件支持,如:QEMU;而有些軟件虛擬化技術,則依賴硬件支持,如:VMware、KVM。
對軟件虛擬化進行細分,又可以分為以下幾類:
- 完全虛擬化:(Full Virtualization)虛擬機模擬完整的底層硬件環境和特權指令的執行過程,使客戶機操作系統可以獨立運行。支持完全虛擬化的軟件有:Parallels Workstation、VirtualBox、Virtual Iron、Oracle VM、Virtual PC、Virtual Server、Hyper-V、VMware Workstation、QEMU等
- 硬件輔助虛擬化:(Hardware-assisted Virtualization)是指通過硬件輔助支持模擬運行環境,使客戶機操作系統可以獨立運行,實現完全虛擬化的功能。支持硬件輔助虛擬化的軟件有:Linux KVM、VMware Workstation、VMware Fusion、Virtual PC、Xen、VirtualBox、Parallels Workstation等
- 部分虛擬化:(Partial Virtualization)只針對部分硬件資源進行虛擬化,虛擬機模擬部分底層硬件環境,特別是地址空間。這樣的環境支持資源共享和線程獨立,但是不允許建立獨立的客戶機操作系統。
- 平行虛擬化:(Para-Virtualization)虛擬機不需要模擬硬件,而是將部分硬件接口以軟件的形式提供給客戶機操作系統。如:早期的Xen。
- 操作系統層虛擬化:(OS-level virtualization)這種技術將操作系統內核虛擬化,可以允許使用者空間軟件實例被分割成幾個獨立的單元,在內核中運行,而不是只有一個單一實例運行。這個軟件實例,也被稱為是一個容器(containers)、虛擬引擎(Virtualization engine)、虛擬專用服務器(virtual private servers)。每個容器的進程是獨立的,對於使用者來說,就像是在使用自己的專用服務器。
Docker容器技術就是屬於操作系統層虛擬化的范疇。
