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