0 引言
目前,虛擬化技術深入計算機應用各個方面,從服務器到桌面系統都呈現出一片繁榮景象。但是X86平臺上的虛擬技術起步較晚,隨著X86 平臺CPU 性能越來越強,市場應用越來越廣泛,X86 平臺下的虛擬化技術同樣得到了快速發展,特別是支持虛擬化技術的CPU 的出現,X86 平臺已經成為虛擬化發揮作用的重要平臺之一。
1 虛擬化技術
虛擬化是一個非常廣義的術語,在計算機方面通常是指計算元件在虛擬的基礎上而不是真實的基礎上運行。虛擬化技術VT(Virtualization Technology)可以擴大硬件的容量,簡化軟件的重新配置過程。
虛擬化目前主要有軟件虛擬和硬件輔助虛擬兩種方式。傳統的軟件虛擬方式是利用CPU 的多任務和超線程技術,通過虛擬軟件VMM(Virtual Machine Monitor)來實現一臺主機模擬多個系統。常用的虛擬軟件有微軟公司的Virtual PC 和VMware 公司的VMware Workstation 等。虛擬操作系統主要是通過虛擬軟件VMM 與硬件進行通信,由虛擬軟件VMM 決定其對虛擬操作系統的訪問。虛擬操作系統與主機操作系統之間的通信層需要進行二進制轉換,以通過提供如CPU、內存、存儲器、顯卡和網卡等物理資源的接口,模擬硬件環境。這種轉換必然會增加系統的復雜性,也降低系統的安全性和穩定性。而硬件輔助的虛擬方式是利用CPU 虛擬化技術,通過硬件來實現一臺主機模擬多個系統。CPU 虛擬化技術可以將單個CPU 模擬多個CPU 并行,提供基于芯片的功能,多個系統的應用程序都可以在相互獨立的空間內運行而互不影響,并且支持虛擬操作系統直接在硬件上運行,無需進行二進制轉換,從而顯著提高計算機的工作效率。
早在2005 年,Intel 公司和AMD 公司便在各自的CPU 中加入虛擬化技術的支持。Intel 公司在自己的CPU 中設計了Intel-VT 硬件虛擬化技術,而AMD 公司也在自己的CPU 中設計了AMD-V 硬件虛擬化技術。由于這兩個公司的CPU 都是基于相同的X86 構架,因而CPU 硬件虛擬化技術的本質也大致相同。
2 虛擬化技術分析
X86 構架的CPU 指令系統分成Ring 0-3 四個級別。Ring 0 擁有最高的權限,通常系統內核才擁有Ring 0 的權限,可以直接和硬件溝通讀取輸入輸出設備、CPU、內存等數據。其次是Ring 1,往后依次類推,Ring 3 的權限最低。運行于較低級別的指令不能隨意調用高級別的指令和訪問較高級別的數據,從而對數據進行保護。大部分的操作系統沒有用到這四個級別,一般只用了兩個級別,如Linux 和Windows操作系統分成特權模式和用戶模式兩種。系統的內核是特權模式,運行在Ring 0 級別。而系統的應用程序是用戶模式,運行在Ring 3 級別。如果用戶模式的應用程序需要存取硬件數據時只能使用特權模式的內核所提供的系統調用來存取。
一臺主機要同時運行多個操作系統,需要用虛擬軟件VMM 來管理多個虛擬操作系統,有直接虛擬和主機虛擬兩種軟件虛擬方式,以及利用CPU 虛擬化技術的硬件輔助虛擬方式。直接虛擬方式通過直接運行在硬件層上的虛擬軟件VMM 來管理虛擬操作系統。在這種方式中,虛擬軟件VMM 運行于特權模式Ring 0 級別,虛擬操作系統運行于Ring 1 級別,虛擬應用程序運行于用戶模式Ring 3 級別,如圖1 所示。這種方式的虛擬操作系統需要通過指令轉換將指令交給虛擬軟件VMM 執行,這樣就降低了系統效率。
主機虛擬方式是通過運行于主機操作系統上的虛擬軟件VMM 來管理虛擬操作系統。在這種方式中,主機操作系統運行在特權模式Ring 0 級別,虛擬軟件VMM 作為主機操作系統的應用程序,運行在用戶模式Ring 3 級別,虛擬操作系統和虛擬應用程序也運行于用戶模式Ring 3 級別,如圖2 所示。這種方式會耗費系統很多的資源,降低系統的性能。
圖1 直接虛擬方式 圖2 主機虛擬方式
利用CPU 虛擬化技術的硬件輔助虛擬方式可以解決虛擬操作系統的內核無法處于特權模式Ring 0 級別的問題。這種方式是通過硬件,利用支持虛擬技術的CPU 帶有特別優化過的指令集VMX(Virtual Machine Extensions)來實現。在這種方式中,CPU 的操作分成兩種不同的操作模式。一種是根虛擬化操作模式VMX root mode,這種操作模式讓虛擬軟件VMM 在Ring 0 級別以下使用,可以把它當作是Ring -1 級別。另一種是非根虛擬化操作模式VMX non-root mode,這種操作模式可以讓虛擬操作系統在Ring 0 級別使用,而虛擬應用程序在Ring 3 級別使用,如圖3 所示。
圖3 CPU 虛擬化技術硬件輔助虛擬方式
用戶使用虛擬操作系統的時候,通過執行VMXON 指令來進入根虛擬化操作模式的虛擬軟件VMM,
再執行VMLAUNCH 指令來進入非根虛擬化操作模式的虛擬操作系統。用戶退出虛擬操作系統的時候,執
行VMRESUME 指令退出非根虛擬化操作模式,進入根虛擬化操作模式的虛擬軟件VMM,再執行VMXOFF
指令退出虛擬軟件VMM。CPU 虛擬化技術借助虛擬軟件VMM 提供了全新的架構,減少了相關的性能開
銷,簡化了虛擬軟件VMM 的設計,大大提高了虛擬系統的性能。
3 CPU 虛擬化技術的應用
CPU 虛擬化技術在日常應用中可能很少被用到,但在某些應用上卻能發揮它的優勢,如Windows 7操作系統中的Windows XP 模式就是CPU 虛擬化技術的一個實際應用。
微軟公司在Windows 7 操作系統的專業版、企業版和旗艦版中,給用戶提供了Windows XP 模式。它是基于微軟的Virtual PC 虛擬軟件,結合CPU 虛擬化技術,在Windows 7 系統中模擬Windows XP SP3 操作系統環境,保持Windows 操作系統的簡潔性和兼容性。
使用Windows 7 操作系統的Windows XP 模式需要CPU支持硬件虛擬化技術,并且在計算機BIOS 中設置為啟用狀態。用SecurAble 工具可以檢測CPU是否支持Intel-VT 或者AMD-V 硬件虛擬化技術,如圖4 所示。圖中Maximum Bit Length 顯示CPU 是32 位的還是64 位的;HardwareD.E.P.(Data Execution Prevention)顯示CPU 對硬件數據執行保護的支持。而Hardware Virtualization就顯示當前CPU 對硬件虛擬化技術的支持。如果HardwareVirtualization 顯示“NO”表示當前CPU 不支持硬件虛擬化技術。如果Hardware Virtualization 顯示“Yes”表示當前CPU 支持硬件虛擬化技術。如果HardwareVirtualization 顯示“Locked ON”表示CPU 支持硬件虛擬化技術,并且計算機BIOS 已經啟用該功能。如果Hardware Virtualization 顯示“Locked OFF”表示計算機BIOS 禁用了硬件虛擬化技術,不確定CPU 本身是否支持,可以在計算機BIOS里面查看是否能設置硬件虛擬化技術。
圖4 SecurAble 測試CPU 功能
目前,Intel 和AMD 公司的CPU 產品中仍有部分系列產品不支持硬件虛擬化技術,使用這些CPU 的用戶就不能使用Windows 7 操作系統中的Windows XP 模式。為此, 微軟發布了系統補丁(Windows6.1-KB977206-x86.msu),可以讓使用不支持硬件虛擬化技術的CPU 的用戶通過補丁程序來使用Windows XP 模式。
用戶可以到微軟的官方網站http://www.microsoft.com/china/windows/virtual-pc/中免費下載Windows 7 系統的Windows XP 模式。選擇好Windows 7 系統的版本和語言后就可以下載對應的Windows XP 模式安裝程序WindowsXPMode_zh-cn.exe 和Windows Virtual PC 虛擬軟件安裝程序Windows6.1-KB958559 -x86.msu。將這兩個程序按提示安裝好后,在Windows 7 系統的“開始”菜單中的“所有程序”中的“Microsoft VirtualPC”下就有了“Windows XP Mode”。
Windows 7 系統安裝好Windows XP 模式后就可以在同一桌面上運行Windows 7 系統的應用程序和Windows XP 系統的應用程序。在Windows XP 系統中的操作不會影響到Windows 7 系統,還可直接調用Windows 7 系統中的硬盤、軟件等,讓用戶可以更好更方便地使用Windows XP 系統來運行與Windows 7系統不兼容的應用程序。
Windows 7 系統的Windows XP 模式因為啟用了CPU 虛擬化技術,使得虛擬Windows XP 操作系統工作在Ring 0 級別的特權模式下能直接與硬件通信,所以在某些硬件系統的性能上有了突出的表現。圖5是在Windows XP 模式的虛擬Windows XP 系統中,用優化大師進行性能測試得到的主要性能評估值。左邊一列值是啟動CPU 虛擬化技術后性能測試的分值,右邊一列值是在計算機BIOS 中禁用CPU 虛擬化技術,安裝補丁程序后,仍在Windows XP 模式相同的Windows XP 系統中,性能測試得到的分值。從這兩種情況的性能測試分值比較中可以看出,利用CPU 虛擬化技術的Windows XP 系統的CPU、內存、顯卡的性能評估值比禁用CPU 虛擬化技術的Windows XP 系統的評估值有近10%的提高,而硬盤性能評估值卻有了近40%的提高。
圖5 Windows XP 模式系統性能測試
4 結束語
CPU 虛擬化技術可以在硬件級別上實現計算機的虛擬化工作,利用CPU 虛擬化技術的Windows XP模式能提高虛擬系統的性能,增強Windows 7 系統的兼容性和穩定性。隨著CPU 虛擬化技術的逐漸推廣和應用,CPU 虛擬化技術在桌面系統安全性和可靠性方面,提高用戶體驗性方面,提高機器使用效率,以及加強業務整合能力等方面,將會發揮更大的作用。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.hanmeixuan.com/
本文標題:CPU 虛擬化技術分析和應用
本文網址:http://m.hanmeixuan.com/html/support/11121510195.html