2023年7月5日-7日,由中国汽车工业协会主办的第13届中国汽车论坛在上海嘉定举办。本届论坛以“新时代 新使命 新动能——助力建设现代化产业体系”为主题,设置“1场闭门峰会+1个大会论坛+16个主题论坛+N场发布”共18场会议及若干发布、展示、推广等活动,旨在凝聚各方力量,形成发展共识,为建设现代化产业体系贡献汽车行业的智慧和力量。其中,在7月7日下午举办的“主题论坛十三:聚能共创,加速构建软件定义汽车新生态”上,普华基础软件副总经理兼战略研究院院长张晓先发表精彩演讲。以下内容为现场演讲实录:
今天,我给大家汇报的主题是《聚能共创,新一代车用操作系统的开源探索》。今年2月份和5月份,我们都发起了“关于响应中汽协会开源车用操作系统倡议”的微内核开源行动。
所以我今天主要从这方面给大家做一个汇报。众所周知,国家领导一直在关注我们的核心技术和关键技术,尤其是操作系统,各位领导对此都有一些指示,从大方向来说,它背后是有逻辑的,为什么操作系统那么重要呢?
首先,我认为是由于操作系统对于我们国家信息安全的重要性。无论在信息系统当中,还是在汽车上,还是在其他的工业设备上,操作系统都是信息安全的一个底线和保障。其次,特别是在汽车行业,操作系统和我们的芯片共同组成了对汽车供应链安全的保障。所以从这样两个底层逻辑来说,车用操作系统自主可控事关我国汽车制造业高质量发展的成败。
普华基础软件专注于车用操作系统的自主研发及产业化15年,我们创造了很多第一。2010年发布了国内首个车用基础软件平台,2014年该产品应用于国内某款车型,成为国内第一个应用于自主品牌汽车并实现量产的国产车控操作系统。
之后我们也获得了一系列的国际认证,包括质量流程体系方面、功能安全方面、以及软件成熟度认证等,这些都为我们普华基础软件在车控操作系统方面的发展奠定了基础,是15年来我们所做的贡献。普华基础软件是中国电科旗下专注于国产基础软件研发的公司,我们的使命是:服务国家战略、创造用户价值、坚持自主创新。一直以来,我们积极参与软件开源,并做出了很大贡献。比如说,我们是欧拉社区首批理事单位、龙蜥社区、开放麒麟和OpenCloudOS社区理事单位。过去几年,我们向开源社区累计贡献了100万行以上的代码。
我今天演讲的题目是新一代车用操作系统的开源探索。什么是新一代车用操作系统?这是第一个问题。第二个问题,我们如何发展新一代车用操作系统?车用操作系统是非常大的概念,我们希望能够把它打开,看看车上面到底有哪些操作系统?操作系统本身的技术是在不断演进,覆盖很多领域、场景,有很多维度的分类,包括以下四类:
第一类,是面向控制的操作系统。比如说汽车上面向控制的AUTOSAR操作系统,那么在其他工业领域也有VxWorks、RT-Linux都是面向控制类的操作系统。
第二类,是面向人机交互的操作系统,比如说像华为的鸿蒙、微软的Linux,iOS等等都是为人机交互服务,为用户体验服务的。
第三类,是面向计算的操作系统,我们看到很多的操作系统着重的是吞吐量,即计算能力,我们看到很多服务操作系统、云服务的操作系统都是面向计算类的操作系统。
第四类,在很多领域,特别是智能网联汽车领域,我们需要有面向人工智能的操作系统,那么它的特点是什么呢?它的特点是单一的计算能力不能支持我们的用户需求,我们需要有多维度的计算能力。所以需要有各类的芯片来提供各种各样的计算能力,它既需要有CPU通用计算能力,又需要有GPU或者有一些基于AI输出的这样一些芯片能力或者架构,所以面向人工智能类的操作系统,目前还是在探索过程当中,也有很多发展机会。
那么在一个车上,这样的四类操作系统实际上都有,我们刚刚说汽车可能是我们全世界工业领域的皇冠和明珠,所以它上面集成了很多技术。操作系统也不例外,操作系统是汽车智能化的核心,汽车是一个多样化不同类型操作系统运行载体。
比如说我们汽车上控制类系统采用最多的是原来分布式操作系统,即AUTOSAR车控操作系统。
人机交互操作系统是面向车机的,比如说过去我们做导航、做信息娱乐那些都是面向人机交互类的操作系统,我们接下来也会有面向计算类的和面向人工智能的操作系统,在智能驾驶汽车中凸显出来,这也是目前我们汽车行业面临的挑战。
那么这张图实际上刚才很多专家都提到过,这是车用操作系统分类和软件架构发展趋势。在车控操作系统领域,AUTOSAR中间件已经成为行业共识以及实践的事实标准。
在智能座舱领域,座舱操作系统包括QNX、安卓等等是目前主要使用的操作系统,这些操作系统可能来源于消费电子领域,消费电子最接近的可能就是智能座舱域这样的一个需求。
第三个是智能驾驶域,目前来说它的技术路线比较多,有ROS、QNX、AUTOSAR,目前还没有固定的什么技术路线是对的,大家还在探索过程当中,所以这是三类操作系统的现状。
新一代操作系统需要什么?这是我们要定义的,就是新一代操作系统既然是一个挑战,那么我们看现在的汽车,我们现在处于L3阶段之前,也就是说“L2+”或者“L2+++”。在这个阶段里面,汽车的安全责任是由分布式的电子电气系统和驾驶员共同承担的,所以每个电子电气系统要承担自身的安全,当未来发展跨越到L3以上,那么整车将逐步替代驾驶员在安全上的责任,所以我们分析在自动驾驶从L2向L3发展,它向操作系统提出最重要的需求就是高安全的需求。前面有专家提到整车操作系统,不管VxWorks还是其他整车操作系统,最重要的特性或者解决的痛点就是安全。如果达不到安全,再多的功能在一个车上都是无法落地实现的。
那么要发展新一代的车用操作系统,为什么要开源微内核呢?这是我们电子电气架构的发展逻辑图,从分布式向集中式、中心化的发展,整车厂对于操作系统的自研需求是非常明确的,刚刚一汽专家和广汽专家都提到了整车厂自研操作系统,本质上是,操作系统对于整车来说越来越重要。
所以,它太重要了,不能说整车厂不掌握,这是第一个逻辑。第二个逻辑是操作系统的投入是非常巨大的,一个操作系统的投入是不是能够有一家企业来负担,曹总刚刚讲到软件危机,一家企业负担一个操作系统的发展,这条路是不是能走通,这也是存疑的。
整车厂的灵魂和渴望和我们操作系统研发如何结合?我们首先来把操作系统进一步打开看一下。操作系统里面占据最核心基础核心地位的是内核,为什么是内核呢?因为如果操作系统要达到安全,离不开内核的安全。如果内核不安全,操作系统本质上是无法达到安全的。
操作系统如果要达到高性能,我们现在智能驾驶汽车都需要有高性能的吞吐量,或者计算吞吐量。 内核设计如果不能达到优于常规设计的话,那么操作系统的高性能也是达不到的。
第三个我们要达到实时性。实时性和高性能是两个概念,实时性是刚刚好的时间点,在正确的时间做正确的事情,这是实时性,就是确定性。做到实时性更需要内核有一个实时性任务调度机制,内核处于核心基础地位原则在于此。
微内核是操作系统内核设计技术路线,微内核不是新提出来的,它发展好多年,本质上它的技术思路是将内核和系统服务区隔离,从而增强系统的安全性。如果说内核和系统服务是在一个空间,耦合在一起无法隔离的话,系统服务中任何缺陷或者故障都会蔓延到内核,所以内核无法达到安全性。
隔离是它的第一个或者最重要的特性,但是内核在隔离的过程当中,它有三个进一步的特征:
第一,微内核实时性改进。当内核和系统服务器隔离之后,如何提高它的实时性,如何使得实时性不受到影响,这是我们要解决的第一个问题。
第二,我们需要有兼容各种硬件架构、内存保护机制的一个地址空间管理控制,让微内核可以适用于更多硬件、更多芯片的一个技术手段。如果说一个微内核开发出来只能适配一种芯片,或者我们没有办法达到软硬解耦程度的话,本质上它就没有生命力。
第三,基于权能操作系统调用和自主访问控制,也就是说在安全性之中有一个特别重要的特性就是网络信息安全。那么对于网络信息安全来说,最基本的要求就是访问者和访问对象的权限是必须受到管理的,需要有确定性的机制来制定、定义谁能够访问资源,同时所有这些访问是必须能够被安全审计的,也就是必须被记录下来,回头可以追溯有哪些违规的访问。
以上是最主要的三个特性。
微内核的混合内核,也就是说在微内核基础上我们增加了哪些特性,同时我们把需要提高它性能的部分再增加到微内核里面去,使得它的性能能够得到改进,这是我们目前分析下来实现车规级功能安全最优的技术路线。
那么面对这样的一个内核,这样的微内核,我们需要怎样来做?操作系统本身的难度是非常大的,刚才也提到了我们看到一些数据,上亿行的代码,也就是说整个汽车上有上亿行的软件代码,操作系统有多大呢?Linux操作系统内核大概有2700多万行,整个Linux有超过1亿行代码。同时我们看自动驾驶汽车在传统汽车的基础上,又增加了大量的信息系统,就是电子系统,它的代码量可能会达到3-5亿行。
对于我们一个企业来说,我们看到有两种模式,开源操作系统的代表Linux操作系统,闭源操作系统,比如说Windows或者QNX、MacOS等这是两种开发模式。
如果要进行一个复杂场景、应用场景的并且它本身的功能又是非常多的这样一个操作系统的开发,单看一个企业实施不能说不可能,因为历史上有过,但是在现在的时间点是不现实的,或者我们应该说采用更高效的开源协作模式去开发一个操作系统。
所以,我们可以看到,30多年来开源已经被证明是有效可行的组织人类进行大规模智力协同的模式,它有很多好处:
第一,当我们开发一个软件的时候,由开源开发使得我们所有参与开发者可以共同对一个软件进行完善,进行补充、进行优化。
第二,对客户来说,我可以拿到源代码,意味着我对软件的掌控力,对所谓刚才说整车厂灵魂渴望这件事情是有解的,并不是说我非此即彼,所以开源可以解决这样的一些问题。
今年5月27日,普华基础软件在中国汽车工业协会T10 ICV CTO闭门峰会上正式发布了EasyAda微内核。5月27日之前我们已经将代码发布到开放原子基金会代码托管平台上面,采用的是木兰的公共许可证第二版。总共发布的源代码包括122个文件,14883行的代码,这是目前我们的一个起步,就是EasyAda微内核第一步。
我们发布的122个文件共包含以下8个目录:
第一是我们的体系架构,关于芯片的体系架构,目前支持的是ARM cortex A55芯片架构。
第二是访问控制的相关代码,跟刚才说的权能相关的代码。
第三是微内核核心功能的源代码Core目录。
第四是功能函数、数据接口声明头文件。
第五是一些初始化的代码。
第六是我们的硬件平台移植平台跟芯片相关的一个平台代码。目前是支持G9X的适配代码。
第七是内核共用算法的函数代码。
第八是跟用户Tai程序的接口代码。
接下来我会稍微讲讲这些代码,我想现场的工程师可能会感兴趣。
第一部分,权能相关的代码,在capability目录里面。权能是一种微内核上的安全机制,有别于传统宏内核和上一代微内核。
目前包括我们权能所控制的访问对象,就是我们能够管理的那些资源,包括了中断的IRQ,即中断请求的request;包括线程间通信、内存地址空间、任务、锁等,这些访问的时候都需要权限,这是它本质的内容。
第二部分,线程间通信的代码。线程间的通信是IPC的话,是微内核里面架构的基础,所以我们需要实现一个精简统一核间通信的接口,通过我们endpoint作为通信节点,通过Ipcbuffer作为通信容器,然后通过零拷贝的机制提高它的性能。
第三部分,中断相关的代码。中断是第二个跟微内核相关的性能,中断响应性能很大程度上决定了操作系统性能好坏。我们考虑到一些确定性要求在这里面,也考虑到中断关闭时间和关闭的力度,也就是说对关中断影响中断响应时间的区间会越小越好。
最后,我讲一些功能安全的合规代码。因为我们这次发布代码都是通过了MISRA C认证,所以对于代码中一些表达式,一些函数、一些声明、指证都是按照车规级定义合规的代码,我们从一开始就注重于功能安全的要求。
这是我们的目标,我们希望2025年国内车用操作系统市场上有一个自主的车用操作系统,基于自主的开源微内核,在国产品牌汽车上应用并实现量产,让我们整车企业和零部件企业在这个市场上能够有多一个选择。
微内核开源项目得到了产业界的大力支持,国内多家整车企业、零部件企业都积极参与开源共建。接下来将举行中国车用操作系统开源共建计划正式启动仪式,本次活动由于场地有限,仅邀请了部分整车企业来现场一起见证开源共建签约仪式,或者说是一个启动仪式。
下面,有请主持人。
谢谢!
(注:本文根据现场速记整理,未经演讲嘉宾审阅)