0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用Ada写了几十年的飞机程序,现在终于可以改用Rust了

jf_WZTOguxH 来源:AI前线 2023-09-05 16:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

针对具有更高安全需求的行业,AdaCore 表示将为其 Rust fork 提供长期支持。

对于安全问题较为重视的行业如今都对 Rust 语言抱有兴趣,就连微软最近也承认 Rust 可能是安全系统编程的最佳选项。但对于汽车、航空航天及国防等其他行业来说,开源语言那快速变化的特性又总会让人望而却步。

AdaCore 公司专门为这些比较特殊的行业提供软件开发与验证工具。AdaCore 最初诞生时专门支持 Ada 语言——这是一种由美国国防部于上世纪 80 年代初开发的编程语言,用以替代更早那些复杂且极易出错的语言。

AdaCore 公司产品经理兼技术策略师 Tony Aiello 表示,“从意愿上讲,人们其实越来越渴望把 Rust 引入那些以安全认证为重点的长期项目当中。我们感受到了这波趋势,也从客户那里了解到不少需求。他们目前的主要顾虑是当下的开源工具发展太快,而能够从开源社区处获取到的专业支持还不完善,导致他们迟迟不敢在 Rust 上迈出这重要的一步。”

Aiello 这里说的顾虑,是指客户担心开源选项不能像传统服务商那样在几天内修复 bug,或者帮助企业解决工具链中可能出现的深层技术问题。他承认,大多数开源项目都无法在几天之内响应上报的问题。

“但这种快速响应能力在航空航天和国防领域已经非常重要,特别是考虑到此类系统都有很长的使用寿命。我们面对的往往是飞行了几十年的飞机,这些机体上搭载的软件栈也大多稳定运行了几十年。”

作为另外一种需要长期支持的应用方向,人们对于 Rust 在嵌入式设备上的表现也抱有兴趣。

“很多人都吵着要使用 Rust,对这种新的内存安全语言充满热情。即使是在航空航天和国防等具有严格安全要求的领域,这样一份对于工作的热情和冲劲也同样难能可贵。”

古老的 Ada 编程语言

Ada 源于美国军方的一个计划,旨在整合美军系统中运行着上百种不同的程序设计语言编写的程序。其名是为了纪念埃达·洛夫莱斯(Ada Lovelace)而使用 Ada 命名。

也就是说 Ada 早期是美国军方的专用计算机语言,后来逐渐被应用到商业航空、铁路运输、科学航天器等领域。在 Ada 文档中的最佳案例上,其中有一个就是波音 777,该机型的软件 99% 是用 Ada 完成,其中制动系统完全用 Ada 来完成。

Ada 虽然在军事和航空领域应用广泛,但在商业领域使用场景有限。世界公认的 Ada 专家 Bruce Krell 曾言,自 1983 年 Ada 问世以来,他始终致力于 Ada 编程,专注于国防和航空领域。然而,自 1994 年他离开航空航天领域后,再未有机会使用 Ada。因为他遇到的所有商业工作都以 C++JavaC# 完成。他坦言,初入商业世界时,他感受到了一种文化冲击,对 C/C++ 和零软件工程的综合依赖犹如回到了恐龙时代。

至于具体有哪些项目使用了 Ada,从事 Ada 编程和教学 30 年,白发苍苍的 Jim Rogers 在 Quora 上回复道,如你所见 Ada 已被用于构建商用、民用飞机、军用飞机、卫星及其运载火箭的软件。F-22 战斗机的航电软件全部用 Ada 编写。“以前有一位老教授维护了一份清单,但他在 2014 年退休了,这份清单就从此再也没人能维护了。”

从 Ada 到 Rust

AdaCore 综合计算各类操作系统和硬件之间的组合,AdaCore 现可支持 50 多种不同平台。

Ada 的语法源自 Pascal,而且跟 Rust 也有很多共同点,特别是内存安全。二者都属于强类型语言,就是说会严格限定存放在变量当中的数据类型,由此防止因类型不匹配而导致的错误。

Aiello 还补充道,Rust 的类型强度高于 C 甚至 C++。与 Rust 一样,Ada 也是一种静态类型语言,就是说会在编译时(而非运行时)检查数据类型,从而防止错误的发生。

GNAT Pro 是 AdaCore 打造的开发平台,其中包含编译器、链接器、调试器和语言运行时。Aiello 表示,GNAT Pro 订阅用户可以使用 Rust 语言开发出可安全认证的嵌入式应用程序,并享受到 AdaCore 提供的技术支持。

