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

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

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

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

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

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

評論