王亮
(西藏民族大學 信息工程學院, 陜西 咸陽 712082)
?
ARM TrustZone的輕量級嵌入式虛擬化架構
王亮
(西藏民族大學 信息工程學院, 陜西 咸陽 712082)
針對現(xiàn)存的基于軟件的虛擬化解決方案存在的不足,利用ARM標準硬件技術和賽靈思ZC702商業(yè)平臺,實現(xiàn)通用操作系統(tǒng)(GPOS)與輕量級實時操作系統(tǒng)(FreeRTOS)同時運行.測試結果表明:虛擬機從RTOS到GPOS的上下文切換系統(tǒng)開銷是3.10 μs,相反過程為2.64 μs,內(nèi)存占用也僅為1 KB;由虛擬機監(jiān)視系統(tǒng)(VMM)引入的性能開銷低和內(nèi)存占用較小;利用ARM TrustZone技術可實現(xiàn)一個具有低成本和高可靠性的輕量級虛擬化解決方案.
嵌入式系統(tǒng); 虛擬化技術; 實時操作系統(tǒng); 處理器; 軟件模塊
虛擬化技術可以使得同一處理器并行執(zhí)行多個虛擬機(virtual machine,VM),并允許多個操作系統(tǒng)(operating system,OS)并存于同一硬件平臺[1].虛擬化技術多被用在企業(yè)和云計算空間,最大限度地提高資源的可用性[2].隨著新型嵌入式設備的大量涌現(xiàn),對系統(tǒng)技術要求也日益提高,系統(tǒng)不僅應具備通用計算能力和功能擴展能力,而且還要滿足對實時性和可靠性的技術要求.因此,嵌入式虛擬化技術應運而生.典型的嵌入式虛擬化解決方案[3-8]本質上遵循兩種不同的技術實現(xiàn)方式:全虛擬化和超虛擬化[9].對于全虛擬化,客戶操作系統(tǒng)不需要作任何的修改,管理程序或者虛擬機監(jiān)控程序(virtual machine monitor,VMM)需要作出捕捉指令,協(xié)調硬件執(zhí)行操作.因此,全虛擬化性能比使用裸機硬件慢.對于超虛擬化,管理程序實現(xiàn)了操作系統(tǒng)對底層硬件的共享訪問,并將虛擬化有關的代碼集中在操作系統(tǒng)本身,因此,可直接從管理程序請求服務.這種靜態(tài)方法,執(zhí)行性能明顯提高,但系統(tǒng)自定義修改難度較大,研發(fā)成本較高、研發(fā)周期較長和后期維護難度較大.目前,嵌入式領域關注重點為硬性限制,研究重點也集中在基于硬件的輔助虛擬化技術,開發(fā)具有高性能的嵌入式虛擬化解決方案[10-14].較成熟的嵌入式虛擬化案例是采用Intel,ARM,AMD等硬件廠商的虛擬化技術配合ARM TrustZone和Intel TxT(trusted execution technology)技術.本文提出一種基于Trust Zone的虛擬化架構實現(xiàn)方案,它允許通用操作系統(tǒng)(GPOS,Linux)與實時操作系統(tǒng)(RTOS,F(xiàn)reeRTOS)并行運行,并基于標準硬件搭建系統(tǒng)平臺,使得性能功耗和內(nèi)存占用比較小.
支持TrustZone技術的ARM處理器型號主要包括ARM1176,Cortex-A5/A7/A8/A9/A15及最新的64位Cortex-A53/A57.該技術基于硬件支持的安全性擴展,利用虛擬化技術,將一個物理核心虛擬成兩個虛擬內(nèi)核,并提供兩個完全獨立的執(zhí)行環(huán)境:安全可信任的安全環(huán)境和非安全的普通執(zhí)行環(huán)境.TrustZone通過啟用或禁用協(xié)處理器CP15的安全配置寄存器(secure configuration register,SCR)的NS位轉換處理器的執(zhí)行狀態(tài).當NS=0時,處于安全狀態(tài);當NS=1時,處于非安全狀態(tài).為實現(xiàn)處理器在安全狀態(tài)和非安全狀態(tài)的轉換,引入監(jiān)控模式.監(jiān)控模式被用來控制系統(tǒng)的安全狀態(tài)和數(shù)據(jù)的訪問權限,負責保存當前上下文狀態(tài).進入監(jiān)控模式,需要一種新的權限指令,即安全調用(secure monitor call,SMC).硬件層面,TrustZone技術從CPU內(nèi)核開始設置系統(tǒng)安全,以確保普通環(huán)境與安全環(huán)境之間的完全隔離.
Frenzel等[15]將TrustZone技術應用于嵌入式系統(tǒng)虛擬化,認為TrustZone技術能夠提供一個基于可信硬件專用的系統(tǒng)虛擬化架構,尤其針對具有兩個虛擬機的情況.由于虛擬機數(shù)量與處理器支持的獨立狀態(tài)完全對應,使得多媒體操作系統(tǒng)(如Linux,Android)可在非安全環(huán)境上運行,而安全關鍵軟件則在安全環(huán)境運行.同時,監(jiān)視模式可對處理器進行全面觀測,執(zhí)行VMM不再需要修改駐留在非安全環(huán)境的操作系統(tǒng).但是,盡管基于特權模式運行,GPOS仍不能直接訪問安全環(huán)境資源,其權限仍然要比VMM組件低.TrustZone技術使得系統(tǒng)開銷降低,并加快虛擬機之間的上下文切換.
2.1體系結構描述
圖1 嵌入式虛擬化架構Fig.1 Embedded virtualization architecture
基于TrustZone技術的嵌入式虛擬化架構,如圖1所示.圖1中:RTOS (FreeRTOS),GPOS(Linux)和VMM為3個主要的軟件.首先,GPOS運行于非安全的普通執(zhí)行環(huán)境,保證良好的人機交互界面及基于互聯(lián)網(wǎng)的應用和服務;其次,RTOS運行于安全的執(zhí)行環(huán)境,為系統(tǒng)軟件應用提供安全實時保證;最后,VMM組件以監(jiān)控模式運行于安全的執(zhí)行環(huán)境,負責管理每個虛擬機的虛擬機控制塊(virtual machine control block,VMCB).當虛擬機由物理處理器來執(zhí)行時,VMM在對應VMCB中保存虛擬處理器的當前狀態(tài),從VMCB中恢復與當前VM相應的處理器狀態(tài).
2.2執(zhí)行流程
圖2 執(zhí)行流程圖Fig.2 Execution flow chart
系統(tǒng)在安全環(huán)境下,由引導程序啟動,該程序主要負責初始化硬件設備,建立內(nèi)存空間的映射圖、為最終操作系統(tǒng)內(nèi)核的運行準備好系統(tǒng)的軟硬件環(huán)境.中斷控制器(generic interrupt controller,GIC)在安全環(huán)境下,調用快速中斷指令(fast interrupt requests,F(xiàn)IQ),在非安全環(huán)境下,調用普通中斷指令(interrupt requests,IRQ).執(zhí)行流程圖,如圖2所示.通過禁用SCR寄存器的FIQ和IRQ位,保證異常FIQ/IRQ不會造成監(jiān)視模式的切換,并使得VM切換僅調用SMC指令.引導程序執(zhí)行后,RTOS啟動,并開始調度系統(tǒng)程序.當實時任務被中斷或掛起,空閑任務執(zhí)行一個系統(tǒng)調用,用來喚醒VMM和執(zhí)行SMC指令.同時,處理器進入到監(jiān)視模式,并開始執(zhí)行VMM,跳轉至監(jiān)控模式向量表的特定處理程序.因此,為切換至非安全環(huán)境,處理器執(zhí)行SMC處理程序.
完成上述執(zhí)行流程后,系統(tǒng)進行上下文切換操作.實際上,安全環(huán)境的處理器狀態(tài)保存于相對應的VMCB中,從非安全環(huán)境的VMCB(Linux)中還原.但是,程序的首次執(zhí)行是個特例,出于最優(yōu)化的目的,只對安全環(huán)境的處理器狀態(tài)進行保存.設置特權模式(supervisor mode,SVC),并更新鏈接寄存器的GPOS內(nèi)核的啟動地址.然后,通過VMM調用FIQ指令,對SCR寄存器的NS位使能,并跳轉至非安全環(huán)境狀態(tài)的初始化或還原地址.值得注意的是,緩存中一直都沒有進行操作.TrustZone允許安全環(huán)境和一般環(huán)境的緩存條目共存,并支持在緩存控制器指定一個NS標記位關聯(lián)緩存中所有數(shù)據(jù).這種方法在虛擬機之間切換時不需對高速緩存進行刷新,并有助于加快上下文切換.
由圖2可知:在非安全環(huán)境,當FIQ得到觸發(fā)時, GPOS開始啟動運行.由于SCR寄存器的FIQ位已經(jīng)啟用,F(xiàn)IQ觸發(fā)使處理器進入監(jiān)控模式,跳轉至監(jiān)控模式向量表的FIQ處理程序.同時,VMM開始執(zhí)行,并準備上下文切換.首先,通過禁用SCR寄存器的FIQ和NS位,保存非安全環(huán)境的處理器狀態(tài)于相對應的VMCB中,確認FIQ請求,并從VMCB還原安全環(huán)境上下文.其次,處理器切換回RTOS內(nèi)核,調度任務再次啟動.處理器將一直運行于安全環(huán)境,直到空閑任務執(zhí)行新的系統(tǒng)調用,處理器重新執(zhí)行所有先前描述的執(zhí)行流程.
基于賽靈思(Xilinx)ZC702對虛擬化架構運行測試,搭載功能強大的雙核ARM Cortex-A9處理器,運行頻率為800 MHz,支持多核硬件架構,使用單個芯片即可構建高性能片上系統(tǒng).系統(tǒng)測試內(nèi)容主要包括系統(tǒng)性能和內(nèi)存占用,系統(tǒng)性能通過性能監(jiān)視單元(performance monitoring unit,PMU)獲得,內(nèi)存占用則是利用賽靈思工具鏈獲得.
為了評估由VMM執(zhí)行產(chǎn)生的系統(tǒng)開銷,進行兩次上下文切換操作.
1) 切換到非安全環(huán)境.從安全環(huán)境切換到非安全環(huán)境,VMM執(zhí)行上下文切換操作,將控制權交給操作系統(tǒng)Linux內(nèi)核.時鐘周期的計數(shù)是從安全環(huán)境下的SMC指令調用時刻至處理器訪問非安全環(huán)境的地址瞬間.
2) 切換到安全環(huán)境.從非安全環(huán)境切換到安全環(huán)境,VMM執(zhí)行上下文切換操作,將控制權交給FreeRTOS內(nèi)核.時鐘周期的計數(shù)是從非安全環(huán)境的FIQ異常的確切時刻至處理器在安全環(huán)境下運行的時刻.
每個試驗重復20次,測試結果包括最小值、最大值、平均值及測量值的標準偏差.就Cortex-A9處理器而言,盡管VMM在每次執(zhí)行的指令相同,但由于體系結構的動態(tài)特征,執(zhí)行指令的時鐘周期的次數(shù)是變化的.
VMM運行統(tǒng)計,如表1所示.表1中:tmin為最小值;tmax為最大值;μ為平均值;σ為測量值的標準偏差.由于所用處理器的時鐘頻率為800 MHz,結合測量的平均值進行計算,得到安全環(huán)境到非安全環(huán)境切換和非完全環(huán)境到安全環(huán)境切換的平均執(zhí)行時間分別為3.10,2.64 μs.考慮到FreeRTOS內(nèi)進行任務切換所需的時間為2.02 μs,虛擬機進行上下文切換平均時間僅超出53.4%和30.6%.當VMM運行時禁用所有中斷源,在安全環(huán)境到非安全環(huán)境上下文切換時,如果觸發(fā)FIQ請求,意味最差情況下中斷執(zhí)行時間為6.02 μs.
VMM內(nèi)存(n)統(tǒng)計,如表2所示.由表2可知:與RTOS相較而言,VMM的內(nèi)存占用相對較??;VMM所需的內(nèi)存分別約為FreeRTOS的1.30%和Linux的0.04%.
表1 VMM運行統(tǒng)計Tab.1 VMMoperatingstatistic轉換狀態(tài)tmin/stmax/sμσSwitchtoNSworld24312568247852.5SwitchtoSworld20812245210948.9表2 VMM內(nèi)存統(tǒng)計Tab.2 VMMmemorystatistic系統(tǒng)n(text)n(data)n(bss)n(Total)VMM84802441092FreeRTOS17646166600083690Linux28749785241202879150
嵌入式系統(tǒng)的最新發(fā)展方向之一就是虛擬化技術.基于TrustZone技術,利用ARM標準硬件技術,結合技術成熟的賽靈思ZC702商業(yè)平臺,實現(xiàn)了GPOS與FreeRTOS的系統(tǒng)同時運行.虛擬機從RTOS到GPOS的上下文切換系統(tǒng)開銷是3.10 μs,相反過程的為2.64 μs,內(nèi)存占用也僅為1 KB,證明由VMM引入的性能開銷低和內(nèi)存占用較小.當前系統(tǒng)架構具有優(yōu)越性,但就最優(yōu)而言,還有亟需解決的問題.下一步研究思路是基于現(xiàn)有結構下針對共享設備集成新的訪問機制,摒除每個外設專用于同一執(zhí)行環(huán)境的限制.研究虛擬機數(shù)目和系統(tǒng)架構支持的虛擬處理器數(shù)量之間的相關性,擴展虛擬化架構以滿足多用戶支持和多核心支持.基于服務客戶端技術,利用TrustZone API建立兩個操作系統(tǒng)之間的標準通信機制,使得可信任執(zhí)行環(huán)境與擴展VMM相關聯(lián),最終實現(xiàn)針對目標安全的完整框架.
[1]張國亮,王展妮,王田.應用計算機視覺的動態(tài)手勢識別綜述[J].華僑大學學報(自然科學版),2014,35(6):653-657.
[2]鐘必能,陳雁,沈映菊,等.在線機器學習跟蹤算法的研究進展[J].華僑大學學報(自然科學版),2014,35(1):41-45.
[3]HEISER G.The role of virtualization in embedded systems[C]∥Proceedings of the 1st Workshop on Isolation and Integration in Embedded Systems.New York:Association for Computing Machinery,2008:11-16.
[4]韋照川,李德明.嵌入式系統(tǒng)發(fā)展概述[J].科技信息,2010(1):839.
[5]MASMANO M,RIPOLL I,CRESPO A,et al.Xtratum: A hypervisor for safety critical embedded systems[C]∥Proceedings of the 11th Real Time Linux Workshop.Nanjing:Real Time Linux Workshop,2009:153-159.
[6]STEINBERG U,KAUER B.NOVA: A microhypervisor based secure virtualization architecture[C]∥Proceedings of the 5th European Conference on Computer Systems.Paris:EuroSys,2010:209-222.
[7]葉常春.嵌入式虛擬化技術[J].計算機工程與科學,2012,34(3):41-45.
[8]葉存奎.USB設備協(xié)議棧的設計與實現(xiàn)[D].武漢:華中科技大學,2011:1-60.
[9]周亦敏,隋偉鑫.ARM架構中TrustZone 安全處理技術的研究[J].微計算機信息,2009,24(36):69-71.
[10]VARANASI P,HEISER G.Hardware supported virtualization on ARM[C]∥Proceedings of the Second Asia Pacic Workshop on Systems.Tokyo:User Evaluation,2011:231-236.
[11]HERLIHY M,SHAVIT N.多處理器編程的藝術[M].金海,譯.北京:機械工業(yè)出版社,2009:218-220.
[12]林小茶,李光.基于嵌入式技術的信任根研究[J].計算機工程與應用,2007,43(16):165-168.
[13]任愛芝.基于ARM 的可信嵌入式系統(tǒng)設計[J].電腦編程技巧與維護,2011(20):24-25.
[14]ALVES T,FELTON D.TrustZone: Integrated hardware and software security[J].ARM White Paper,2004,3(4):18-24.
[15]FRENZEL T,LACLPRZUMSLI A,WARG A,et al.ARM TrustZone as a virtualization technique in embedded systems[J].Twelfth Real Time Linux Workshop,2010(6):76-79.
(責任編輯: 陳志賢英文審校: 吳逢鐵)
Towards Lightweight Embedded Virtualization Architecture Exploiting ARM TrustZone
WANG Liang
(School of Information Engineering, Xizang Minzu University, Xianyang 712082, China)
According to the existing solution scheme of software based virtualization, the arm standard hardware technology, combined with the mature technology of Xilinx ZC702 business platform, the general-purpose operating system (GPOS) and real-time operating system (FreeRTOS) system running at the same time are realized. Test data shows that the virtual machine from the RTOS to GPOS system context switching overhead is 3.10 μs, opposite is 2.64 μs, memory is only 1 KB; the performance overhead introduced by the virtual machine monitor (VMM) is low and with a smaller memory footprint; ARM TrustZone technology is exploited to implement a lightweight virtualization solution with low overhead and high determinism.
embedded systems; virtualization; real-time operating system; processor; software module
10.11830/ISSN.1000-5013.201605023
2016-06-20
王亮(1968-),男,副教授,博士,主要從事計算機網(wǎng)絡工程的研究.E-mail:wzjwlwl@163.com.
西藏科技廳科研項目(2015ZR-14-20)
TP 311.52
A
1000-5013(2016)05-0641-04