理想和小鹏的座舱域控,用的操作系统不一样——这件事,很多准备这个方向的兄弟不知道,或者知道了也没想清楚意味着什么。
成哥今天把这个问题讲清楚。
先说结论:QNX和Linux,在座舱域控里不是非此即彼的关系,而是各有分工。
座舱域控通常要同时跑多个系统:仪表盘(数字仪表)、中控屏(车机)、HUD,这几个显示单元的需求不一样。
仪表盘显示车速、转速、报警信息,这些是安全相关的,要求系统实时、可靠、不能崩。QNX是实时操作系统(RTOS),专门为这种场景设计,功能安全认证做得很完善,所以仪表盘普遍用QNX。
中控车机要跑导航、音乐、视频、第三方App,这些需要丰富的生态和灵活的开发环境,Android或者Linux更合适。
所以一个座舱域控芯片上,往往同时跑QNX和Android/Linux,通过Hypervisor(虚拟化技术)隔离,互不干扰。

那理想和小鹏的差异在哪?
理想的座舱系统,仪表盘用QNX,车机用Android。这是目前行业里最主流的组合,博世、伟世通这些Tier1的座舱方案也是这个路子。理想的IDEAL OS,底层是这套架构,上面做了大量的UI和交互定制。
小鹏的座舱系统,走了一条不太一样的路。小鹏在部分车型上,把仪表盘也迁移到了Linux/Android体系,用软件方式保证实时性,而不是依赖QNX。这样做的好处是整个系统更统一,开发效率更高,OTA升级也更方便。代价是功能安全的认证难度更大,需要在软件层面做更多工作。
懂的都懂,这条路不是谁都敢走的,小鹏在软件能力上确实有一定积累。
对做座舱域控的工程师来说,这意味着什么?
如果你去理想,QNX是绕不开的。仪表盘的BSP开发、驱动移植、实时性调试,都要在QNX上做。QNX的开发环境和Linux差异不小,有专门的Momentics IDE,API也不一样。没接触过QNX的人,需要专门花时间学。
如果你去小鹏,Linux功底更重要。小鹏的座舱软件团队,更多是在Linux/Android体系里做深度定制,对内核调度、实时性优化、系统裁剪的要求更高。
如果你去高通或者芯片方案商,两个都要懂,因为你要支持不同客户的不同方案。
那应届生应该先学哪个?
成哥的建议是:先学Linux,再了解QNX。
原因很简单——Linux的学习资料多、社区活跃、可以在自己电脑上直接练,入门成本低。把Linux驱动开发、内核基础学扎实,再去学QNX,迁移成本不大,因为底层概念是相通的(进程、线程、IPC、驱动模型)。
反过来先学QNX,资料少、环境搭建麻烦、学完之后发现很多岗位还是要Linux,性价比不高。
QNX要了解的核心概念:消息传递(Message Passing)机制、资源管理器(Resource Manager)、脉冲(Pulse)通信。这些是QNX和Linux最大的差异点,面试时能聊这几个点,就够用了。
还有一个容易被忽视的点:Hypervisor。
不管是理想还是小鹏,座舱域控上跑多个操作系统,都需要Hypervisor来做隔离。理解Hypervisor的工作原理——Type 1和Type 2的区别、虚拟化的内存隔离、设备直通(Passthrough)——这个知识点在座舱域控面试里出现频率越来越高。
成哥建议把Hypervisor的基本概念搞清楚,不需要你能写一个,但要能说清楚它解决了什么问题、为什么座舱需要它。
你现在在准备座舱域控,是偏QNX方向还是偏Linux方向?评论区跟成哥说说,我挑几个典型的下期拆。
启飞汽车知识库 会员,免费获赠一本工程师实战手册(实物)#启飞汽车知识库 (点击进入)