Aiello 在采访中解释道,“我们提供所有服务选项并随附保障承诺,这跟大家以往的开源工具链使用体验完全不同。在实践当中,专业开发团队一旦在使用我们的工具时发现 bug,则可立即向我们提交工单,AdaCore 会尽快为您完成修复。”

打造 Rust Fork

AdaCore 之所以选择分叉 Rust,是为了更好地提供长期支持并实现向下兼容性。AdaCore 在其中采用了 Rust 编译器、build 加包管理器(Cargo),以及面向 x86_64 Linux 及各 Linux 交叉目标的调试器(gdb)。该公司表示,GNAT Pro for Rust 25 计划于明年 10 月正式推出,届时将提供与 gprbuild 的全面集成,同时带来先进的 Ada-Rust 双向绑定以支持更多平台。

“从某种意义上说,这将是一项相当独特的服务,也把我们与典型的开源软件市场区分开来。在典型的开源市场中,用户往往不清楚旧版本的编译器会出哪些问题。一旦在旧版本中发现 bug,问题可能长期得不到修复。因为每位贡献者都在继续前进、展望未来,所以对以往的缺陷并不是特别关注。这在某些开发环境中有其合理性,但却不适合那些需要长生命周期和稳定认证的应用场景。”

AdaCore 还通过 GNAT Pro Assurance 提供 Rust 技术支持。只要客户需要,这项计划就会持续通过分支为整个工具链提供长效支持。

为了支持这套 Rust fork,AdaCore 还会定期从更新流中提取反馈,不断听取客户对于功能的具体需求,确定将哪些内容整合到其版本当中。

Aiello 总结称,“我们会获取整个代码仓库,为其创建副本,并以此为基础持续更新多个分支。当我们将 Rust 移植到新平台时,也会全面推动支持包的上游化,保证移植成果能够反哺开源社区。”

对比 Rust,Ada 无疑可以算作一种“上古”编程语言。虽然 Ada 不会消亡,但年轻人也并不愿意去学它。如果 Ada 的应用领域从此逐渐能用 Rust 语言代替,看起来并不是坏事。

使用 Ada 的程序员,普遍也都不年轻了。但那些年老的 Ada 程序员看到 AdaCore 支持 Rust,心中却五味杂陈,跟我们想象中的欢欣鼓舞不太相同,他们实际上很担心 Ada 的覆盖范围会进一步收窄。

一位退休的 Ada 程序员表示很担忧 Ada 从此会被忽视。“一个典型的例子:当 Rational 在 80 年代中期出现时,他们击败了其他 Ada 开发环境。然后他们开始支持其他语言(都是出于良好的商业原因),对 Ada 支持开始减弱,最终,他们停止发展他们的 IDE, Rational Ada 也交给其他人了。”

另一位 Ada 程序员也对此表示赞同,他甚至预测不久后 AdaCore 会更名,以淡化 Ada 的重要性。“他们之前也支持多语言,比如 C 和和 C++ ,但(据我所知)他们从未支持 C 和 C++ 的进步(即对 C 和 C++ 的发展做出贡献),但现在他们对 Rust 的支持程度显然不一样。”

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程语言
    +关注

    关注

    10

    文章

    1959

    浏览量

    38903
  • ada
    ada
    +关注

    关注

    0

    文章

    16

    浏览量

    21965
  • Rust
    +关注

    关注

    1

    文章

    240

    浏览量

    7477

原文标题:用 Rust 拯救 60 岁老程序员:用 Ada 写了几十年的飞机程序,现在终于可以改用 Rust 了

