作者:Pete LeVasseur 代表 Vision Doc Group
这是我们“愿景文档”系列文章的第三篇。本次我们希望深入探讨的一个领域是安全关键系统:这类软件一旦发生故障,可能导致人员伤亡或环境污染,典型应用场景包括汽车、飞机、医疗设备和工业自动化等。
我们与来自汽车(主要)、工业、航空航天和医疗等行业的原始设备制造商 (OEM)、系统集成商和供应商的工程师进行了交流。
我们的发现有些出人意料。讨论始终围绕着一个核心矛盾:Rust 的编译器强制保证,为功能安全工程师和软件工程师在这些领域花费大量时间预防的问题提供了强大支持。然而,一旦项目从原型阶段过渡到系统更高关键性的部分,生态系统的支持就会迅速减少。
例如,目前没有 MATLAB/Simulink 的 Rust 代码生成器,也没有用 Rust 编写或提供一流 Rust 支持的 OSEK 或 AUTOSAR Classic 兼容的实时操作系统 (RTOS)。用于验证和认证的工具链也仍在完善之中。
简要背景:是什么让软件成为“安全关键型”软件?
如果你从未涉足过这些领域,这里有一个简要说明。每个安全关键领域都有相应的标准,定义了一系列完整性等级:汽车行业采用 ISO 26262 标准,工业领域采用 IEC 61508 标准,医疗器械领域采用 IEC 62304 标准,航空航天领域采用 DO-178C 标准。
具体细节有所不同,但总体趋势相似:随着安全关键性等级的提升,对开发流程、验证和证据的要求也会相应提高,开发成本也随之增加。
这就产生了一种强烈的动机:将最关键的逻辑隔离到尽可能小的范围内,并将其他所有内容保持在较低的级别,这样成本更容易控制,开发速度也更快。
本文将主要采用汽车行业的术语(从 QM 常规质量管控,到 ASIL D 最高层级功能安全场景),因为我们的大部分访谈都来自该领域,但其中的模式具有普遍性。无论在哪个领域,低关键性与高关键性的开发场景都截然不同。
以下是来自原文的核心观点总结:
- Rust 已在安全关键型系统中投入生产使用,例如移动机器人(遵循 IEC 61508 SIL 2)和医疗设备(遵循 IEC 62304 B 类)。这条路已经走通了。
- Rust 的默认特性(内存安全、线程安全、强类型)与功能安全工程师花费大量时间预防的大部分问题直接相关。但随着软件关键性提升,可用的生态系统支持会相应减少。
- 在低关键性等级(如 QM)下,团队可以相对自由地使用现成的库,并在之后进行加固。但在高关键性等级(如 ASIL B 及以上)下,引入第三方依赖项变得论证困难,团队往往会选择重写代码、将其内部化,或者构建抽象层以便将来替换。
- 编译器承担了过去需要外部工具和人工审查才能完成的大量工作。过去通过 MISRA C 和 CERT C 等标准强制执行的许多流程性规范,现在转变为语言层面的设计,并由编译器进行检查。对于拥有庞大团队的长期产品而言,这种方式比单纯的“加强审查”更具可扩展性,也能让工程师对交付的系统更有信心。
- 稳定性是运营层面的关键:团队需要能解释版本升级会带来哪些变化,管理依赖项的更新与漂移,并将目标层的策略映射到他们的实际平台环境中。
- 异步编程对于中间件和事件驱动系统很有吸引力,但对于更高关键性的应用,其运行时复杂性和相关的资格认证问题尚未得到充分解决。
基于以上发现,文章提出了六项发展建议:寻找方法帮助安全关键型社区满足其特定需求;建立生态系统范围内的最低支持 Rust 版本 (MSRV) 约定;创建以认证目标为中心的准备情况检查清单;记录依赖项的生命周期管理模型;定义对安全案例友好的异步运行时的要求;并将 C/C++ 互操作性视为整体安全论证的一部分。
如果你正在使用 Rust 进行安全关键领域的开发,或者希望帮助简化相关开发工作,可以关注 Rust 基金会的安全关键 Rust 联盟以及正在制定的安全关键 Rust 编码指南。
官方博客原文:https://blog.rust-lang.org/2026/01/14/what-does-it-take-to-ship-rust-in-safety-critical/
演讲《沃尔沃汽车中的 Rust》
沃尔沃汽车公司已成功交付其首款完全采用 Rust 语言编写的 ECU(电子控制单元)。该 ECU 是沃尔沃全新 SPA2 电动汽车平台的一部分,此举在汽车行业内尚属首例。
在相关演讲中,Julius Gustavsson 将介绍这个标志性项目是如何诞生的,探讨为什么在汽车领域使用 Rust 是一个好主意,并分享从后端原型到符合车规级标准的架构与量产实践。
演讲观看地址:https://www.youtube.com/watch?v=vBofCW8j70A
对于从事嵌入式及C/C++传统领域开发的工程师而言,沃尔沃的这次实践为在安全关键环境中采用现代系统编程语言提供了宝贵的先行案例。想了解更多前沿技术实践与深度讨论,欢迎关注云栈社区。