汽车操作系统和中间件的错位

谈思实验室 2023-07-21 17:59

击上方蓝字谈思实验室

获取更多汽车网络安全资讯


随着汽车智能化的深入,除了自动驾驶算法以外,操作系统和中间件是目前整车软件架构中最核心的两个环节,这一点已基本形成行业共识,但这些软件是否需要自研,如何开发,Autosar到底是操作系统还是中间件,能不能替代,这些都是最常见的问题。对于非计算机专业的团队,要理解清楚这些复杂软件对汽车的意义和整个图景,是比较困难的一件事。本文从基本的操作系统设计概念出发,尝试厘清汽车行业对操作系统和中间件等核心技术的定位和理解误区。


首先是目前能不能真正从零开发一个标准的大型操作系统(即所谓的POSIX OS, 严格意义上的操作系统)? 很遗憾不能, 虽然我们很需要,但是无论国内某些互联网/IT大厂如何宣传包装, 从零开发的操作系统目前在技术和商业上都无法实现, 汽车操作系统也不例外。


简单来讲,如果嵌入式操作系统(比如FreeRTOS, uCOS或Autosar CP的内核)的开发难度和工作量是1, 那么大型操作系统的开发难度和工作量就是99, 从体量就能看出,一个完整的嵌入式操作系统最多几十M, 而一个大型操作系统最少也有几个G, Debug版本十几年前就已经超过50G, 不管是代码量,还是其涉及的生态体系,两者都不能相提并论。对于嵌入式操作系统,国内聚集一下力量是可以自研的,且嵌入式的应用层软件也多是定制开发,系统的自建标准,应用层很容易配合。而一个大型操作系统,实际就是海量的协议和标准的集合体, 几乎要全世界的软硬件公司认可和配合,所以目前国内没有任何公司能建立真正的操作系统,一是没有领袖级的底层开发人员,二是即使操作系统开发出来了,也没有上下游公司配合新的标准来重新开发软硬件。简而言之,开发操作系统的时代已经过去了。


狭义上的操作系统无法开发, 那广义上的汽车操作系统还能做什么?首先明确一点,无论谁再来做,都只能是在操作系统内核之上根据车规或场景对现有的操作系统进行优化和增补, 使其适配汽车。(也有车厂对操作系统UI进行升级替换, 冠以自家系统的名称,这更多属于品牌和营销层面的操作, 不在本文讨论范围内)。


适配和优化操作系统的主要方向之一,就是让操作系统上的新的复杂软件也满足汽车功能安全, 比如汽车软件的执行需要确定性: 软件需要在规定的时间内,规定的时序去执行任务。(这个问题涵盖的领域很多, 还有物理网络,或应用层的因素, 这些不属于操作系统范畴,也不在本文讨论范围内)。


目前,汽车行业有观点认为大型操作系统的多进程调度机制不能满足确定性任务的需求,多个任务在经过了复杂的跨进程调度以及多核CPU的负载均衡之后,任务执行时间,输出结果和顺序都有概率无法与预设的一致。这在自动驾驶或者高安全等级的应用中可能会产生某些问题(类似于偶发的glitch)。以时序为例,比如某个场景需要执行1,2,3,4步操作, 被Linux的多进程策略调度之后达到执行层,随机变成了3,4,1,2。反之从传感器获取数据亦然。


这种不确定性在Linux/Android/Windows等操作系统中的确存在。对待这个问题, 行业一般有两种态度: 

1

暂时不解决或忽略, 从用户场景的角度来看, 这种不确定性造成的问题并不是很严重, 能用其他冗余来备份;


2

必须得解决,严格按照汽车软件规范或者26262的标准,把这种不确定性消灭掉。


先说第二种态度, 解决方案就很有意思,一般有两种路线, 第一种,通过中间件去弥补操作系统进程调度造成的不确定性。第二种,更换操作系统内核。多数汽车操作系统或中间件方案,其实都是第一种方案, 典型的就是Autosar AP(运行时的执行管理模块), 这类方案能否解决问题?这里就需要先理解一下大型操作系统的基本设计理念。


操作系统从整体架构上分为两个空间, 即内核空间和用户空间。从软件运行权限的角度来看,操作系统是按Ring(环)的理念来设计, 内核空间在内环Ring0, 用户空间是外环Ring3, Ring0权限最大,Ring3权限最小;对硬件资源的调度优先级和限制也是从内到外递减, Ring0可以访问全部资源, Ring3受到各种限制(Ring1,2基本不用)。不管Linux,安卓还是Windows, 都是按此理念来设计,如下图:


