OpenEuler新开源项目,引入嵌入式实时虚拟机ZVM实验室”)主任谢国奇教授主导虚拟化软件的设计和开发。该软件基于实时操作系统(RTOS)Zephyr开发,可以同时启动Linux和Zephyr两个GuestOS,实现同一个硬件平台上的混合内核部署,2023年2月,HudaEmbeddedLab正式将项目开源到openEuler社区。一、背景介绍Embedded实时虚拟化技术是一种允许多个操作系统在单个硬件平台上同时运行同时保持确定性和时间关键性能的技术。该技术可以为嵌入式系统开发带来很多好处,如硬件集成、系统隔离、系统灵活性和可靠性、安全性和可扩展性等。嵌入式实时虚拟化支持智能汽车、数控机床和5G设备等高级应用。开发嵌入式实时虚拟化软件面临多项挑战。第一个挑战是如何确保不同客户操作系统之间的隔离和安全,尤其是当它们具有不同级别的关键性和可信度时。第二个挑战是如何在不同的GuestOS之间有效地共享或分配I/O设备,这可能需要设备模拟或传递机制。第三个挑战是如何保证作为GuestOS运行的RTOS具有低延迟和高吞吐量。嵌入式实时虚拟化软件需要通过提供强制隔离和安全、高效的中断处理、灵活的I/O设备管理机制和硬件支持来应对这些挑战。基于架构的硬件虚拟化支持和虚拟化主机的扩展支持,虎大嵌入式实验室开发了基于ZephyrRTOS的虚拟化软件ZVM,实现了GuestOS之间的隔离、设备分配和中断处理,保证了系统的安全性和可靠性。即时的。2.技术路线ZVM的整体功能需要着重于三个部分:安全隔离、设备管理、系统性能提升。(1)安全隔离:利用虚拟化技术实现不同权限级别的应用支持,保证不同GuestOS之间的隔离和安全,尤其是当它们具有不同的关键级别时。为每个GuestOS分配不同的虚拟地址空间和虚拟设备,实现虚拟机之间的隔离,保证系统安全。(2)设备管理:使用支持设备模拟和透传机制的管理程序,在不同的GuestOS之间有效地共享或分配I/O设备。对于需要中断控制器独占使用的设备,采用全虚拟化方式分配,对于UART等非独占设备,采用device-through方式分配。(3)系统性能提升:在处理器方面,采用ARM64硬件辅助虚拟化扩展技术,降低上下文开销;在内存管理方面,使用基于硬件的两级地址转换地址转换性能开销;在中断方面,使用基于硬件的中断注入机制来减少上下文开销和中断延迟。3.系统架构ZVM的整体系统架构如下图所示。通过在ZephyrRTOS中加入虚拟化模块,实现CPU虚拟化、内存虚拟化、中断虚拟化、定时器虚拟化、I/O虚拟化。ZVM支持两种类型的GuestOS,即通用Linux操作系统和ZephyrRTOS。(1)CPU虚拟化。CPU虚拟化模块的主要功能是为GuestOS的每个vCPU虚拟出一个单独的隔离上下文。每个vCPU作为线程存在,由ZVM统一调度。为了提高vCPU的性能,ARM64架构为ZVM提供了VHE支持。VHE可以在不改变操作系统原有代码的情况下,将HostOS迁移到EL2特权模式。VHE主要实现了ARM寄存器重定向,可以在不修改ZephyrRTOS内核代码的情况下,迁移到EL2层开发ZVM,既减少了系统冗余,又提高了系统性能。(2)内存虚拟化。内存虚拟化模块的主要功能是实现GuestOS之间内存地址的隔离。系统需要隔离不同GuestOS的内存空间,监控GuestOS对实际物理内存的访问,以保护物理内存。为了实现这个功能,ARM64提供了两阶段的地址查找策略。第一阶段是GuestOS的虚拟地址到GuestOS物理地址的转换,第二阶段是GuestOS物理地址到HostOS物理地址的转换。ARM专门为第二阶段翻译提供单独的硬件,以提高地址翻译性能。(3)中断虚拟化模块。中断虚拟化使用ARM的通用中断控制器(GIC)设备,并基于它实现虚拟中断配置。GuestOS的中断统一路由到ZVM,然后ZVM分配给不同的vCPU。虚拟中断的注入是通过VirtualCPU接口或者GIC中的ListRegister实现的。(4)定时器虚拟化。定时器虚拟化为每个CPU定义了一组虚拟定时器寄存器,它们在预定时间后单独计数并抛出中断,由主机操作系统转发给客户操作系统。同时,在GuestOS的切换过程中,虚拟定时器会计算GuestOS的实际运行时间,补偿GuestOS退出的时间,为GuestOS提供定时器服务。(5)设备虚拟化。在设备虚拟化方面,ZVM利用ARM中的Memory-MappedI/O(MMIO)方法,将设备地址映射到虚拟内存地址,构建虚拟设备空间,实现GuestOS对设备地址的访问。在具体实现上,ZVM统一构建一个虚拟的MMIO设备,在GuestOS的创建过程中将该设备分配给指定的GuestOS,实现I/O虚拟化。另外,对于一些非独占的设备,ZVM通过devicepass-through实现设备访问。4、未来规划ZVM由Sig-Zephyr维护,计划2023年5月推出第一个支持最新ZephyrLTS的基础版本,7月实现openEulerEmbedded与ZVM的集成,并完善其他各种高级功能,如IO设备框架支持,虚拟机动态资源管理和实时支持等。项目地址:https://gitee.com/openeuler/zvm关于团队湖南大学嵌入式与网络计算湖南省重点实验室((以下简称“实验室”)长期从事嵌入式计算与系统研究,现任实验室主任为谢国奇教授,首席科学家为常万里教授。实验室秉承“以人为本、智慧、速度、计算”的宗旨,倡导敬业奉献的精神,努力营造学术自由的氛围,努力使实验室成为具有一定影响力和学术影响力的场所聚集和培养优秀人才的地位。实现“培养人才、创新知识、交流学术知识、服务社会”的目标。实验室结合产学研合作项目,拥有嵌入式实时虚拟化软件、车联网综合验证平台、汽车软件工具链等系列产品,聚焦世界前沿、顶尖科学。研究成果。据csrankings.org统计,2018-2022年,实验室在嵌入式和实时系统领域国际顶级学术会议上发表论文数位居全球第17位,国内第1位。实验室聚集了一批在国内有较大影响、在国际上具有一定影响力的学术带头人和一批年轻有活力的学术和技术骨干。实验室首席科学家常万里教授现为美国计算机协会(ACM)会员。系统专业委员会(SIGBED)秘书长。实验室现有固定研究人员36人,全部具有博士学位,其中教授16人,国家百千万人才计划获得者1人,国家青年拔尖计划获得者3人。
