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