專利名稱:一種基于固件的虛擬化平臺(tái)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)平臺(tái),尤其涉及一種與虛擬機(jī)監(jiān)視器VMM相關(guān)的基于 固件的虛擬化平臺(tái)系統(tǒng)。
背景技術(shù):
操作系統(tǒng)的虛擬化是一項(xiàng)為了在一臺(tái)物理計(jì)算機(jī)上安裝多個(gè)操作系統(tǒng)的已有 的技術(shù)。近年來,數(shù)據(jù)中心的建造者已經(jīng)開始使用虛擬化作為改善服務(wù)器性能和其 可利用性的一種手段。這就在工業(yè)領(lǐng)域和學(xué)術(shù)研究領(lǐng)域引起了對(duì)虛擬化新的興趣。 不僅如此,虛擬化技術(shù)在消費(fèi)市場(chǎng)也同樣有機(jī)會(huì)產(chǎn)生更大的影響。軟件開發(fā)商往往 依賴多個(gè)操作系統(tǒng)實(shí)例來測(cè)試新的軟件。PC廠商使用虛擬化的一些技術(shù)提供一個(gè) 可靠的還原點(diǎn),以便用于操作系統(tǒng)出故障時(shí)或感染病毒時(shí)。新興市場(chǎng)的客戶使用虛 擬化來維護(hù)本土語言版本和英語版本的不同操作系統(tǒng)。
現(xiàn)有虛擬化架構(gòu)在RAM中存儲(chǔ)臨時(shí)元數(shù)據(jù),并在二級(jí)存儲(chǔ)器(通常是一個(gè)磁 盤)上存儲(chǔ)持久性元數(shù)據(jù)。臨時(shí)元數(shù)據(jù)通過操作系統(tǒng)使用傳統(tǒng)的虛擬內(nèi)存技術(shù)來防 止篡改。對(duì)于具有虛擬化能力的現(xiàn)代處理器,CPU的硬件存儲(chǔ)器管理單元甚至可以 防止有特權(quán)的操作系統(tǒng)代碼對(duì)虛擬內(nèi)存的未經(jīng)授權(quán)的訪問。
然而,在用戶的虛擬化架構(gòu)中,持久性程序數(shù)據(jù)和元數(shù)據(jù)經(jīng)常得不到保障, 這是因?yàn)檫@些架構(gòu)通常通過配置并行的操作系統(tǒng)來獲得磁盤的直接訪問。直接訪問 磁盤為并行的虛擬操作系統(tǒng)提供了最佳的性能,但它無法防止未經(jīng)授權(quán)的或偽造的 磁盤訪問。從客戶的角度來看,為了得到最佳的性能,可以犧牲一定的安全性,即 容忍未經(jīng)授權(quán)的磁盤訪問破壞系統(tǒng)中的另一個(gè)操作系統(tǒng)的風(fēng)險(xiǎn)。但是,不能容忍整 個(gè)系統(tǒng)不可啟動(dòng)或者VMM完全無法使用。
通常情況下,當(dāng)操作系統(tǒng)擁有直接磁盤權(quán)限時(shí),無法防止操作系統(tǒng)存取磁盤 的任何部分,因此有可能損害V薩的持久性數(shù)據(jù)。這包括描述硬件資源的靜態(tài)分區(qū) 配置的元數(shù)據(jù)和每個(gè)虛擬操作系統(tǒng)環(huán)境的定義。持久性數(shù)據(jù)還包括VMM的可執(zhí)行程
序。因此, 一個(gè)未經(jīng)授權(quán)的磁盤區(qū)域的寫入操作會(huì)帶來災(zāi)難性的后果,包括配置數(shù) 據(jù)的銷毀,或者一個(gè)系統(tǒng)分區(qū)規(guī)則的破壞,兩者都會(huì)使整個(gè)系統(tǒng)陷入無法恢復(fù)、無 法啟動(dòng)的狀態(tài)。
在服務(wù)器和用戶部署中,系統(tǒng)的虛擬機(jī)監(jiān)視器V醒軟件保持其不可侵犯性是
至關(guān)重要的。但是如上所述,目前的虛擬化架構(gòu)將重要的VMM數(shù)據(jù)存儲(chǔ)在磁盤上, 它可以被計(jì)算機(jī)中任一操作系統(tǒng)訪問。由于用戶的虛擬環(huán)境不穩(wěn)定、經(jīng)常感染病毒、 實(shí)驗(yàn)性代碼故障和傳統(tǒng)操作系統(tǒng)的破壞性行為,一般的操作系統(tǒng)中的整個(gè)虛擬化架 構(gòu)很容易受到侵害,并且難以挽救。
發(fā)明內(nèi)容
本發(fā)明的目的在于解決上述問題,提供了一種基于固件的虛擬化平臺(tái)系統(tǒng), 保護(hù)平臺(tái)的程序數(shù)據(jù)和持久性元數(shù)據(jù),防止本地操作系統(tǒng)的破壞。
本發(fā)明的技術(shù)方案為本發(fā)明揭示了一種基于固件的虛擬化平臺(tái)系統(tǒng),將虛 擬機(jī)監(jiān)視器VMM中的持久性數(shù)據(jù)放置在一個(gè)永久性存儲(chǔ)器中,并利用該永久性存儲(chǔ) 器的固件從操作系統(tǒng)啟動(dòng)時(shí)就隱藏該永久性存儲(chǔ)器,該虛擬化平臺(tái)系統(tǒng)包括
操作系統(tǒng)管理程序模塊,安裝于每個(gè)操作系統(tǒng)實(shí)例的用戶空間內(nèi);
閃存虛擬操作系統(tǒng)驅(qū)動(dòng)程序模塊,安裝于每個(gè)操作系統(tǒng)實(shí)例的內(nèi)核中,該模
塊包括
擴(kuò)展固件接口 EFI單元,與該虛擬機(jī)監(jiān)視器VMM進(jìn)行通訊和請(qǐng)求VMM
服務(wù);
擴(kuò)展固件接口模塊,安裝于固件EFI中,負(fù)責(zé)運(yùn)行期的操作系統(tǒng)實(shí)例發(fā)出的 驗(yàn)證請(qǐng)求以及系統(tǒng)管理的控制協(xié)議的實(shí)現(xiàn),該模塊進(jìn)一步包括
擴(kuò)展磁盤服務(wù)單元,用于進(jìn)行動(dòng)態(tài)分區(qū)以及創(chuàng)建刪除虛擬機(jī),內(nèi)含用于 隔離各個(gè)操作系統(tǒng)實(shí)例的虛擬機(jī)監(jiān)視器VMM;
被保護(hù)變量存儲(chǔ)區(qū)域,用于存儲(chǔ)VMM中的可讀寫持久性數(shù)據(jù),以使持 久性數(shù)據(jù)只能被該擴(kuò)展固件接口模塊訪問;
永久性存儲(chǔ)器,存儲(chǔ)只讀的虛擬機(jī)監(jiān)視器VMM程序數(shù)據(jù),以避免對(duì)VMM 程序數(shù)據(jù)的惡意更改。
上述的基于固件的虛擬化平臺(tái)系統(tǒng),其中,該操作系統(tǒng)管理程序模塊用于允
許用戶通過該虛擬機(jī)監(jiān)視器VMM給予的認(rèn)證,設(shè)置任務(wù)的優(yōu)先級(jí),在多個(gè)運(yùn)行期 操作系統(tǒng)實(shí)例之間管理和分配物理資源,創(chuàng)造或銷毀操作系統(tǒng)實(shí)例。
上述的基于固件的虛擬化平臺(tái)系統(tǒng),其中,該閃存虛擬操作系統(tǒng)驅(qū)動(dòng)程序模 塊由該操作系統(tǒng)管理程序模塊調(diào)用,與操作系統(tǒng)實(shí)例進(jìn)行交互,該模塊還包括 磁盤服務(wù)單元,在該虛擬機(jī)監(jiān)視器VMM許可下格式后和分配磁盤資源。 上述的基于固件的虛擬化平臺(tái)系統(tǒng),其中,該永久性存儲(chǔ)器是外部即插即用 存儲(chǔ)器。
上述的基于固件的虛擬化平臺(tái)系統(tǒng),其中,該永久性存儲(chǔ)器是閃存陣列存儲(chǔ)器。
本發(fā)明對(duì)比現(xiàn)有技術(shù)有如下的有益效果在現(xiàn)有的虛擬化解決方案中,運(yùn)行 期操作系統(tǒng)有權(quán)直接訪問磁盤資源,現(xiàn)有的虛擬化結(jié)構(gòu)無法防止操作系統(tǒng)的故障和 惡意篡改對(duì)數(shù)據(jù)的破壞,因而無法提供對(duì)虛擬化平臺(tái)的程序數(shù)據(jù)和持久性元數(shù)據(jù)
(比如配置信息)的保護(hù)。本發(fā)明利用EFI建立一個(gè)可擴(kuò)展的模塊,該模塊可分配 系統(tǒng)資源給普通的單個(gè)或多個(gè)操作系統(tǒng)。該模塊還可以支持將只讀的VMM程序數(shù)據(jù) 存儲(chǔ)在一個(gè)已配置好的外部的只讀的即插即用存儲(chǔ)設(shè)備中,少量的可讀寫持久性虛 擬元數(shù)據(jù)(通常是64KB或更少)能夠存儲(chǔ)到EFI平臺(tái)上的只能夠被EFI模塊訪問
的被保護(hù)變量區(qū)域中。這樣,本發(fā)明就能模塊化地將持久性元數(shù)據(jù)和平臺(tái)程序數(shù)據(jù) 放到操作系統(tǒng)無法寫入的地方,既允許一個(gè)認(rèn)證用戶在運(yùn)行期或啟動(dòng)時(shí)控制和分配 資源,同時(shí)又能防止未授權(quán)用戶或操作系統(tǒng)的故障損壞虛擬機(jī)平臺(tái)的重要數(shù)據(jù)。
圖1是本發(fā)明的基于固件的虛擬化平臺(tái)系統(tǒng)的較佳實(shí)施例的原理圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的描述。
圖1示出了本發(fā)明的基于固件的虛擬化平臺(tái)系統(tǒng)的較佳實(shí)施例的原理。請(qǐng)參 見圖1,基于固件的虛擬化平臺(tái)系統(tǒng)的實(shí)施例包括操作系統(tǒng)管理程序模塊10、閃存 虛擬操作系統(tǒng)驅(qū)動(dòng)程序模塊20、擴(kuò)展固件接口模塊30以及永久性存儲(chǔ)器40。
操作系統(tǒng)管理程序模塊(OS Manager) 10安裝在每個(gè)操作系統(tǒng)實(shí)例的用戶空
間內(nèi),為在普通操作系統(tǒng)環(huán)境下執(zhí)行虛擬化任務(wù)和資源管理提供了方便。操作系統(tǒng)
管理程序模塊10允許用戶通過底層虛擬機(jī)監(jiān)視器(VMM) 3000給予的適當(dāng)認(rèn)證, 設(shè)置任務(wù)的優(yōu)先級(jí),在多個(gè)運(yùn)行期操作系統(tǒng)實(shí)例之間管理和分配物理資源(如I/O 和內(nèi)存),創(chuàng)造或銷毀操作系統(tǒng)的實(shí)例。對(duì)于新建一個(gè)操作系統(tǒng)實(shí)例,操作系統(tǒng)管 理程序中的一個(gè)關(guān)鍵功能是磁盤資源管理。磁盤資源管理包括用戶空間的操作系 統(tǒng)管理程序使用戶能夠創(chuàng)建新的虛擬磁盤分區(qū)來放置新的操作系統(tǒng)實(shí)例;格式化現(xiàn) 有分區(qū)的文件系統(tǒng);將虛擬分區(qū)分配給一個(gè)或多個(gè)操作系統(tǒng)實(shí)例。以這種方式,操 作系統(tǒng)管理程序使用戶能夠靈活地控制其存儲(chǔ)資源,這是建立操作系統(tǒng)虛擬機(jī)和多 個(gè)操作系統(tǒng)實(shí)例之間的數(shù)據(jù)共享的基礎(chǔ)(就像用戶在多個(gè)操作系統(tǒng)實(shí)例之間共享應(yīng) 用程序或數(shù)據(jù)時(shí)情況一樣)。
閃存虛擬操作系統(tǒng)驅(qū)動(dòng)程序(Flash VOS Driver)模塊20安裝于每個(gè)操作系 統(tǒng)實(shí)例的內(nèi)核(Kernel)中,由操作系統(tǒng)管理程序模塊10調(diào)用,與操作系統(tǒng)實(shí)例 進(jìn)行交互。閃存虛擬操作系統(tǒng)驅(qū)動(dòng)程序模塊20包括磁盤服務(wù)單元200和擴(kuò)展固件 接口 EFI單元202,其中磁盤服務(wù)單元200在虛擬機(jī)監(jiān)視器VMM 3000許可下格式 化和分配磁盤資源,而擴(kuò)展固件接口 EFI單元202與虛擬機(jī)監(jiān)視器VMM 3000進(jìn)行 通訊和請(qǐng)求V醒服務(wù),V醒服務(wù)包括分配物理資源、構(gòu)建或銷毀操作系統(tǒng)實(shí)例和修 改已有操作系統(tǒng)實(shí)例的狀態(tài)(比如掛起或者恢復(fù))。
擴(kuò)展固件接口模塊(Flash VOS EFI) 30安裝于固件EFI中,是在傳統(tǒng)的EFI 組件,例如傳統(tǒng)的啟動(dòng)服務(wù)(Boot Services)單元301、文件系統(tǒng)驅(qū)動(dòng)(File-system Drivers)單元302、控制臺(tái)服務(wù)(ConsoleServices)單元303、設(shè)備配置服務(wù)(Device Configure Services)單元304、遺留BIOS接口 (Legacy BIOS Interface)單元 305,旁邊的另一個(gè)模塊,負(fù)責(zé)運(yùn)行期的操作系統(tǒng)所發(fā)出的驗(yàn)證請(qǐng)求以及系統(tǒng)管理 的控制協(xié)議的實(shí)現(xiàn)。擴(kuò)展固件接口模塊30包括擴(kuò)展磁盤服務(wù)單元300和被保護(hù)變 量存儲(chǔ)區(qū)域(未圖示),擴(kuò)展磁盤服務(wù)單元300用于進(jìn)行動(dòng)態(tài)分區(qū)以及創(chuàng)建、刪除 虛擬機(jī),可進(jìn)行系統(tǒng)的虛擬化以及分區(qū)指引,內(nèi)含用于隔離各個(gè)操作系統(tǒng)實(shí)例的虛 擬機(jī)監(jiān)視器VMM 3000。被保護(hù)變量存儲(chǔ)區(qū)域用于存儲(chǔ)VMM中的可讀寫持久性數(shù)據(jù),
用于確定給當(dāng)前運(yùn)行的哪些操作系統(tǒng)實(shí)例分配什么資源,持久性數(shù)據(jù)存儲(chǔ)在被保護(hù) 變量存儲(chǔ)區(qū)域中可使其只能被擴(kuò)展固件接口模塊30訪問,避免元數(shù)據(jù)被惡意更改。
這個(gè)擴(kuò)展接口固件模塊30也包含一個(gè)啟動(dòng)時(shí)的操作系統(tǒng)管理器,允許用戶執(zhí)行和
用戶空間操作系統(tǒng)管理程序模塊10相同的功能,只是這個(gè)操作系統(tǒng)管理器在EFI 啟動(dòng)控制臺(tái)而已。啟動(dòng)時(shí)的操作系統(tǒng)管理器在系統(tǒng)沒有任何操作系統(tǒng)時(shí)通過配置一 個(gè)新的系統(tǒng)來設(shè)立操作系統(tǒng)環(huán)境。 一旦建立了至少一個(gè)操作系統(tǒng),用戶既可以使用 運(yùn)行期用戶空間操作系統(tǒng)管理程序模塊10,也可以使用啟動(dòng)時(shí)基于EFI的操作系 統(tǒng)管理器。
永久性存儲(chǔ)器40存儲(chǔ)只讀的虛擬機(jī)監(jiān)視器VMM程序數(shù)據(jù),以避免對(duì)V顧程序 數(shù)據(jù)的惡意更改。這個(gè)永久性存儲(chǔ)器40可以是外部即插即用存儲(chǔ)器,也可以是閃 存陣列存儲(chǔ)器。V顧程序數(shù)據(jù)存儲(chǔ)在這個(gè)永久性存儲(chǔ)器40中并使其只讀。
上述實(shí)施例是提供給本領(lǐng)域普通技術(shù)人員來實(shí)現(xiàn)或使用本發(fā)明的,本領(lǐng)域普 通技術(shù)人員可在不脫離本發(fā)明的發(fā)明思想的情況下,對(duì)上述實(shí)施例做出種種修改或 變化,因而本發(fā)明的保護(hù)范圍并不被上述實(shí)施例所限,而應(yīng)該是符合權(quán)利要求書提 到的創(chuàng)新性特征的最大范圍。
權(quán)利要求
1.一種基于固件的虛擬化平臺(tái)系統(tǒng),將虛擬機(jī)監(jiān)視器VMM中的持久性數(shù)據(jù)放置在一個(gè)永久性存儲(chǔ)器中,并利用該永久性存儲(chǔ)器的固件從操作系統(tǒng)啟動(dòng)時(shí)就隱藏該永久性存儲(chǔ)器,該虛擬化平臺(tái)系統(tǒng)包括操作系統(tǒng)管理程序模塊,安裝于每個(gè)操作系統(tǒng)實(shí)例的用戶空間內(nèi);閃存虛擬操作系統(tǒng)驅(qū)動(dòng)程序模塊,安裝于每個(gè)操作系統(tǒng)實(shí)例的內(nèi)核中,該模塊包括擴(kuò)展固件接口EFI單元,與該虛擬機(jī)監(jiān)視器VMM進(jìn)行通訊和請(qǐng)求VMM服務(wù);擴(kuò)展固件接口模塊,安裝于固件EFI中,負(fù)責(zé)運(yùn)行期的操作系統(tǒng)實(shí)例發(fā)出的驗(yàn)證請(qǐng)求以及系統(tǒng)管理的控制協(xié)議的實(shí)現(xiàn),該模塊進(jìn)一步包括擴(kuò)展磁盤服務(wù)單元,用于進(jìn)行動(dòng)態(tài)分區(qū)以及創(chuàng)建刪除虛擬機(jī),內(nèi)含用于隔離各個(gè)操作系統(tǒng)實(shí)例的虛擬機(jī)監(jiān)視器VMM;被保護(hù)變量存儲(chǔ)區(qū)域,用于存儲(chǔ)VMM中的可讀寫持久性數(shù)據(jù),以使持久性數(shù)據(jù)只能被該擴(kuò)展固件接口模塊訪問;永久性存儲(chǔ)器,存儲(chǔ)只讀的虛擬機(jī)監(jiān)視器VMM程序數(shù)據(jù),以避免對(duì)VMM程序數(shù)據(jù)的惡意更改。
2、 根據(jù)權(quán)利要求1所述的基于固件的虛擬化平臺(tái)系統(tǒng),其特征在于,該操作 系統(tǒng)管理程序模塊用于允許用戶通過該虛擬機(jī)監(jiān)視器VMM給予的認(rèn)證,設(shè)置任務(wù) 的優(yōu)先級(jí),在多個(gè)運(yùn)行期操作系統(tǒng)實(shí)例之間管理和分配物理資源,創(chuàng)造或銷毀操作 系統(tǒng)實(shí)例。
3、 根據(jù)權(quán)利要求l所述的基于固件的虛擬化平臺(tái)系統(tǒng),其特征在于,該閃存 虛擬操作系統(tǒng)驅(qū)動(dòng)程序模塊由該操作系統(tǒng)管理程序模塊調(diào)用,與操作系統(tǒng)實(shí)例進(jìn)行 交互,該模塊還包括磁盤服務(wù)單元,在該虛擬機(jī)監(jiān)視器VMM許可下格式后和分配磁盤資源。
4、 根據(jù)權(quán)利要求1所述的基于固件的虛擬化平臺(tái)系統(tǒng),其特征在于,該永久 性存儲(chǔ)器是外部即插即用存儲(chǔ)器。
5、 根據(jù)權(quán)利要求1所述的基于固件的虛擬化平臺(tái)系統(tǒng),其特征在于,該永久 性存儲(chǔ)器是閃存陣列存儲(chǔ)器。
全文摘要
本發(fā)明公開了一種基于固件的虛擬化平臺(tái)系統(tǒng),保護(hù)平臺(tái)的程序數(shù)據(jù)和持久性元數(shù)據(jù),防止本地操作系統(tǒng)的破壞。其技術(shù)方案為系統(tǒng)包括操作系統(tǒng)管理程序模塊;閃存虛擬操作系統(tǒng)驅(qū)動(dòng)程序模塊,該模塊包括擴(kuò)展固件接口EFI單元,與VMM通訊和請(qǐng)求VMM服務(wù);擴(kuò)展固件接口模塊,安裝于固件EFI中,負(fù)責(zé)運(yùn)行期操作系統(tǒng)實(shí)例發(fā)出的驗(yàn)證請(qǐng)求及系統(tǒng)管理的控制協(xié)議的實(shí)現(xiàn),包括擴(kuò)展磁盤服務(wù)單元,動(dòng)態(tài)分區(qū)及創(chuàng)建刪除虛擬機(jī),內(nèi)含用于隔離各個(gè)操作系統(tǒng)實(shí)例的VMM;被保護(hù)變量存儲(chǔ)區(qū)域,用于存儲(chǔ)VMM中的可讀寫持久性數(shù)據(jù),以使其只能被該擴(kuò)展固件接口模塊訪問;永久性存儲(chǔ)器,存儲(chǔ)只讀的VMM程序數(shù)據(jù),以避免對(duì)其惡意更改。本發(fā)明應(yīng)用于計(jì)算機(jī)領(lǐng)域。
文檔編號(hào)G06F9/455GK101373441SQ20081020012
公開日2009年2月25日 申請(qǐng)日期2008年9月19日 優(yōu)先權(quán)日2008年9月19日
發(fā)明者保羅·威爾曼, 林貽基, 英 胡, 舒曼·拉菲扎德 申請(qǐng)人:蘇州壹世通科技有限公司