当前位置:首页>Linux>车载工程师最怕的三个字——“不确定”,Linux 终于搞定了

车载工程师最怕的三个字——“不确定”,Linux 终于搞定了

  • 2026-10-11 07:59:26
车载工程师最怕的三个字——“不确定”,Linux 终于搞定了
作 者 | aFakeProgramer
出 品 | 汽车电子与软件

引 言

前几年如果你跟车载工程师说:

“以后 ADAS、Cockpit、网关、OTA、AI Agent 可以跑在同一个 Linux 上。”

很多人的第一反应大概是:“你是不是刚从互联网行业转过来?”

因为在传统汽车电子世界里:

  • 安全 = RTOS

  • 娱乐 = Linux

几乎是政治正确。

QNX管安全,Linux管屏幕,AUTOSAR管“祖传 ECU”。

大家彼此井水不犯河水,各有各的生态,各有各的认证路径,相安无事地过了很多年。

结果现在,事情开始不对劲了。

因为 Red Hat 的 In-Vehicle Operating System 干了一件很大胆的事——**他们正在尝试用一个获得 ASIL-B 功能安全认证的 Linux Kernel,同时运行:

  • 安全应用(ASIL-B)

  • 非安全应用(QM)

  • Container Workload

  • AI 服务

  • Cockpit 服务

  • SOA 服务

甚至还想——尽量不依赖 Hypervisor。

是的。那个过去被认为“不安全”、“不确定”、“只能做 IVI”的 Linux,现在正试图进入功能安全核心区。

01

车企为什么突然开始

“重新爱上Linux"?

原因其实特别现实:ECU 太多了。

以前汽车电子架构长这样:一个功能 → 一个 ECU

后来:分几个域,一个域 → 一个 Domain Controller

现在:整车正在变成 → 一个中央计算平台

问题来了。

如果你还保持传统思路:

  • ADAS 一个 OS

  • Cockpit 一个 OS

  • 网关一个 OS

  • 诊断一个 OS

  • AI 一个 OS

最后会发生什么?

会发生——OTA 团队集体辞职。

因为你会拥有:

  • 多 kernel

  • 多 BSP

  • 多 rootfs

  • 多安全认证

  • 多日志系统

  • 多升级策略

  • 多调试链路

最后车还没卖出去,软件维护成本先爆炸了。

所以现在整个行业都在想:有没有办法用一个系统,跑所有东西?

于是,Linux 开始被重新审视。

02

Red Hat 这次

真正激进的地方

不是“Linux 能做安全”,而是——

“Linux 不需要 Hypervisor 也能做混合关键性(Mixed Criticality)”

这是完全不同的概念。

过去行业主流方案:

               Hypervisor

              /          \

        Safety VM      Linux VM

逻辑非常简单:隔离 = VM,安全 = 独立 Guest OS。

典型代表:QNX Hypervisor、Xen、Jailhouse、ACRN。

但 Red Hat 指出了传统 VM 方案的几个局限性:

  • 系统复杂性:多 VM 架构让持续集成变得复杂,需要协调不同团队、工具和技术

  • 扩展性受限:动态调整工作负载变得困难

  • 隔离过于刚性:依赖硬件隔离,缺乏灵活性

于是 Red Hat 说:“等等……Linux 自己不是已经有隔离能力了吗?”

1. Linux早已具备无干扰能力FFI(Freedom From Interference),在多租户数据中心已验证成熟,支持多负载共享硬件安全隔离;

2. 红帽在此基础上针对车载场景定制优化,保留Linux原生隔离、资源调度、安全管控能力,同时适配车载功能安全与实时性要求。

然后他们掏出了:

  • cgroup

  • namespace

  • SELinux

  • PREEMPT_RT

  • systemd

  • Podman

  • MMU

并表示:这些东西组合起来,也能做安全隔离。

行业老工程师看到这里时,大概会默默扶一下眼镜。

03

Red Hat 的核心架构:

分区架构+Container

Red Hat 的核心架构非常 Cloud Native。它本质上是 “分区架构+容器化”,而不是 “Hypervisor + 多Guest OS”。

结构大概是这样:

官方文档中明确,采用逻辑分区方案,基于Linux高级隔离特性管理混合关键级负载,实现安全/非安全应用安全共存。

