这是一个分为两个部分的故事-有关新一轮的汽车开发。 首先,
EPAM汽车和嵌入式系统CTO Alex Agizim谈到了车载计算机的虚拟化。 以及开源XEN虚拟机管理程序如何以及为什么可以成为汽车行业商业解决方案的完全竞争对手。

我必须立即警告您-我不会将代码和工程细节丢给读者。 在这里,我们将讨论我们认为将在未来2-4年改变汽车行业的全球性事物。 就像12年前一样,随着Android和Apple iOS的出现,手机已经发生了永远的变化。
在EPAM Automotive,我们专注于两个大块:虚拟化和用于直接向汽车部署服务的云平台。 这个故事是关于第一个的。
两种方法
如果遵循汽车主题,您可能会注意到Google通过其Android Auto OS积极开发了信息娱乐主题。 自去年年底以来,该公司已与汽车制造商建立了数项战略合作伙伴关系,以将Android Auto OS集成到汽车中。
但是制造商仍然有担忧。 主要原因是安全。 在现代和未来的汽车中,包含“重要”设备和指示器的信息娱乐系统和仪器仪表集群成为一体并使用相同的资源。 物理箭头和指示符已被绘画对象所取代。 但是,无论如何,驾驶员都应该看到真实的速度读数,燃油水平,制动系统状况,发动机。 如果屏幕突然冻结并需要重新启动,那么这是不可接受的。 根据Android智能手机的经验,我们知道这是完全可能的。
汽车制造商直接解决了这个问题:他们安装了
两台或更多台计算机。 例如,第一个用于渲染和维护整个仪表板。 在第二个中,Android Auto OS运行并显示导航,音乐,应用程序等。
此选项有几个缺点。 首先,几台计算机仍然比一台昂贵。 其次,实现很复杂:您需要确保Android部分与基础集群之间的信息交换,一致性和许多其他方面。
另一个选择是按照Cloud的示例,通过管理程序
使用虚拟化 。 汽车计算机中现代微处理器的功能已经足够了。 至少有两个屏幕连接到计算机。 Android的一种是信息娱乐。 另一个用于仪表板维护。 两个操作系统在隔离的虚拟机中运行。 即使Android感到“疲倦”并崩溃,也仅会重新启动运行该虚拟机的虚拟机。
通过这种整合,我们可以在一台计算机上工作,并使集成变得更加容易。 但是这里有细微差别。
汽车管理程序
在数据中心中,管理程序仅处理在不同虚拟机之间对处理器,内存和存储进行切片的情况。 他还确保“虚拟女孩”不要爬进彼此的空间。 而且,它们都具有从服务器平台接收的相同服务集。
在汽车计算机中,除了CPU,RAM和存储器外,还有用于特定任务的不同协处理器。 例如,Android和仪表板需要相同的GPU。 这意味着管理程序的任务是为两个操作系统提供使用协处理器的机会。 此外,请确保Android不会将协处理器插入某些非法命令或软件错误。
这是一项功能安全要求-仪表板应该在不考虑任何Android舞蹈的情况下正常工作。 因此,虚拟机监控程序必须足够先进,并具有确保完全隔离的特殊机制。
现代处理器已经提供了硬件隔离。 我们负责软件部分。 也就是说,我们正在修改
开放源代码XEN Hypervisor ,使其能够在汽车中工作,同时考虑到环境的所有细微差别。 在其中,我们提供了以下块。
1.完全隔离运行信息娱乐和仪表板的虚拟机

首先,计算机具有许多外围设备,按钮,触摸屏网络等。一组驱动程序已经支持外围设备的虚拟化。

其次,我们虚拟化GPU和协处理器。 如果其中一个虚拟机对系统中的任何协处理器执行某项操作,则不会影响另一个虚拟机的操作。

