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系列等,能够用于汽车BMS系统、汽车发动机管理系统等虚拟原型(即虚拟ECU)的搭建。
应用基于SkyEye的虚拟ECU,工程师可以:
- 无需关心真实线缆繁琐的连接关系,工程一次搭建,持续可复用;
- 具备真实CAN总线和INCA硬件的仿真能力,支持数量几乎无限制的仿真硬件;
- 支持符合AUTOSAR协议的OS及应用程序的运行;
- 集成原有标定上位机软件,外接Simulink模型模拟真实数据。
▲SkyEye汽车BMS系统仿真
除了通过虚拟化技术及数字孪生帮助快速构建所需ECU、有效缩短整车研发周期外,SkyEye还能帮助用户节省昂贵的硬件设备制造成本,无需对程序进行任何修改即可实现嵌入式软件的运行与调试,覆盖嵌入式软件开发全生命周期,真正实现嵌入式的"敏捷开发,降本增效"。