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