嵌入式实时虚拟机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人。