Ring0上的程序就是操作系统内核,包括进程管理、进程间通信、设备管理、网络通信、文件系统等经典模块,哪些模块在内核,哪些系统服务在用户空间,不同的操作系统有些差异,但功能基本一致。内核空间的模块简单理解就是超级管理员,能访问全部硬件资源, 而Ring3上的用户程序相当于普通用户,访问的硬件资源是受限制的。这里需要特别指出的是,用户空间内的软件并不是仅包括普遍理解中的APP,而是全部非操作系统内核模块都属于用户空间,包括但不限于中间件,数据库,HMI, APP, 算法, 业务逻辑, 甚至很多操作系统自带的服务和组件, 当然Autosar AP也不例外,都只能运行在Ring3的用户空间中。整个操作系统的两层结构如下图所示:



无论如何包装,运行时也好,中间件也好,广义OS也好,这些方案都是在大型操作系统的用户空间中开发软件, 尝试去解决内核调度的不确定性。这里就有一个很严重的错位, 操作系统内核(进程调度机制)产生的问题,能否由一个用户空间的软件(Autosar AP或其他中间件)去解决? 这明显是有问题的, 因为上层或者Ring3的中间件或其他运行时的软件,从最基本的操作系统设计原理上来看, 没有权限去插手更高权限的Ring0内核的事。所有Ring3自定义的优先级和执行规则,到了Ring0上都不会被认可, Ring0始终会按照操作系统原有的进程调度策略来执行。


那确定性问题的根本解决方案就很明显了, 内核的问题只能用同在内核空间的软件来解决, 用户空间的软件无权干涉内核。要从根本上解决任务执行的不确定性, 只能修改操作系统内核调度策略或直接更换内核, 这个技术难度非常大,实际是操作系统中最难开发的部分,全球市场上有1-2家内核解决方案商可提供这类第三方实时性内核,用于实现多进程下的任务确定性执行, 这类方案实际是开发新内核而不是开发中间件。


而Autosar AP或者类似的中间件,都是基于Linux和其系统接口来开发的用户空间软件, 无法根治内核的问题。那是不是AP(AP有多个功能划分,这里重点讨论其核心的执行管理/状态机等模块)完全无用?也不尽然,Autosar AP实际是设计了一种取巧的办法来尝试解决内核任务调度的问题: 建立一个RTE机制(运行时, 借鉴了高级编程语言的理念),在操作系统之上充当一个壳, 让其他汽车软件全部运行在RTE之上,或接受RTE的管理,调度和跨进程通信, 这样从Ring0内核的角度来看, 整个Ring3上就像是只有1个APP -- Autosar AP RTE,  而运行在RTE上的各种APP间的调度, 对于内核来说是都属于RTE内部的问题, 上层APP被RTE统一装进了RTE设计的沙盒内,这些沙盒和其中的APP都是通过RTE的调度策略来控制状态机和实现跨进程通信。这种方案等于Autosar AP在系统中加了一层新的Ring4, Autosar RTE自己运行在Ring3上, 其他APP运行在Ring4上, 只要AP的RTE和操作系统内核之间用固定规则约束好, 保证RTE和Ring0的内核交互不出问题, 那Ring4的APPs最终经过RTE的管控, 理论上最终在Ring0上执行时出问题的概率就大大降低。这种理念, 类似于在Linux的用户空间中又实现了一个嵌入式操作系统. 如下图:


这种办法并未从根本上调整操作系统内核调度策略, 但在理论上提供了一种绕路的办法,让所有应用必须接受AP RTE的管理,在量产的时候, 可以限制各种APP直接和操作系统接口进行交互。但实际上这种方案问题较多:

01

用户空间的软件,既有操作系统组件和服务,也有第三方应用,包括中间件、算法和APP,这些软件对系统服务和内核均有很复杂的依赖关系,这些服务和更多间接依赖的系统组件之间又有更为复杂的依赖关系,(实际上除了操作系统团队本身,第三方搞不明白深层次的系统组件调用关系),而由于各个软件需要层层调用和依赖大量公用的系统服务和资源,在此过程中会对公用资源进行竞争和互斥,最终产生等待和延迟,这属于最根本的操作系统机制。而RTE想用自己的跨任务通信机制去覆盖现有系统的机制,就得考虑RTE自身和系统内核调用的协同是否能完美无缺的实现,或者能否完全摆脱对系统组件的依赖,实际上这种方案实现难度极大,严重的情况可能会破坏组件间的依赖关系,如果仅是做守护进程,则没有什么效果和价值。

02