文章出处:【微信号:AI前线,微信公众号:AI前线】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    轻松做出漂亮的LabVIEW界面-FlateUI2.0

    ,某种意义上将也是它的劣势。 知识爆炸的年代,难得的是深耕某一个领域和技术,几十年如一日,始终保持着热情。 在我的认知里,啥都会=啥都不会,除非你是达芬奇那样的天才。 不好意思,废话有点多了,小伙伴们可以
    发表于 12-05 14:37

    华为五大创新开启非洲移动产业黄金十年

    在2025非洲通信展(AfricaCom 2025)期间,华为无线网络产品线营销副总裁陈实发表“创新开启非洲移动产业黄金十年”主题演讲,表示非洲是充满活力的数字热土,华为将聚焦“新流量、新体验
    的头像 发表于 11-14 16:23 1155次阅读

    十年·NDI在中国|影像志:见证视频IP化的成长与未来

    十年前,NDI改变了世界;十年后,千视与NDI携手,共同定义未来!《十年·NDI在中国纪录片》从一个疯狂的愿景开始NDI的诞生,源于一个看似疯狂却极具远见的构想。它的创造者坚信:随着视频技术
    的头像 发表于 10-22 10:43 488次阅读
    <b class='flag-5'>十年</b>·NDI在中国|影像志:见证视频IP化的成长与未来

    浅谈SPICE模型参数自动化提取

    在过去的几十年里,半导体器件紧凑型模型已经从 BJT Gummel-Poon 模型中的几个参数发展到 MOSFET BSIM 模型中的数百个参数。
    的头像 发表于 10-16 16:21 818次阅读

    NDI 十年:诞生 · 愿景 · 发展 · 未来— 独家专访 NDI 创始人 Andrew Cross博士

    十年前,几乎没有人相信视频制作能脱离昂贵的基带设备,完全依赖电脑与网络;而今天,NDI已成为全球公认的IP视频制作标准。2025,既是NDI的十周年,也是Kiloview与NDI携手走过的第
    的头像 发表于 10-10 11:03 304次阅读
    NDI <b class='flag-5'>十年</b>:诞生 · 愿景 · 发展 · 未来— 独家专访 NDI 创始人 Andrew Cross博士

    手机长焦进化史:攀过十年,终抵云巅

    跨越十年的技术攻坚,凝聚成华为Pura 80 系列的“集大成者”
    的头像 发表于 08-15 03:29 891次阅读
    手机长焦进化史:攀过<b class='flag-5'>十年</b>,终抵云巅

    十年积淀,DPVR AI眼镜将正式亮相

    表示想要购买AI眼镜。一个新的智能设备时代,正在打开。在这个节点,深耕XR领域十年的DPVR(大朋VR),将带来它的首款AI智能眼镜——DPVRAIGlasses
    的头像 发表于 08-14 11:47 880次阅读
    <b class='flag-5'>十年</b>积淀,DPVR AI眼镜将正式亮相

    先进封装转接板的典型结构和分类

    摩尔定律精准预言几十年集成电路的发展。然而,逐渐逼近的物理极限、更高的性能需求和不再经济的工艺制程,已引发整个半导体行业重新考虑集成工艺方法和系统缩放策略,意味着集成电路产业已经步入后摩尔时代。
    的头像 发表于 08-05 14:59 2291次阅读
    先进封装转接板的典型结构和分类

    请问OpenVINO™ 是否支持 Rust 绑定?

    无法确定OpenVINO™是否支持 Rust 绑定。
    发表于 06-25 07:45

    UWB走向集成 迎来拐点

    ,Heinrich Hertz通过制造火花并通过宽带加载偶极子(loaded dipoles)发射出第一个UWB信号。随后的几十年里,UWB发展几经浮沉。直到1989,美国国防部创造“超宽
    的头像 发表于 06-05 09:44 1265次阅读
    UWB走向集成 迎来拐点

    机械工程师的九个段位,你现在处于哪一层?

    、工程师(项目负责人 ) 终于明白为啥大厂都在搞三维设计现在用SW/UG画图6到飞起,一键出工程图,自动检查干涉,直接生成加工程序。看着新来的实习生还在用CAD画二维图,忍不住想说
    发表于 05-28 13:47

    十年磨一剑,我的新书上市

    大家好,我是皮哥Peter,十年磨一剑,我的新书《打通Linux操作系统和芯片开发》上市!今天,新书开启5折优惠,满满的干货,高颜值,双色印刷,手感厚实,新书原价139元,限时半价,只要69.5
    的头像 发表于 04-01 07:33 571次阅读
    <b class='flag-5'>十年</b>磨一剑,我的新书上市<b class='flag-5'>了</b>!

    基于SEGGER的Ozone调试器和J-Trace工具跟踪Ferrocene的Rust应用

    20253月,SEGGER和Ferrous Systems合作,确保使用Ferrous Systems的Ferrocene工具链编译的Rust应用程序可以通过SEGGER的J-Tra
    的头像 发表于 03-14 11:27 1264次阅读

    JavaScript与Rust和WebAssembly集成

    偶然一次机会,接触Rust的代码。当时想给团队小伙伴做演示,发现自己并不能在移动端按照文档生成演示demo。我就想,要是Rust代码能转化成JavaScript就好了。结果一搜,还真有。
    的头像 发表于 01-24 15:43 795次阅读
    JavaScript与<b class='flag-5'>Rust</b>和WebAssembly集成

    睿创微纳五&amp;十年功勋员工颁奖大会圆满举行

    12月11日,睿创微纳五&十年功勋员工颁奖大会在烟台园区圆满举行,公司董事长带领核心管理团队为5、10功勋员工颁发纪念银币和金币。   百余名员工获颁纪念银币,以表彰他们五
    的头像 发表于 12-12 10:35 1170次阅读