Rust庆祝成立10周年
在 Rust 庆祝成立 10周年之际,Nick Flaherty 与 Adacore 的 Tony Aiello 和 Stephen Hedrick 讨论了嵌入式和任务关键型系统语言的演变
Rust 避免了 C 和 C++ 出现的内存问题,确保可以为安全关键型应用程序开发代码。但有几种看法阻碍了它,即没有足够的具有该语言经验的熟练工程师,而且工具还没有准备好。
Rust 语言和 Ada 形式语言的发展之间存在相似之处。Adacore 为安全关键系统开发工具,并于 2023 年推出了适用于 Rust 的 Gnat Pro 工具版本。
“我们的观点与广泛的主流观点不同。我们的重点是为高完整性应用开发工具,通常是在嵌入式领域,包括航空航天和国防、一些新太空、汽车、医疗,“Adacore 产品和创新主管兼负责推出 Rust 工具的产品经理 Aeillo 说。
“我们看到的是 Rust 的势头。对 Rust 的兴趣主要是由普通工程师推动的,他们希望找到一种前卫的方法,将其用于业余项目,并在他们的团队中鼓动 Rust 被采用。
“如果经理们犹豫不决,那不是工程师的问题,因为这还没有在我们的领域得到证实,而且对生态系统的完整性、安全标准的资格存在疑问,这些都是需要解决的问题,”他说
“这仍然是一门年轻的语言,很多东西会随着时间的推移而成熟。事实上,仍然存在着嗡嗡声,而且这种嗡嗡声正在增加并开始渗透到工业中,重要的是要注意,任何主流语言都有这些障碍需要克服,“现任 Rust 产品经理 Hedrick 说
反对使用 Rust 的一个问题是,开发人员可以正确地将 C 语言用于安全关键代码。
“我不相信正确地做 C。我认为 C 语言不适合用于安全关键应用程序句号,“Aiello 说。“Nvidia 选择了 Spark,并使用了完整的形式化方法来进行安全关键型开发,并且有一个案例研究。如果你要编写新代码,你不应该使用 C。
“当我们第一次开始谈论 Rust 产品时,我们很惊讶地发现并没有我们预期的兴趣激增。有很多对话,客户想了解 Rust,“Aiello 说。“快进到今天,我们还有更多潜在客户似乎非常接近认真对待 Rust,但人们在不想成为第一时犹豫不决。根据我们从安全关键联盟听到的情况,我持谨慎乐观的态度。
“有些事情看起来与 Ada 相似。它是一种类型安全的语言,这会减慢人们的速度,所以它有点相似,但我觉得差异多于相似之处。
其中一个因素是美国国防部于 1987 年发布的 Ada 授权,旨在标准化软件开发 DoD 并解决不同编程语言和方言的激增问题。
“授权出来时,Ada 还不到 10 岁,感觉编译人员还没有准备好,”Aiello 说。“Rust 的编译器已经准备好了,所以 Rust C 的速度和稳定性都相当快。发出的代码是高效的,但可能最重要的区别是,虽然在工作中,Rust 工程师比 C 少,但 Rust 背后有一个巨大的社区。社区的力量很难被低估。
Rust 生态系统
但他确实承认生态系统中的差距,尤其是修改条件/决策覆盖率 (MC/DC)。这是一个代码覆盖率标准,用于确保关键软件系统的可靠性和健壮性,它超越了基本覆盖率,以验证决策中的每个条件是否独立影响该决策的结果
“存在空白,我们正在填补它们。我们有一个 Rust 的覆盖工具,将在秋天推出。缺少 MC/DC 覆盖,这是绝对必要的。另一个差距是安全关键标准中的锈蚀编码标准。Rust 基金会正在构建一个编码标准,一旦完成,工具就会随之而来。与此同时,这是临时的,但目前它是一个更微妙的解决方案。
运行时库的认证,例如用于安全关键标准(如汽车ISO26262和工业IEC61508)的标准库,也是一个潜在的问题。
“Ada 具有丰富的运行时,而 Rust 具有丰富的运行时,”Aiello 说。“你可以不用 libstd,但 libcore 被视为该语言的基础。这是一个包含 36,000 行代码的大型库,它进入最终应用程序,需要经过认证。这将非常耗时且成本高昂,我们会与潜在客户讨论这个问题。然而,一旦完成了其中一些,它就会使整个社区处于更好的境地。
“将来可能会有反对重新编译库的压力。如果你想发布一个 Rust 库,你必须发布开源的,这可能会有专有代码的问题。这也不是该项目不知道的事情,“Aeillo 说。“关于何时以及如何解决专有代码的 API 问题,正在讨论。”
安全关键联盟包括 Rust Foundation、ARM、Ferrous Systems、OxidOS、Synopsys、HighTec EDV-Systeme、TrustInSoft、Veecle 和 Woven by Toyota,以支持该语言的使用,并通过现有的安全关键项目和标准(包括 SAE JA1020)扩展生态系统。
“由于安全关键联盟的积极工作,取得了很大进展,因此随着事情的进展,人们会认为这是一个更可行的选择,”Hedrick 说。“我们展示实际应用的行业采用案例越多,这就是我们要追求的目标。还有很多事情要做,而且有很大的潜力,这就是很棒的事情。
Aiello 预计 Rust 的授权不会有同样的压力。
“我不指望 Rust 会强制要求。我认为国防部对 ADA 的打击如此严重,我认为他们不会再这样做了。有力推动的地方是推动内存安全授权和推动像 CHERI 这样的内存安全硬件,“他说。“即使在今天,我仍然听说他们的客户存在压力,要求他们转向内存安全。”
AI 副驾驶还可以帮助使用 Rust 进行编码。
“我认为这是一个好主意,尤其是在学习它时,”Hedrick 说。“然后你可以随心所欲地变得复杂。随着潮水的上涨,随着越来越多的业余爱好者和社区机器人项目在 Raspberry Pi 和其他平台上出现,这些项目可以扩展到公司的研究。
下一篇:没有了!