openEuler开源新项目,嵌入式实时虚拟机ZVM介绍

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

小度助力传统行业智能化转型,从家庭走向酒店
强攻绿色能源商机 明导首款工业电源测试仪亮相
传感器在焊缝跟踪中的作用
数据中台具体是怎么解决数据孤岛的?
联发科旗下达发科技 未来聚焦四大重点领域
openEuler开源新项目,嵌入式实时虚拟机ZVM介绍
魅族PRO7、魅族MX7什么时候上市最新消息:抛弃万年联发科,搭载三星exynos芯片,你买不买?
可用于低功耗设计的技术方法
罗斯蒙特5401AH1NA4RPVBRC1雷达液位计
广东深圳智慧园区系统建设地产园区管理平台
光的C波段L波段及DWDM波长换算
超算芯片霸主之争,终于有了新变数
全高清电视能效规范
模拟接口与数字接口的区别是什么
2015款奔驰B200车发动机故障灯异常点亮
大疆发布智能机器人玩具 寓教于乐可玩性高
5G CPE高性能四核处理器高速Wi-Fi6技术 保障网络覆盖无忧
IDC发布最新版全球大数据市场规模预测,中国持续稳定增长
要做大NB-IoT还缺点什么火候
新款小鹏 P7 申报图公布 加装激光雷达