安全很难保证,稍微有点经验的软件团队, 都能绕开一个非系统内核的程序(RTE)或者其定义的规则, 直接无约束的调用系统接口, 从而对底层进行控制。事实上,从过往历史来看, 没有哪个行业能实现如此封闭的开源系统, 即便实现了, 在本来内置了大量功能和协议的POSIX系统之上,再去覆盖一层复杂的管理机制,最终性能几何? 而从更长远的生态来看, 这种做法与汽车要实现类似于智能硬件一样的开放生态愿景,似乎也背道而驰的。


特斯拉或者某些比较擅长软件的新势力是怎么做的呢? 他们实际是第一种态度, 容忍这种不确定性, 也许他们没那么循规蹈矩。总之,特斯拉既没有更换系统内核, 也没有使用Autosar, 他们只是认为在绝大多数用户场景中这种偶发的不确定性无需解决或暂不解决, 对于个别的高安全场景, 通过独立的MCU和嵌入式软件进行冗余处理即可。


这里就要提及经典的多传感器传输数据由于延时不一致导致的融合问题, 这些数据表面上是通过操作系统的不同进程来收发,最终出现了不同的延迟,但其实大多数延时并非由任务调度策略造成的,而是因为别的原因, 目前智驾域控上的软件就那么几个,真正海量跨进程的问题还没有出现。实际ADAS这类问题不需要修改操作系统任务调度策略也能解决, 对于软件能力强的团队, 这个问题有不少解决方案, 这也是特斯拉或者个别新势力既不换实时性内核,也不用Autosar的原因,因为有更好的解决办法。


至于中间件,这套架构创立开始,就不是用来给操作系统做补充的, 尤其是DDS, MQTT, SOME/IP中间件, 都有其他目的和价值。而把中间件包装成广义的汽车操作系统, 仅是商业动机,技术上两者还是有严格界限的。


再来看看Autosar, 很多人以为CP和AP是同一套理念和架构,差异仅是针对不同类型的芯片,但 Autosar CP和AP实际是两套完全不同的软件。简单讲CP是嵌入式操作系统+嵌入式中间件,而AP只是Linux之上的一个中间件软件(AP必须先安装Linux)。Autosar CP包含嵌入式操作系统内核, 驱动模型, 还提供了一个类似于进程调度的机制来支持多个软件团队的并行开发和集成 (嵌入式系统一般没有进程概念,任务和线程都在同一个工程下, 所以任务执行的确定性很容易实现)。而嵌入式软件本身代码量少, 用工具可实现低代码的一站式开发, 成本低,对软件开发人员没有要求,所以CP用在汽车MCU生态中很成功,形成了行业标准.


Autosar CP的成功并不意味着AP沿用这种思路就行得通,反观目前Autosar AP的局面, 归根结底还是技术理念有问题, AP用嵌入式的思维和架构,去给一个复杂度和体积达上千倍的大型操作系统套壳, 这个宏大的目标对开发AP工具的技术团队的要求之高, 实难想象。而用一个用户空间的软件去解决内核的问题, 也是一种典型的错位:中间件就是中间件,它去做操作系统的事,实际是缘木求鱼。

来源:车端






码上报名

AutoSec 2023 第七届中国汽车网络安全周暨第四届智能汽车数据安全展,9月13-15日,上海

更多文章

智能网联汽车信息安全综述

华为蔡建永:智能网联汽车的数字安全和功能安全挑战与思考

汽车数据合规要点

车载以太网技术发展与测试方法

车载以太网防火墙设计

SOA:整车架构下一代的升级方向

软件如何「吞噬」汽车?

汽车信息安全 TARA 分析方法实例简介

汽车FOTA信息安全规范及方法研究

联合国WP.29车辆网络安全法规正式发布

滴滴下架,我却看到数据安全的曙光

从特斯拉被约谈到车辆远程升级(OTA)技术的合规

如何通过CAN破解汽

会员权益: (点击可进入)谈思实验室VIP会员