1. 支撑隔离的核心软件组件

  • 内存管理:硬件虚拟内存空间配置,隔离内核/容器/应用内存,防空间干扰;

  • 调度器:管理CPU时间片、分时调度,保障安全任务确定性执行,防时间干扰;

  • Systemd:初始化管理系统服务,限定应用启动权限与隔离规则;

  • Podman:管理QM非安全容器,做资源与空间隔离;

  • Glibc API:提供内存管理、动态分配等标准库支撑;

  • SELinux + Seccomp:细粒度权限控制、系统调用过滤,多层防护防干扰;

  • dbus-broker:安全管控跨服务进程通信,禁止跨分区非法交互。

2. 分区架构核心模块

1) QM分区:承载非安全应用,逻辑隔离,低延迟、不抢占安全负载资源;

2) ASIL空间:安全关键负载运行在非容器化用户态,处于ASIL-B认证环境,是受控执行上下文,而非独立逻辑分区;

3) ASIL-B统一内核:统一负责内存管理、进程调度、资源分配,强制隔离并高效共享资源;

4) ASIL-B硬件平台:硬件组件通过安全认证,是隔离机制的硬件基础。

三大核心隔离机制(FFI关键)

1.空间隔离(Spatial Isolation)

  • 依靠MMU内存管理单元,为每个应用分配独立虚拟地址空间;

  • 应用仅能访问自身虚拟内存,越界访问触发缺页异常,内核直接终止违规进程;

  • 同时隔离应用与内核受保护内存空间,从底层保障安全/非安全负载内存互不干涉。

2. 时间隔离(Temporal Isolation)

保障安全关键负载稳定占用CPU时间,不受非安全任务干扰,核心机制:

1) PREEMPT_RT实时内核:最小化中断延迟,支持内核任务可抢占,保障时间敏感应用确定性调度;

2) Cgroups CPU资源分区:对进程分组、限定CPU资源配额,防止QM负载挤占安全任务算力;

3) 预配置QM容器:通过Cgroups严格限制非安全应用资源上限;

4) 硬件安全看门狗:监控系统故障检测时间FDTI、故障响应时间FRTI、故障容忍时间FTTI;安全应用需定期喂狗,卡死/故障时看门狗自动触发系统恢复,兜底保障安全。

3. 资源隔离(Resource Isolation)

由Podman落地QM分区资源隔离:

  • 为QM分区创建独立命名空间,隐藏未分配的硬件设备、网卡、共享内存等资源;

  • 未显式分配给QM分区的设备/文件,在分区内完全不可见、不可访问;

  • 分层隔离+内核防护,彻底杜绝非安全负载篡改、干扰安全组件。

核心能力

支持混合关键级部署:ASIL B级安全关键应用(制动、ADAS、防撞)和QM级非安全应用(车机娱乐、导航、空调)可共享同一个ASIL-B认证Linux内核,无需为每个业务单独部署虚拟机/独立Guest OS。

是不是突然很像 Kubernetes for Cars?

对。这就是 SDV(Software Defined Vehicle)真正开始“互联网化”的地方。

04

PREEMPT_RT: 

Linux 终于开始学会“守时”

传统 Linux 最大问题是什么?不是性能,是不确定性。

你永远不知道什么时候:

  • IRQ 会卡住

  • kernel 会锁死

  • scheduler 会抖一下

  • 某个 driver 会突然抽风

车载实时系统最怕这个。因为:

  • 音视频卡顿,用户会骂人

  • 刹车卡顿,会上新闻

所以 Red Hat 的关键武器是 PREEMPT_RT。

官方文档明确说明:Red Hat In-Vehicle OS 内核通过 PREEMPT_RT 特性集,最小化中断延迟,确保时间敏感型应用的确定性调度。它显著减少了中断上下文中花费的时间,允许内核任务在必要时被额外中断抢占。

这也是为什么现在越来越多 TSN、DDS、ROS2、ADAS Middleware、AI 推理调度开始认真研究 Real-Time Linux。甚至很多学术研究已经开始讨论 Linux 如何做 Mixed-Criticality Timing Isolation。

05

cgroup: 从云计算工具,

变成“车规资源隔离器”

以前大家提到 cgroup,想到的是 Docker、K8S、服务器。

现在 Red Hat 用它来做车载资源隔离。官方文档明确指出:

“Linux CPU cgroup 特性通过分组进程并为安全关键型任务分配可预测的资源,来强制执行 CPU 使用限制。”

翻译成人话就是:“娱乐系统别抢方向盘 CPU”。

