百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

软件定义汽车,车载操作系统和中间件是什么

ahcoder 2024-12-24 10:32 39 浏览

前面两篇文章介绍了EEA硬件架构、软件架构和通讯架构的大体发展方向,这里再对一些基础且重要的概念进行梳理,作为补充。

中央计算平台

从功能域进化到位置域,再参照电脑和手机,最终成为一个中央计算平台,集成了座舱、自动驾驶、车控、网关等功能。

简单来看,计算平台是由众多“小SoC”进一步集合而成的“大SoC”,其架构会决定软件架构的设计方向。

分离式的架构,各单元的SoC运行不同操作系统,每个单元硬件和软件完全独立;硬件隔离式的架构,通过一颗强大的SoC运行多个操作系统,每个单元都有专属硬件资源,在硬件上独立;软件虚拟式的架构,一个强大的SoC运行多个操作系统,每个单元没有专属的硬件资源,全部由虚拟层调配。

操作系统

车载操作系统的基础是内核,决定着汽车软件架构的稳定性。

常用的内核有VxWorks、Unix(IOS)、Linux、QNX,其中VxWorks和QNX是微内核,能实现基本的任务管理、内存管理、进程通信等功能;而Linux和Unix属于宏内核,除微内核的基本组件外,还有网络、设备管理、文件系统等功能。

在内核基础上,通过增加应用开发框架、包管理、核心服务等组件,可以得到Android、AliOS等发行版本;而再基于Android,通过修改系统服务和操作界面UI,可形成MIUI、EMUI等ROM。

宏内核的Linux系统是分时操作系统,单个服务的崩溃往往意味着整个系统的崩溃;相比较而言,QNX作为微内核的实时系统比Linux更有优势。

但Linux是开源且免费的,相比于付费和半开源的QNX在生态上有优势;QNX在娱乐系统的竞争力更小,更多用在仪表、ADAS等与驾驶相关且要求高安全性的部件上。

Linux的内核组件比QNX复杂,对主机厂或供应商的开发能力也提出了极高的要求。

车载操作系统选择

操作系统需要芯片的支持,要兼容POSIX接口,更重要的是结合生态,特别是面向C端用户,是应用生态决定了生死。

操作系统的选择会基于成本、商业、生态等多方面考虑。

针对于智能座舱,核心是多媒体和互联网应用,主要关注应用生态和开发者生态,因此主要是跟随消费电子,大部分用的是Android,而特斯拉更想掌握自己的话语权,采用的是Linux。

针对于自动驾驶,核心是算法设计和数据积累,主要关注系统成熟,在Linux、QNX和VxWorks中,QNX比较安全和稳定,被采纳的较多。

对于网关及以太网交换机,算力要求高,但任务相对单一,架构简单,操作系统常采用Linux。

通讯协议

DDS和SOME/IP都是基于TCP/IP的一种应用层通信协议,相比于CAN,通信过程是面向服务而非信号,发送会考虑接收的需求,类似于一种订阅/发布机制,DDS和SOME/IP两者作用大同小异,DDS功能更强大。

中间件

中间件可以认为是一种广义操作系统,不同于内核,它是介于上层应用和底层系统之间的一套软件框架,充当着软件和硬件解耦的角色。

车企和供应商开发的操作系统,实际都是对内核做补充,开发中间件或裁减应用软件,其开发能力体现在其所开发底层操作系统的整体框架上,而框架又取决于操作系统与中间件的组合。

基于QNX内核做开发,一般是通过叠加定制的上层算法来完成中间件的设计;而基于Linux内核,则是先依据自身需求,对底层内核做软件裁减配置,再上层适配不同的中间层算法,因此Linux难度要大得多。

借助中间件,车企可以采用插拔式设计,将不同硬件配置进行统一定制化开发,然后根据需求进行软件(不同级别自动驾驶算法)和硬件(激光雷达选装)不同拓展。

汽车人参考小结

结合前两篇文章,这里梳理了电子电气架构EEA的三条主线,能够初步建立结构化的知识体系。

无论是集中式电子电气架构演进,还是操作系统、中间件等,其实对于终端用户来说都没有太多意义,基于技术变化能带来座舱和驾驶全新体验才是关键。

本文为汽车人参考第362篇原创文章,如果您觉得文章不错,“推荐和关注”是对我最大的支持。

相关推荐

linux服务器--PVE(一)简介及安装(pve安装ifupdown2)

