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

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

3天内不再提示

Rust效率领先C++两倍,内存安全成国家安全议题

微云疏影 来源:综合整理 作者:综合整理 2024-04-01 15:37 次阅读

最新消息,近年来Rust编程语言人气飙升,相比之下,C/C++表现稍逊色。Google近期公布了一项把项目由Go或C++代码转换成Rust的试水计划,所得成果令人惊艳——Rust开发者的输出量竟高达C++团队的两倍。

这项发现由谷歌安卓平台工具及库的工程总监Lars Bergstrom在日前召开的Rust Nation英国峰会揭示。尽管此前业内对Rust的安全性和稳定性存在一定争议,特别是其‘unsafe’关键字的存在令人担忧。但现今形势正在改变,部分原因是人们开始认识到非内存安全性所带来的挑战以及各国政府对关键基础设施软件安全性的关注,内存安全问题已被视为国家安全议题之一。

Bergstrom进一步指出,目前美国政府等机构高度重视软件在关键基础设施中的作用,而大型代码库中的大部分安全漏洞都是由内存安全性引发的。对于能够有效防止这些问题的系统如Rust,它正逐渐成为首选。

值得注意的是,微软Azure首席技术官Mark Russinovich早在2022年9月便呼吁新项目尝试使用Rust替换C/C++。如今,这种趋势已经从新项目扩大到了老旧代码的重构。今年初,Microsoft甚至发起了将C#代码转化为Rust的倡议。此外,像网络安全研究团队的Prossimo项目,就是在努力重写NTP、DNS、TLS等关键库的核心开放源码部分,以提高其内存安全性。

然而,并不是所有人都对此持肯定态度。C++创始人Bjarne Stroustrup坚持认为,借助合适的工具,C++同样可以提供像Rust这样的内存安全性,而且成本更低。而美国国家网络总监办公室发布的软件安全报告也引发了相关讨论,其中内存安全性只是软件安全挑战的一部分,不必过份放大。卡内基梅隆大学软件工程研究所强调,任何编程语言都有其优缺点,应根据具体项目需求进行选择。

然而,谷歌等Rust支持者的实际应用却证明Stroustrup的观点存在误区。Bergstrom指出,在将Go代码(内存安全性高但运行速度慢)转为Rust的过程中,谷歌团队在效率上取得了显著提升“尽管迁移过程需要的团队规模和时间与Go开发基本相当,但是内存利用率下降,漏洞率降低,代码质量得以提升”。

更大的惊喜来自于C++代码的迁移效果,“所有案例中,使用Rust构建和维护系统的劳动力减少了超过一倍”Bergstrom介绍道,“这对我们具有极大价值,因为C++代码维护成本极高,需要巨大团队投入大量精力,风险重重”。

此外,谷歌正在实施类似的Java至Kotlin的迁移项目。根据内部匿名调查显示,两种情况下开发人员掌握新语言并达到原有开发效率所需的时间大致相等。约三分之一的开发者表示,他们能用新语言在两个月后最大程度地发挥原有的工作能力;超过一半的开发者表示在四个月后即能适应,效率不低于原来。

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

    关注

    9

    文章

    2948

    浏览量

    58688
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72903
  • Rust
    +关注

    关注

    1

    文章

    223

    浏览量

    6388