比如,你可以配置为:ASIL 任务保留足够的 CPU 核心和预算,QM 容器内的非安全负载只能使用有限比例的计算资源(具体配置取决于实际整车需求)。但 official 文档强调的是 cgroup 作为机制的存在,而不是某个固定数值。

需要指出的是:cgroup 虽然能限制 CPU 使用率,但缓存争用(cache contention)和内存带宽干扰仍是行业正在解决的问题。这也是“Linux 单内核做混合关键性”的主要技术争议之一。

06

systemd:终于从“被嫌弃

的 init”变成汽车调度中枢

很多嵌入式工程师以前特别讨厌 systemd。因为它大、重、啰嗦、依赖多。

但现在你会发现:SDV 特别需要它。

官方文档中,systemd 的职责包括:初始化和管理系统服务,确保每个应用以预定义的权限和隔离机制启动。

现代汽车启动时,不是启动一个 main(),而是启动:

  • 网络

  • 容器

  • OTA

  • DDS

  • SOME/IP

  • AI Service

  • Diagnostics

  • Telemetry

  • Cybersecurity Agent

这时候,systemd 的依赖管理、编排、重启策略、生命周期管理突然变得非常香。

某种程度上,它已经越来越像AUTOSAR 的 EcuM + BswM,只是它穿着 Linux 外套。

07

Podman: 

容器的正确打开方式

很多人第一次看到文档会问:为什么不是 Docker?

因为 Docker daemon 太重。而 Podman:无守护进程、更适合嵌入式、更容易安全认证。

官方文档中,Podman 的作用是:配置和管理 QM 容器,为非安全应用强制实施资源和空间隔离。

它的工作方式:在系统初始化过程中:

  • systemd单元文件定义了 Podman 容器的命名空间、cgroups 和 SELinux 策略。

  • 命名空间提供进程级隔离——限制进程对特定系统资源(如进程 ID、文件系统、网络接口)的可见性;

  • cgroups 管理 CPU、内存、I/O 等资源分配,确保 QM 分区在其预定义限制内运行。

这说明 Red Hat 不是简单把服务器技术硬塞进汽车,而是真的考虑量产车规约束。

08

最聪明的一点:

ASIL 空间不跑Container

这个设计其实非常老练。

Red Hat 没有说“所有东西都容器化”,因为 Container 很难做安全认证。

所以他们采用:

  • ASIL Workload → 直接运行在非容器化用户空间

  • QM Workload → 跑在 Podman Container

这是一种非常典型的工程妥协智慧。

互联网行业喜欢“Everything Containerized”,汽车行业喜欢“Anything Certifiable”。Red Hat 现在明显在找平衡点。

值得补充的是:ASIL 空间虽然不跑容器,但并不意味着没有保护。Unix-style process protection 仍在 kernel 层面提供进程间隔离——内存访问限制和进程 ID 机制防止同一分区内的不同进程相互干扰。

Red Hat 的做法并非行业首创。Automotive Grade Linux 等项目也在探索类似的容器化策略。Red Hat 的核心差异化在于其完整的认证路径和对企业级长期维护的承诺。

09

不止于用户态:

Kernel 内部的 FFL 策略

一个容易被忽略但非常关键的层面是:Red Hat 为了实现 Freedom From Interference(FFI),不仅在用户态做了隔离,在 Kernel 内部也有一套完整策略。

官方文档专门用一节内核地址空间无干扰(Kernel FFI)来说明:

1. 内核代码范围精简:识别并排除不必要的 kernel 代码,减少攻击面,简化功能安全验证

2. 运行时安全机制:内核级防护内存损坏、非法访问、计数器溢出,通过故障注入验证高压下可靠性

3. 驱动认证与风险评估

  • 内树驱动:红帽官方认证,符合ASIL-B安全标准;

  • 外树/可加载模块:第三方需自行认证至ASIL-B及以上,仅合规模块可加载;

4. 受控访问:限制符号导出,防止开发者无意中破坏 kernel 的空间隔离机制

5. 多维度干扰验证

  • 空间干扰:KASAN内核模糊测试,遍历非安全域系统调用;

  • 时间干扰:高压非安全负载下,测试安全任务调度延迟;

  • 资源干扰:验证安全资源在非安全负载高压下仍保持隔离;

6. 最后一道防线:ASIL-B级硬件看门狗作为最终安全兜底,外部ASIL-B硬件 watchdog 监控 Fault Detection Time Interval(FDTI),安全应用必须定期 reload,超时则触发恢复机制。

