嵌入式實時虛擬機ZVM(Zephyr-based Virtual Machine)是由湖南大學嵌入式與網(wǎng)絡(luò)計算湖南省重點實驗室(以下簡稱“湖大嵌入式實驗室”)主任謝國琪教授主導設(shè)計并開發(fā)的虛擬化軟件。該軟件基于實時操作系統(tǒng)(RTOS)Zephyr開發(fā),可同時啟動Linux與Zephyr 2個Guest OS,從而在同一硬件平臺上實現(xiàn)混合內(nèi)核部署。
2023年2月,湖大嵌入式實驗室正式將該項目開源至openEuler社區(qū)。
1. 背景介紹
嵌入式實時虛擬化技術(shù)是一種允許在單個硬件平臺上同時運行多個操作系統(tǒng)、并保持確定性和時間關(guān)鍵性能的技術(shù),該技術(shù)可為嵌入式系統(tǒng)開發(fā)帶來許多好處,例如硬件整合、系統(tǒng)隔離、系統(tǒng)靈活可靠性、安全性和可擴展性等。嵌入式實時虛擬化可支持智能汽車、數(shù)控機床及5G設(shè)備等高級應(yīng)用。
開發(fā)嵌入式實時虛擬化軟件面臨著一些挑戰(zhàn)。第一個挑戰(zhàn)是如何確保不同Guest OS間的隔離和安全性,尤其是當它們具有不同級別的關(guān)鍵性和可信度時。第二個挑戰(zhàn)是如何在不同Guest OS間有效地共享或分配 I/O 設(shè)備,這可能需要設(shè)備模擬或直通機制。第三個挑戰(zhàn)是如何確保作為Guest OS運行的RTOS具備低延遲和高吞吐量。
嵌入式實時虛擬化軟件需要通過提供強制的隔離和安全、高效的中斷處理、靈活的 I/O 設(shè)備管理機制及硬件支持來應(yīng)對這些挑戰(zhàn)。基于架構(gòu)硬件虛擬化支持與虛擬化主機拓展支持,湖大嵌入式實驗室開發(fā)了基于Zephyr RTOS的虛擬化軟件ZVM,實現(xiàn)了Guest OS間的隔離、設(shè)備分配及中斷處理,保證了系統(tǒng)的安全與實時。
2. 技術(shù)路線
ZVM總體功能需要關(guān)注三個部分:安全隔離、設(shè)備管理和系統(tǒng)性能提升。
(1)安全隔離:利用虛擬化技術(shù)實現(xiàn)不同特權(quán)級的應(yīng)用支持,確保不同Guest OS間的隔離和安全,尤其是當它們具有不同級別的關(guān)鍵級時。為每個Guest OS分配不同的虛擬地址空間和虛擬設(shè)備,實現(xiàn)虛擬機間的隔離以保證系統(tǒng)安全。
(2)設(shè)備管理:使用支持設(shè)備模擬和直通機制的管理程序,在不同Guest OS之間有效共享或分配I/O設(shè)備。對于中斷控制器需獨占的設(shè)備,用完全虛擬化的方式進行分配,對于UART等非獨占的設(shè)備,使用設(shè)備直通的方式進行分配。
(3)系統(tǒng)性能提升:在處理器方面,使用支持ARM64硬件輔助虛擬化拓展技術(shù)來減少上下文開銷;在內(nèi)存管理方面,使用基于硬件的兩階段地址轉(zhuǎn)換地址轉(zhuǎn)換性能開銷;在中斷方面,使用基于硬件的中斷注入機制來減少上下文開銷和中斷時延。
3. 系統(tǒng)架構(gòu)
ZVM整體系統(tǒng)架構(gòu)如下圖所示,通過在Zephyr RTOS中加入虛擬化模塊,實現(xiàn)CPU虛擬化、內(nèi)存虛擬化、中斷虛擬化、定時器虛擬化和I/O虛擬化。ZVM支持兩種類型的Guest OS,即通用的Linux操作系統(tǒng)和Zephyr RTOS。
(1)CPU虛擬化。CPU虛擬化模塊的主要功能是為每個Guest OS的vCPU虛擬出一個單獨的隔離上下文。每個vCPU均作為一個線程存在,由ZVM統(tǒng)一調(diào)度。為了提高vCPU的性能,ARM64架構(gòu)為ZVM提供了VHE支持,VHE可以使Host OS遷移到EL2特權(quán)模式,而無需改變操作系統(tǒng)原有代碼。VHE主要實現(xiàn)了ARM寄存器重定向,可以在不修改Zephyr RTOS內(nèi)核代碼的情況下,將其遷移EL2層開發(fā)ZVM,既降低了系統(tǒng)冗余,又提高了系統(tǒng)性能。
(2)內(nèi)存虛擬化。內(nèi)存虛擬化模塊的主要作用是實現(xiàn)Guest OS間內(nèi)存地址的隔離。系統(tǒng)需要隔離不同Guest OS的內(nèi)存空間,監(jiān)控Guest OS對實際物理內(nèi)存的訪問,以保護物理內(nèi)存。為了實現(xiàn)該功能,ARM64提供了兩階段的地址查找策略。第一階段是從Guest OS的虛擬地址到Guest OS的物理地址轉(zhuǎn)換,第二階段是從Guest OS的物理地址到Host OS的物理地址轉(zhuǎn)化。ARM專門為第二階段轉(zhuǎn)換提供單獨的硬件,以提高地址翻譯性能。
(3)中斷虛擬化模塊。中斷虛擬化使用ARM的通用中斷控制器(GIC)設(shè)備,并基于該設(shè)備實現(xiàn)虛擬中斷配置。Guest OS的中斷統(tǒng)一路由到ZVM,然后ZVM會將它們分配給不同的vCPU。虛擬中斷的注入通過GIC中的Virtual CPU接口或List Register具體實現(xiàn)。
(4)定時器虛擬化。定時器虛擬化為每個CPU定義了一組虛擬定時器寄存器,它們在預定時間后單獨計數(shù)并拋出中斷,由Host OS轉(zhuǎn)發(fā)給Guest OS。同時,在Guest OS切換過程中,虛擬定時器會計算Guest OS的實際運行時間,并對Guest OS退出的時間進行補償,為Guest OS提供定時器服務(wù)。
(5)設(shè)備虛擬化。在設(shè)備虛擬化方面,ZVM采用ARM中的Memory-Mapped I/O (MMIO)方法將設(shè)備地址映射到虛擬內(nèi)存地址,構(gòu)建虛擬設(shè)備空間,實現(xiàn)Guest OS對設(shè)備地址的訪問。在具體實現(xiàn)上,ZVM統(tǒng)一構(gòu)建一個虛擬的MMIO設(shè)備,在Guest OS創(chuàng)建過程中將該設(shè)備分配給指定的Guest OS,實現(xiàn)I/O虛擬化。此外,對一些非獨占設(shè)備,ZVM使用設(shè)備直通的方式實現(xiàn)設(shè)備的訪問。
4. 未來規(guī)劃
ZVM由Sig-Zephyr進行維護,并計劃在2023年5月推出第一個支持Zephyr最新LTS的基礎(chǔ)版本,7月實現(xiàn)openEuler Embedded和ZVM整合,并將完善各項其它高級功能,如IO設(shè)備框架支持、虛擬機動態(tài)資源管理及實時性支持等。
項目地址:
https://gitee.com/openeuler/zvm
關(guān)于團隊
湖南大學嵌入式與網(wǎng)絡(luò)計算湖南省重點實驗室(以下簡稱“實驗室”)長期從事嵌入式計算與系統(tǒng)方面的研究,現(xiàn)任實驗室主任為謝國琪教授,首席科學家為常萬里教授。實驗室秉承“人本、智慧、速度、計算”之建室宗旨,倡導敬業(yè)與奉獻之精神,努力營造學術(shù)自由之氛圍,努力使本室成為有一定影響和學術(shù)地位的、凝聚和培養(yǎng)優(yōu)秀人才的研究實驗室,實現(xiàn)“培養(yǎng)人才、創(chuàng)新知識、交流學術(shù)、服務(wù)社會”的工作目標。
結(jié)合產(chǎn)學研合作項目,實驗室擁有嵌入式實時虛擬化軟件、車載網(wǎng)絡(luò)綜合驗證平臺、汽車軟件工具鏈等系列產(chǎn)品,并聚焦世界前沿與頂尖科研成果發(fā)表,按照csrankings.org統(tǒng)計,實驗室近5年(2018~2022)在嵌入式與實時系統(tǒng)領(lǐng)域國際頂級學術(shù)會議論文發(fā)表數(shù)世界排名第17、國內(nèi)排名第1。實驗室凝聚了多名在國內(nèi)有較大影響、國際上有一定影響的學術(shù)帶頭人和一批年輕有活力的學術(shù)和技術(shù)骨干,實驗室首席科學家常萬里教授現(xiàn)任國際計算機學會(ACM)嵌入式系統(tǒng)專業(yè)委員會(SIGBED)秘書長。實驗室現(xiàn)有固定研究人員36人,均具有博士學位,其中教授16人,國家級人才計劃獲得者1人,國家級青年人才計劃獲得者3人。
-
嵌入式
+關(guān)注
關(guān)注
5138文章
19521瀏覽量
314601 -
虛擬機
+關(guān)注
關(guān)注
1文章
962瀏覽量
29004 -
openEuler
+關(guān)注
關(guān)注
2文章
325瀏覽量
6238
原文標題:openEuler開源新項目,嵌入式實時虛擬機ZVM介紹
文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
gnuboy虛擬機怎么應(yīng)用到嵌入式環(huán)境中?
介紹VirtualBox虛擬機的構(gòu)建方法
如何創(chuàng)建虛擬機?
虛擬機通過USB網(wǎng)卡與嵌入式Linux開發(fā)板直連需求
介紹SSH軟件的安裝和ssh軟件在主機和虛擬機之間傳文件
基于嵌入式平臺的并發(fā)虛擬機研究
虛擬機的嵌入式開發(fā)
字符型嵌入式軟PLC虛擬機設(shè)計

嵌入式系統(tǒng)開發(fā)筆記1:構(gòu)建VirualBox虛擬機開發(fā)環(huán)境

嵌入式系統(tǒng)設(shè)計(九):虛擬機安裝常見錯誤匯總,保你順利安裝

嵌入式系統(tǒng)設(shè)計(二): 虛擬機和主機之間共享文件夾

openEuler Summit 2021-云/虛擬化分論壇:業(yè)內(nèi)解決方案+虛擬機系統(tǒng)模擬

嵌入式實時虛擬機ZVM介紹
基于Rust語言的高可靠、開源嵌入式Hypervisor

評論