利用微內核架構的嵌入式系統虛擬化技術(shù)
在計算領(lǐng)域,虛擬化是一個(gè)廣義的術(shù)語(yǔ),通常是指對于計算資源的一種抽象。通過(guò)虛擬化,可使計算資源復雜的實(shí)際物理特性對于應用程序或終端用戶(hù)加以隱藏[1]。這種過(guò)程既可以讓單一的物理資源(如一臺服務(wù)器,一個(gè)存儲設備或一個(gè)操作系統)表現為多個(gè)可用的虛擬資源,也可以讓多個(gè)物理資源(如多臺服務(wù)器或多個(gè)存儲設備)表現為單一的可用虛擬資源[2],甚至可以將多個(gè)物理資源加以整合并分化出多個(gè)可用的虛擬資源。
VMware Workstation[3]是一款傳統的基于主機操作系統架構的虛擬機,并將虛擬機管理器運行于高特權級以使用特權級指令。這類(lèi)虛擬機一般是針對特定的平臺架構設計的,可以使同一平臺架構下的各種操作系統如同應用程序那樣高效地運行在同一主機操作系統之上。但是,這種應用模型也有一個(gè)非常嚴重的缺陷——主機操作系統,作為一切的基礎,會(huì )占用一定的系統資源并大大增加系統達到可信計算所需要驗證的代碼量。
由于像英特爾這樣的硬件制造商開(kāi)發(fā)出了新一代的硬件虛擬化技術(shù),如今像Xen[4]這樣的虛擬機管理層已經(jīng)可以以極小的虛擬化開(kāi)銷(xiāo)支持未經(jīng)修改的操作系統的高效運行?;诠芾韺蛹軜嫷奶摂M機所面臨的問(wèn)題是管理層所提供的抽象往往過(guò)于粗粒度以至于很難對細小的軟件組件進(jìn)行有效地描述。而對于運行在特權級的虛擬機管理邏輯部分——超級虛擬機(Super VM)也是這樣。它往往運行在一個(gè)商業(yè)操作系統軟件之上以提供對各虛擬機的管理服務(wù)。而一旦發(fā)生錯誤,則將很有可能因此波及到別的虛擬機[5]。
擁有微內核架構的操作系統被設計用以構成一個(gè)可自由裁減的系統并且易于保證其可信計算基礎,系統所定義的操作系統和用戶(hù)態(tài)應用程序之間的接口與硬件平臺的接口很相近,這樣既保證了操作系統的功能性,又避免了操作系統的代碼過(guò)于冗長(cháng),十分適合用以構建一個(gè)良好的虛擬機環(huán)境。有些人使用像L4Linux[6]這樣經(jīng)過(guò)修改的客戶(hù)操作系統使其運行在高效的微內核之上。但是此類(lèi)修改很難被應用到所有的商業(yè)操作系統上致使其應用范圍受到嚴格的限制。
據此,一種頗為可行的方法是有效地利用微內核操作系統的特點(diǎn),將基于主機操作系統架構的虛擬化和基于管理層的虛擬化融合到一起,結合特權指令部分和一個(gè)用戶(hù)態(tài)虛擬機管理器來(lái)克服彼此的缺陷。如此,加之利用像L4這樣高性能的微內核操作系統,我們可以最終獲得在效率,功能性和安全性三方面取得均衡的虛擬機環(huán)境。
本架構(圖2)設計中,我們將主要針對特定的平臺架構(即英特爾x86架構),以L(fǎng)4微內核系統作為基礎,利用硬件虛擬化技術(shù)的支持以構建高效、安全的虛擬機。
圖2 基于微內核架構的虛擬機的系統結構
不同于一般的虛擬機,我們將系統劃分為兩個(gè)部分:一個(gè)必要的擁有特權指令權限的內核態(tài)虛擬機描述部分以運行指令和請求資源,和一個(gè)用戶(hù)態(tài)的虛擬機資源控制單元以處理各類(lèi)事件并實(shí)現管理。
內核態(tài)虛擬機的抽象將主要要通過(guò)兩方面完成:一,以L(fǎng)4任務(wù)機制為基礎,利用其地址空間的控制功能以提供必要的隔離性。二,對線(xiàn)程機制進(jìn)行增強,形成特殊的虛擬CPU線(xiàn)程,用以模擬每個(gè)處理器。
除此之外,構建虛擬機還需要完善內存頁(yè)表的訪(fǎng)問(wèn),中斷的處理以及文件系統。這些則需要通過(guò)內核態(tài)的虛擬機描述部分與用戶(hù)態(tài)的虛擬機管理器協(xié)同完成。同時(shí)還需要利用用戶(hù)態(tài)虛擬機管理器建立一系列的管理和調試接口。
基于微內核的虛擬機環(huán)境具有高可靠性,高靈活性以及實(shí)時(shí)性支持等特點(diǎn),而隨著(zhù)虛擬化技術(shù)的不斷發(fā)展,以及新體系架構的引入,嵌入式系統虛擬化的性能障礙也正被逐漸克服,使之可以在嵌入式系統中有著(zhù)以下廣泛的應用前景:
·隨著(zhù)智能手機,移動(dòng)互聯(lián)網(wǎng)終端(MID)等一系列概念的推出與發(fā)展,嵌入式系統正逐漸超越個(gè)人計算機成為主流的個(gè)人信息交互終端,隨之而來(lái)的則是對嵌入式系統的信息安全性能所提出的挑戰。通過(guò)虛擬化,我們可以支持多個(gè)相互隔離的操作系統在嵌入式平臺上的同時(shí)運行,把如電子商務(wù)等安全性要求較高的應用封裝在一個(gè)高度隔離的客戶(hù)操作系統當中,并開(kāi)放另一個(gè)操作系統做為普通應用程序的運行環(huán)境,實(shí)現高度安全可靠的運行模式。
·通過(guò)使用基于微內核架構的虛擬機,我們可以把嵌入式系統的硬件資源轉化為各個(gè)不同的實(shí)時(shí)系統服務(wù)向上以虛擬設備的方式提供給虛擬機上運行的客戶(hù)操作系統。借由這種方式,可以同時(shí)支持豐富的非實(shí)時(shí)和實(shí)時(shí)應用程序的同時(shí)運行并為非實(shí)時(shí)的應用程序與實(shí)時(shí)的系統功能之間提供一個(gè)良好而透明的交互接口。
圖3 基于虛擬化的信息安全模型
·通過(guò)使用虛擬機,我們可以在嵌入式平臺上得到一個(gè)兼容性較高的軟件運行環(huán)境,最大程度地使嵌入式系統在硬件上的特異性通過(guò)軟件虛擬的方式變得透明化,進(jìn)一步使不同的嵌入式系統平臺之間以及嵌入式平臺和個(gè)人計算機之間能夠實(shí)現軟件運行的兼容。并且通過(guò)虛擬化,我們還能實(shí)現諸如不同平臺之間的程序遷移,分布式運行,故障恢復等復雜的功能。
·通過(guò)引入網(wǎng)絡(luò )互聯(lián)和遠程訪(fǎng)問(wèn)機制,把各種遠程的計算資源和設備資源借助虛擬化、本地化,實(shí)現操作系統對于遠程資源的透明訪(fǎng)問(wèn),大幅擴展嵌入式系統的系統功能,使未來(lái)的嵌入式系統做為信息終端更加適應云到端——數據中心到信息終端的發(fā)展模式。
結語(yǔ)
本文總結了虛擬化技術(shù)近期的發(fā)展和所取得的成果,分析了當前主流的虛擬機架構。筆者認為基于主機系統和虛擬機監視器的全虛擬化架構過(guò)于依賴(lài)宿主系統的系統服務(wù),導致基礎代碼的大量增加,大大降低了系統的可靠性,并且很大程度上受限于主機系統的系統架構。另一方面,基于虛擬管理層的半虛擬化架構則缺乏穩健的系統構成,僅對虛擬機提供了大粒度的抽象,無(wú)法構建短小而精悍的系統。在此基礎上,我們提出一種新的虛擬機環(huán)境,將兩者的優(yōu)點(diǎn)有機的結合起來(lái),整個(gè)虛擬機環(huán)境將被分成兩部分:為環(huán)境提供可靠性,安全性以及隔離度的虛擬機抽象;和提供資源管理和功能實(shí)現的用戶(hù)態(tài)虛擬機管理程序。而這樣的架構不僅具有高可靠性和靈活性,而且由于其占用資源少并能提供實(shí)時(shí)性支持等特點(diǎn)在嵌入式系統領(lǐng)域擁有廣泛的應用前景。
評論