收藏 人收藏

    评论

    相关推荐

    知语云智能科技揭秘:无人机威胁如何破解?国家安全新防线!

    方法,为国家安全筑起新的防线。 一、无人机威胁的现状与挑战 近年来,无人机滥用事件频发,从非法航拍到侵犯隐私,再到恐怖袭击和走私活动,无人机的潜在威胁不容忽视。这些事件不仅侵犯了公民的合法权益,也
    发表于 02-27 10:41

    [鸿蒙]OpenHarmony4.0的Rust开发

    背景 Rust 是一门静态强类型语言,具有更安全内存管理、更好的运行性能、原生支持多线程开发等优势。Rust 官方也使用 Cargo 工具来专门为
    的头像 发表于 02-26 17:28 317次阅读
    [鸿蒙]OpenHarmony4.0的<b class='flag-5'>Rust</b>开发

    谷歌捐款100万美元给Rust基金会,以增强C++Rust的交互性

    如今,谷歌多项核心业务仍以 C++为主要编程语言,虽然无法直接使用Rust替代现有的C++程序,但谷歌依然选择支持Rust基金会的“Interop Initiative”计划,帮助那些
    的头像 发表于 02-19 15:41 174次阅读

    鸿蒙OS之Rust开发

    Rust是一门静态强类型语言,具有更安全内存管理、更好的运行性能、原生支持多线程开发等优势。
    的头像 发表于 01-29 17:19 436次阅读

    Git开发者关注内存安全问题,探讨引入Rust语言

    根据最新披露的邮件讨论,Git开发团队热议在Git项目中引入Rust的可行性。作为一种开源的分布式代码版本管理工具,广泛运用于各种开发项目。尽管现在Git项目主要以C与Python为主要开发语言,但探讨显示,引入Rust能显著降低内存
    的头像 发表于 01-15 14:23 211次阅读
    Git开发者关注<b class='flag-5'>内存</b><b class='flag-5'>安全</b>问题,探讨引入<b class='flag-5'>Rust</b>语言

    AD7760手册中单端转差分的参考电路会对信号有两倍的放大如何修改?

    AD7760手册中单端转差分的参考电路会对信号有两倍的放大,这样就降低了一半输入信号范围,能否改成其他没有两倍放大副作用的电路呢?如何修改?谢谢!
    发表于 12-22 06:10

    AD采集外部信号发现读的原始值是实际值的两倍,为什么?

    同一个程序,测量板子自带的电平0,3V3以及DAC输出的电压都是准确的,但是测量外部电压时AD采集的结果均是实际电压的两倍。外部电压由信号发生器产生,已供地,是什么原因造成的
    发表于 10-17 07:35

    如何在Rust中读写文件

    Rust是一种系统级编程语言,它的设计目标是提供安全、并发和高性能的编程体验。Rust的特点在于其内存安全性和线程
    的头像 发表于 09-20 10:57 1208次阅读

    如何在Rust中使用Memcached

    Memcached是一种高性能、分布式的内存对象缓存系统,可用于加速动态Web应用程序。Rust是一种系统级编程语言,具有内存安全、高性能和并发性等特点。
    的头像 发表于 09-19 16:30 888次阅读

    首个Rust版sudo发布!

    sudo-rs项目则是用 Rust 编写的 sudo 和 su 的、面向安全内存安全的实现。官网声明中显示,sudo-rs 目前仅针对基于 Linux 的操作系统;运行 sudo-r
    的头像 发表于 09-01 15:59 525次阅读
    首个<b class='flag-5'>Rust</b>版sudo发布!

    人工智能领域如何践行总体国家安全观?

    生物安全国家安全的重要组成部分。人工智能可协助建立生物安全风险防控机制,保护生物安全。通过搜集、整合、分析生物安全大数据,人工智能技术可协
    的头像 发表于 08-25 16:34 1510次阅读

    C++内存管理operator new和placement new

    最近在看一些C++资料的过程中,说到在初始化列表中使用关键字new来分配新内存不是异常安全的,应该使用运算符new。
    的头像 发表于 07-22 09:58 476次阅读
    <b class='flag-5'>C++</b><b class='flag-5'>内存</b>管理operator new和placement new

    Rust开源社区推出龙架构原生适配版本

    Rust是近年来新兴的系统级编程语言,专注于安全性、并发性和性能。Rust拥有丰富的类型系统和所有权模型,可通过在编译时检查内存访问和并发问题,保证
    的头像 发表于 07-17 16:54 310次阅读
    <b class='flag-5'>Rust</b>开源社区推出龙架构原生适配版本

    使用C++编写通用库并在 Rust 中使用它 (WASI)

    使用 C++ 编写通用库并在 Rust 中使用它 (WASI) WebAssembly 简介 WebAssembly 是一种二进制指令格式,旨在成为一种低级虚拟机,可以在 Web 浏览器中以接近本机
    的头像 发表于 06-16 10:03 661次阅读
    使用<b class='flag-5'>C++</b>编写通用库并在 <b class='flag-5'>Rust</b> 中使用它 (WASI)

    取代C++!微软用Rust改写的Win11内核来了

    按照微软此前介绍,Rust 语言的优势在于极高的内存安全性,原来内核中大量的不安全的子例程在改写后消失不见。同时,Rust 代码简洁高效,移
    的头像 发表于 05-19 16:58 1106次阅读
    取代<b class='flag-5'>C++</b>!微软用<b class='flag-5'>Rust</b>改写的Win11内核来了