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