“软件定义汽车”下的软件虚拟化技术
01.虚拟化技术概述
近年来,随着嵌入式软硬件的高速发展,嵌入式系统产品已融入日常生活的方方面面,在航空航天、车载电子、工业控制等要求更为严苛等领域的应用也更加广泛。特别对汽车领域,每辆车内 ECU 的使用数量已从 21 世纪初的 30-50 个飙升至上百个,其复杂程度也呈指数级上升,给汽车嵌入式软件的开发与测试带来极大挑战。引入虚拟化技术来应对复杂硬件所带来的挑战,成为了历史长河发展的必然。
虚拟化本质是提供一个虚拟的操作系统执行环境,让复杂多样的嵌入式程序(包括操作系统)能够并行运行在同一物理硬件环境上。自上世纪六十年代以来,虚拟化技术已形成一套合理且受业界认可的理论体系:运行在真实物理环境上的称为宿主机(host OS,Operating System),通过虚拟化技术实现的全系统运行环境称为虚拟机(Virtual Machine,VM),在虚拟环境中执行的操作系统称为客户操作系统(Guest OS)。
世界上第一位计算机博士 David Wheeler 说过,“计算机科学中的任何问题都可以通过增加一个中间层来解决”,因此虚拟化技术在硬件和客户操作系统软件之间引入了一个新层级,称之为 Hypervisor 或 VMM(Virtual Machine Monitor),这一层级就可以简单理解为软件虚拟化技术。
02.如何理解 Hypervisor
可以进行如此理解:一台电脑的硬件就好比一栋高层大楼,电脑中的诸多虚拟机就可看做大楼中的多套房屋。每个房屋都有各自的卧室(CPU)、储藏室(内存)和私人网线(网络资源),享受着独门独户的私密空间和生活设施。
但实际上,大楼的电梯、供水系统、电网是所有房屋共用的。也就是说,虽然每个房屋看似拥有专属资源,但其背后依赖的是全楼共享的基础设施。这些资源是由物理主机(大楼)统一提供并智能分配的,每个虚拟机只在需要时,按需使用共享资源的一部分。
Hypervisor 就像这栋大楼的物业管理员,在幕后精心安排以确保每个虚拟机(房屋)既能安全、高效的享用所需资源,又不会互相干扰,就像住在独立的房屋中一样。
03.Hypervisor 分类
在虚拟化技术的发展历程中,由于特点、用途、功能不同,出现了多个种类的虚拟化类型。大体上可以根据 host OS 的有无,或者 Hypervisor 是否直接运行在硬件上,将其分为 Type-1 型和 Type-2 型。
3.1 Type-1 型 Hypervisor
Type-1 型也被称为裸机型 Hypervisor,如下图所示,没有宿主操作系统,而是直接运行底层硬件之上,直接管理 CPU、内存等真实资源的同时,向上层提供客户操作系统的抽象执行环境,常见的有 VMware ESXi、Microsoft Hyper-V、Xen。
▲Type-1 型 Hypervisor
由于需要一定程度上融合操作系统的功能,Type-1 型也被分为微内核架构和宏内核架构,刚才介绍的前两种属于宏内核 Hypervisor 产品,而 Xen 就是典型的微内核产品。
虽然 Hypervisor 能够为虚拟机提供更接近物理机的性能,但也存在显著的缺点与局限性:
1. 复杂性和部署难度:由于直接安装在物理硬件上,其安装与配置通常更为复杂,需要特定的管理工具来配置和管理虚拟机,这些工具可能需要额外的培训与学习成本。复杂装备中,高昂的硬件成本也会对后续测试与验证带来挑战。
2. 硬件兼容性:直接运行在硬件上导致 Type-1 型的硬件依赖性较强,如果硬件不支持或兼容性较差,就可能导致系统不稳定或性能下降。
3. 灵活性较低:无法轻松与现有的桌面操作系统集成,每次调整配置或测试新环境都需要直接在硬件上操作,系统更新与补丁管理也需要精心规划以减少对生产环境的影响。
3.2 Type-2 型 Hypervisor
Type-2 型 Hypervisor 安装在操作系统上,依赖于基础操作系统提供服务,其寄生的宿主操作系统拥有对硬件平台和资源的全部控制权,包括 CPU 与物理内存。如下图所示,Hypervisor 包含在 Host OS 中,并不直接与硬件交互:
▲Type-2 型 Hypervisor
此类 Hypervisor 可以使用宿主机的各种功能模块,如宿主机自身的调度模块等,充分利用宿主操作系统对物理硬件的管理功能,只需提供对客户操作系统的管理即可。这意味着,宿主操作系统首先启动并管理硬件资源,而后 Hypervisor 在宿主系统内部运行,并进一步创建和管理虚拟机。最具代表性的 Type-2 型硬件虚拟化产品为 KVM(Kernel-based Virtual Machine),软件虚拟化产品则为 SkyEye(详见下文)。
尽管可能在资源效率方面有所欠缺,但 Type-2 型相较 Type-1 型有着易用性和兼容性方面的巨大优势:
1. 易于部署和管理:直接安装在操作系统上,不需要额外的硬件配置或引导管理,能与更多种类的硬件兼容。
2. 使用体验与测试友好:Type-2 型能直接在桌面操作系统中使用,通常带有图形用户界面(Graphical User Interface,GUI),用户可以更方便地创建、管理和操作虚拟机。
04.利用虚拟化技术模拟汽车嵌入式系统
对汽车领域而言,虚拟化技术的模拟可分为硬件虚拟化和软件虚拟化。硬件虚拟化由于需要使用和嵌入式系统 CPU 相同架构的平台,在采购成本上较为受限,仅能模拟同源架构,在外设虚拟化上的支持也较为逊色。
软件虚拟化则较好解决了上述问题,通过将汽车嵌入式系统硬件环境进行虚拟仿真实现更高的灵活性,资源分配也更为灵活,工程师可不受物理硬件的限制,随时访问目标系统,快速搭建虚拟硬件原型,提前进行开发、测试及验证工作。
05.应用案例
天目全数字实时仿真软件 SkyEye,属于 Hypervisor Type-2 型的软件虚拟化工具,是符合“软件定义汽车”的工具软件。
作为一款国产自主的基于可视化建模的硬件行为级仿真平台,SkyEye 目前已支持涵盖汽车 ECU 所用到的大部分处理器架构,如 PowerPC、Tricore 系列等(点击查看 SkyEye 目前支持的处理器列表),能够用于汽车 BMS 系统、汽车发动机管理系统等虚拟原型(即虚拟 ECU)的搭建。
应用基于 SkyEye 的虚拟 ECU,工程师可以:
无需关心真实线缆繁琐的连接关系,工程一次搭建,持续可复用;
具备真实 CAN 总线和 INCA 硬件的仿真能力,支持数量几乎无限制的仿真硬件;
支持符合 AUTOSAR 协议的 OS 及应用程序的运行;
集成原有标定上位机软件,外接 Simulink 模型模拟真实数据。
▲SkyEye 汽车 BMS 系统仿真
除了通过虚拟化技术及数字孪生帮助快速构建所需 ECU、有效缩短整车研发周期外,SkyEye 还能帮助用户节省昂贵的硬件设备制造成本,无需对程序进行任何修改即可实现嵌入式软件的运行与调试,覆盖嵌入式软件开发全生命周期,真正实现嵌入式的“敏捷开发,降本增效”。
版权声明: 本文为 InfoQ 作者【DevOps和数字孪生】的原创文章。
原文链接:【http://xie.infoq.cn/article/cf19d40629541d0ca308d6f35】。文章转载请联系作者。
评论