1.PVE(ProxmoxVirtualEnvironment)简介ProxmoxVirtualEnvironment基于debian,是一个完整的、开源的企业虚拟化服务器管理平台。它在一个平...

手把手教你!如何在 Linux 服务器中搭建 Sentinel 环境?

你在Linux服务器上搭建Sentinel环境时,是不是也遇到过各种报错,要么是启动失败,要么是配置后无法正常访问控制台?看着同事顺利搭建好,自己却一头雾水,别提多着急了!其实,很多互联网大厂...

Linux高性能服务器技术总结(linux高性能服务器编程怎么样)

1服务器简介服务器是提供计算服务的设备,由于服务器需要响应用户请求,因此在处理能力、稳定性、安全性、可扩展性、可管理性等方面提出了较高要求。随着虚拟化技术的进步,云服务器(ECS)已经快速的在...

从 0 到 1:使用 Ansible 自动化运维 Linux 服务器全流程

Ansible是一款强大的IT自动化工具,广泛用于服务器配置管理、软件部署和任务自动化。本文将带你从零开始,学习如何使用Ansible对Linux服务器进行自动化运维,涵盖Ansibl...

诡异!Win11 “此电脑” 莫名现 Linux 图标,啥情况?

我这电脑出了个怪事儿,“此电脑”下面莫名其妙多了个Linux的图标,可我压根儿就没装过Linux系统啊!琢磨了一下,估计是系统可选功能里那个“适用于Linux的Windows子系统”插件搞的鬼。实例系...

Linux基础运维篇:Linux 终端与 Shell 基础(第006课)

一、啥是终端?先搞懂「人和电脑对话的窗口」你可以把终端(Terminal)理解成一个「文字版的电脑操作台」。在Windows里,类似「命令提示符」或PowerShell;在Linux里,...

2025罗技大师系列智「简」大赛-罗技大师系列-MX KEYS S键盘评测

在2025罗技大师系列智「简」大赛中,MXKEYSS键盘凭借其卓越的设计与智能化体验,成为众多创作者的理想之选。本篇文章将深入评测这款键盘的核心功能、使用体验及创新亮点,帮助你了解它如何提升...

Linux编辑命令vim(linux使用vim编辑文件)

1、vi编辑器简介vim是一个全屏幕纯文本编辑器,是vi编辑器的增强版,我们主要讲解的是vim编辑器。可以利用别名让输入vi命令的时候,实际上执行vim编辑器,例如:#定义别名...

全选是ctrl加什么?全选的快捷键是什么介绍

如何高效使用「全选」快捷键(Ctrl+A/A)提升工作效率在日常电脑操作中,"全选"是最基础却至关重要的功能之一。无论您是文字工作者、程序员还是普通用户,掌握全选快捷键都能极大提升操作...

Linux命令大全(linux命令大全书)

个人博客:https://chunyu.work/文章较长,可以收藏备用常用快捷键(1)ctrl+c:停止进程(2)ctrl+l:清屏(3)善于用tab键(4)上下键:查找执行过的命令文件目录类(...

Xshell是做什么用的?Xshell使用教程分享

Xshell是一款功能强大的终端模拟器,支持SSH1,SSH2,SFTP,TELNET,RLOGIN和SERIAL。通过提供业界先进的性能,Xshell包含了其他SSH客户端无法发现的功能和优势,作为...

Java 开发者线上问题排查常用的 15 个 Linux 命令

作为Java开发者,线上环境的问题排查是日常工作的重要组成部分。熟练掌握Linux命令能大幅提升排查效率,快速定位进程异常、日志错误、性能瓶颈等核心问题。本文结合Java应用特点,整理1...

Linux的常用命令就是记不住,怎么办?

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

别再乱学 Linux 了!这 5 个核心技巧,让你效率飙升 10 倍!

在Linux学习的漫漫长路上,不少人犹如在黑暗中摸索的行者,四处碰壁,学习效果却不尽如人意。你是不是也曾在海量的Linux知识面前迷失方向,感觉自己投入了大量时间,却收效甚微?其实,掌握Li...

Linux终端神器Terminator时隔1年回归,2.1.5新版发布

IT之家5月23日消息,科技媒体linuxiac今天(5月23日)发布博文,报道称Terminator在沉寂一年后,最新发布了2.1.5版本,在分割终端窗格时支持克隆SSH...