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