这个深度恰恰是 Red Hat 方案与“自己攒一个实时 Linux”之间的本质区别。

10

 那对 QNX 影响大不大?

倒也没那么大。因为Linux 现在主要打的是 ASIL-B Mixed Workload 区域,不是 Brake-by-wire、Steer-by-wire、Fail-operational。

因为单 Kernel 架构永远有个问题:Shared Kernel Risk。

即:Kernel Bug 可能影响所有 Partition。

这也是为什么很多工程师对“Linux 替代 RTOS”仍然保持谨慎。Reddit 上不少嵌入式工程师就提到:PREEMPT_RT 虽然显著降低 latency,但并不意味着 Linux 自动变成“完美 RTOS”。这个判断其实很客观。

官方文档也承认了这一点——他们花了大量篇幅描述 kernel 内部的 FFI 策略、驱动认证要求、watchdog 兜底机制,这些都说明:单内核做 mixed criticality 是有代价的,需要大量补充工作。

11

 但行业方向已经很明显了

以前汽车行业是 ECU-centric,现在是Compute-centric。

以前核心问题是“这个 ECU 怎么开发?”,现在核心问题是“整个计算平台怎么编排?”

于是,Hypervisor、Container、Orchestration、Resource Isolation、Cloud Native、OTA Pipeline——这些互联网词汇开始大规模进入汽车。

12

Red Hat 的真正野心:

车载 Linux 发行版标准化

最有意思的是:Red Hat 其实并不是在“造车 OS”,它真正想做的是 “车载 Linux 发行版标准化”。

这很像 RHEL 在服务器领域做过的事情:

  • Kernel

  • Toolchain

  • Lifecycle

  • Security

  • Certification

  • OTA

  • Ecosystem

统一治理。

汽车行业过去最大问题之一就是:每家 OEM 都有一套魔改 Linux。维护几年以后,没人敢升级 Kernel。

现在 Red Hat 想干的事情非常明显:把汽车软件带进“长期可维护时代”。

Red Hat 还定义了 Assumptions of Use(AoU),明确在功能安全上下文中安全运行 Red Hat In-Vehicle OS 所需的条件。作为 Linux 的主要贡献者之一,Red Hat 的维护者帮助定义这些准则来支持安全部署。

13

 未来汽车 OS 的格局

最后一个很现实的问题:未来汽车 OS 会不会变成 Linux 一统天下?

我觉得不会。

更可能变成:

而 Adaptive AUTOSAR会越来越尴尬地夹在中间。

这也是为什么最近越来越多 Tier1 开始焦虑:未来自己到底卖什么?

因为当 Linux、Container、Cloud Native、AI Runtime 开始直接进入车内时,汽车软件行业真正的变化——可能才刚刚开始。

写在最后

Red Hat In-Vehicle Operating System 的官方文档透露了一个清晰信号:功能安全 Linux 不是“能不能做”的问题,而是“什么时候量产”的问题。

它的路径不是用 Linux 取代所有 RTOS,而是在 ASIL-B 这个中等级别安全需求的场景中,用统一内核+分区容器化替代传统的多 OS + Hypervisor 方案。

这条路能走多远,取决于:

1. Kernel 内部的 FFI 策略能否在实际量产中被验证

2. 开发者和 Tier1 能否接受“一个内核承担所有”的风险模型

3. 安全认证机构对这类新架构的接受程度

但有一点是确定的:Red Hat 已经把旗插在了这片土地上。接下来,就看行业怎么回应了。

参考资料:

- [Red Hat In‑Vehicle Operating System Datasheet](https://www.redhat.com/en/resources/in-vehicle-operating-system-datasheet)

https://www.redhat.com/rhdc/managed-files/li-in-vehicle-operating-system-detail-2123360pr-202505-en.pdf

- [Red Hat In‑Vehicle Operating System: Mixed Criticality (Detail)](https://www.redhat.com/en/resources/in-vehicle-operating-system-detail)

- [Towards Timing Isolation for Mixed-Criticality Communication in Software-Defined Vehicles (arXiv)](https://arxiv.org/abs/2508.13652)

- [Reddit: Linux is now a RTOS. PREEMPT\_RT Real-Time Kernel Support Finally Merged into Linux 6.12](https://www.reddit.com/r/embedded/comments/1fmkojo/linux_is_now_a_rtos_preempt_rt_realtime_kernel/)

作者微信:

/ END /

最新文章

随机文章