第三,实施TEE支持虚拟化-受信任的执行环境。 这是处理器中受硬件保护的特殊区域,用于执行各种安全程序。 但是,由于存在多个操作系统,因此它们对TEE的请求也有所划分。

您可以在下面看到组件的状态以及是否有兴趣查看代码

2.营养和表现
任何操作系统都可以管理电源和性能,并且可以根据当前任务和负载使计算机进入低功耗模式。 Android Car可能也想做同样的事情:如果没有当前任务,它将决定使处理器进入省电模式。 但是处理设备的操作系统应该继续工作。 我们通过管理程序的特殊扩展来解决此冲突。 它监视整个系统的状态并管理电源和性能。
下一个时刻是实时的。 系统应按保证的时间表工作。 我们也在XEN Real-Time Scheduler中进行此操作。
3.功能安全
倒数第二个,但对未来汽车行业的重要性至关重要。 今天的汽车制造商意识到,虚拟化方法将帮助他们真正创建更加灵活和强大的数字座舱服务系统。 这需要汽车级虚拟机管理程序。
市场上有3-4种商用汽车级虚拟机管理程序解决方案。 但是所有商业产品都有缺点:
- 许可证费用高;
- 缺乏根据您的需求轻松更改软件中任何内容的能力
- 制造商为此违反了支票和期限;
- 供应商锁。
开源管理程序消除了所有这些问题。 最初免费。 可以访问源,可以进行任何更改。 为此,您可以组织您的团队或联系服务公司。 完全自由,因为当您更换供应商时,源代码仍保留在制造商手中。
还剩下什么来决定
最后一个但也是关键的障碍仍然是开源。 开放式汽车管理程序必须符合功能安全要求。 直到最近,每个人都认为这不可能。 现在有转变。
最近,我们一直在与XEN Hypervisor开源社区积极合作。 面临的挑战是调整开发流程,以使XEN可以通过安全性认证。
3月底,在剑桥举行了一次峰会,所有感兴趣的人都聚集在那里。 首先,所有开发XEN的主要公司:Citrix,ARM,Xilinx,Renesas,EPAM。 第二,从事认证的公司;第三,提供自动系统分析和问题区域识别工具的公司。
峰会的结果是,我们制定了一项计划,根据该计划,绝对有可能使开源虚拟机监控程序功能安全合规。 到今年年底,我们计划获取一组特定的必要工件,以便在XEN集成到汽车计算机中时,可以对其进行安全性认证。
XEN成为汽车行业商业解决方案的正式竞争对手,并消除了他们关于缺乏安全认证的最后争论。
从7月中旬开始,
Xen开发者峰会通过。 功能安全是主要主题之一。 我们介绍了
功能安全解决方案的方法 (通过PDF链接)。
为什么选择Xen
这个问题可能从一开始就产生了。
XEN项目自2003年成立以来,与其他开放源代码解决方案相比,它在数据中心的部署非常广泛。 他已经很成熟了。 自2012年以来,XEN对ARM体系结构提供了本机支持。 这种特定架构的处理器主要用于汽车行业。
此外,我们做了很多工作,分析了各种解决方案,并取得了非常好的性能指标。 例如,如果在没有虚拟化的处理器上运行的操作系统的性能等于X,则在虚拟机上的性能为0.96-0.97X。 在商业虚拟机管理程序中,性能下降可以达到30%。 差异是一个令人信服的数量级。
因此,XEN在我们看来似乎是一个合适的基本解决方案。 因此,EPAM正在推动该项目。 已经有多家欧洲汽车制造商正在评估基于XEN的解决方案,以解决带有数字驾驶舱,内置Android和我上面提到的其他功能的未来汽车。
与这个伟大的故事并行的是,我们正在开发自己的联网汽车平台Aos。 其主要思想是,一方面,我们为连接的服务开发人员提供了将其直接部署到车载计算机的机会,另一方面,我们将其与关键功能隔离开来,从而确保了安全性。 我将在下一部分中讨论这一点。