谈思实验室 深入专注智能汽车网络安全与数据安全技术,专属汽车网络安全圈的头部学习交流平台和社区。平台定期会通过线上线下等形式进行一手干货内容输出,并依托丰富产业及专家资源,深化上下游供需对接,逐步壮大我国汽车安全文化及产业生态圈。
评论
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 78浏览
  • 自动化已成为现代制造业的基石,而驱动隔离器作为关键组件,在提升效率、精度和可靠性方面起到了不可或缺的作用。随着工业技术不断革新,驱动隔离器正助力自动化生产设备适应新兴趋势,并推动行业未来的发展。本文将探讨自动化的核心趋势及驱动隔离器在其中的重要角色。自动化领域的新兴趋势智能工厂的崛起智能工厂已成为自动化生产的新标杆。通过结合物联网(IoT)、人工智能(AI)和机器学习(ML),智能工厂实现了实时监控和动态决策。驱动隔离器在其中至关重要,它确保了传感器、执行器和控制单元之间的信号完整性,同时提供高
    腾恩科技-彭工 2025-01-03 16:28 166浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球封闭式电机产值达到1425百万美元,2024-2030年期间年复合增长率CAGR为3.4%。 封闭式电机是一种电动机,其外壳设计为密闭结构,通常用于要求较高的防护等级的应用场合。封闭式电机可以有效防止外部灰尘、水分和其他污染物进入内部,从而保护电机的内部组件,延长其使用寿命。 环洋市场咨询机构出版的调研分析报告【全球封闭式电机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球封闭式电机总体规
    GIRtina 2025-01-06 11:10 76浏览
  •     为控制片内设备并且查询其工作状态,MCU内部总是有一组特殊功能寄存器(SFR,Special Function Register)。    使用Eclipse环境调试MCU程序时,可以利用 Peripheral Registers Viewer来查看SFR。这个小工具是怎样知道某个型号的MCU有怎样的寄存器定义呢?它使用一种描述性的文本文件——SVD文件。这个文件存储在下面红色字体的路径下。    例:南京沁恒  &n
    电子知识打边炉 2025-01-04 20:04 63浏览
  • 光耦合器,也称为光隔离器,是一种利用光在两个隔离电路之间传输电信号的组件。在医疗领域,确保患者安全和设备可靠性至关重要。在众多有助于医疗设备安全性和效率的组件中,光耦合器起着至关重要的作用。这些紧凑型设备经常被忽视,但对于隔离高压和防止敏感医疗设备中的电气危害却是必不可少的。本文深入探讨了光耦合器的功能、其在医疗应用中的重要性以及其实际使用示例。什么是光耦合器?它通常由以下部分组成:LED(发光二极管):将电信号转换为光。光电探测器(例如光电晶体管):检测光并将其转换回电信号。这种布置确保输入和
    腾恩科技-彭工 2025-01-03 16:27 171浏览
  • 彼得·德鲁克被誉为“现代管理学之父”,他的管理思想影响了无数企业和管理者。然而,关于他的书籍分类,一种流行的说法令人感到困惑:德鲁克一生写了39本书,其中15本是关于管理的,而其中“专门写工商企业或为企业管理者写的”只有两本——《为成果而管理》和《创新与企业家精神》。这样的表述广为流传,但深入探讨后却发现并不完全准确。让我们一起重新审视这一说法,解析其中的矛盾与根源,进而重新认识德鲁克的管理思想及其著作的真正价值。从《创新与企业家精神》看德鲁克的视角《创新与企业家精神》通常被认为是一本专为企业管
    优思学院 2025-01-06 12:03 73浏览
  • 随着市场需求不断的变化,各行各业对CPU的要求越来越高,特别是近几年流行的 AIOT,为了有更好的用户体验,CPU的算力就要求更高了。今天为大家推荐由米尔基于瑞芯微RK3576处理器推出的MYC-LR3576核心板及开发板。关于RK3576处理器国产CPU,是这些年的骄傲,华为手机全国产化,国人一片呼声,再也不用卡脖子了。RK3576处理器,就是一款由国产是厂商瑞芯微,今年第二季推出的全新通用型的高性能SOC芯片,这款CPU到底有多么的高性能,下面看看它的几个特性:8核心6 TOPS超强算力双千
    米尔电子嵌入式 2025-01-03 17:04 42浏览
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 107浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 73浏览
  • PLC组态方式主要有三种,每种都有其独特的特点和适用场景。下面来简单说说: 1. 硬件组态   定义:硬件组态指的是选择适合的PLC型号、I/O模块、通信模块等硬件组件,并按照实际需求进行连接和配置。    灵活性:这种方式允许用户根据项目需求自由搭配硬件组件,具有较高的灵活性。    成本:可能需要额外的硬件购买成本,适用于对系统性能和扩展性有较高要求的场合。 2. 软件组态   定义:软件组态主要是通过PLC
    丙丁先生 2025-01-06 09:23 66浏览
  • 本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。制作图片开机logo图片制作注意事项(1)图片必须为bmp格式;(2)图片大小不能大于4MB;(3)BMP位深最大是32,建议设置为8;(4)图片名称为logo.bmp和logo_kernel.bmp;开机
    Industio_触觉智能 2025-01-06 10:43 71浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