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