微软计划使用 Rust 取代 C和C+

微软加速Rust战略:从C#到Microsoft 365的全面迁移之路 微软正加速推进Rust战略,计划将Microsoft 365核心服务从C#全面迁移至Rust,以提升内存安全性和性能。文章深入分析了迁移的技术挑战与机遇,包括双向互操作、并发模型重构等关键环节,并探讨了对开发者技能需求及行业生态的深远影响。 阅读详情

 

新智元推荐

来源:InfoQ

作者:王文婧

【新智元导读】微软近日提出,未来将使用 Rust 作为 C、C++ 以及其他编程语言的替代方案,以改善应用程序的安全性的计划。

近日,微软安全响应中心(MSRC)团队在官网更新文章,就近日提出的最新计划,即未来将使用 Rust 作为 C、C++ 以及其他编程语言的替代方案以改善应用程序的安全性的计划,从空间内存安全、时间内存安全、数据竞争等方面进行了进一步的深入补充。

首席安全技术经理 Gavin Thomas 表示,开发人员的核心工作不是担心安全性,而是做好功能开发,首先需要启用一种 “不会引入内存漏洞隐患” 的开发语言。显然,这一次的主角是 Rust。

过去 12 年,约 70% 的微软补丁针对内存漏洞

如今,内存漏洞已成为黑客攻击的主要对象。据微软最新调查数据显示,在过去 12 年里,约 70% 的微软补丁都是针对内存漏洞的。

自 2004 年以来,微软安全响应中心 (MSRC) 已经对每一个报告的微软安全漏洞进行了分类。从所有的分类中,人们得出了一个令人惊讶的事实:正如 Matt Miller 今年在 BlueHat IL 的演讲中所讨论的那样,大多数修复的漏洞和分配的 CVE 都是由开发人员无意中将内存损坏错误插入到其 C 和 C++ 的代码中造成的。这两种存在内存漏洞风险的编程语言允许开发人员在代码被执行的地方对内存地址进行细粒度控制。开发人员内存管理代码中的一个错误可能导致大量内存漏洞,攻击者便可利用这些错误造成具有危险性和侵入性的后果,比如远程代码执行 (RCE) 和权限升级漏洞(EoP)。

数据来源:微软安全响应中心网站

近年来,随着微软增加其代码库并在代码中使用更多的开源软件,这一问题并没有得以解决,反而变得更糟,而微软也并不是唯一一个暴露出内存漏洞的企业。

在官网发布的最新文章中,微软安全响应中心(MSRC)团队就如何解决内存安全问题进行了如下分析,

为了解决内存安全问题,需要采取几种不同的方式。C++ 中的 “现代” 构造(例如 span)能够在一定程度上预防某些内存安全问题。此外,我们应尽可能使用其它现代 C++ 功能(例如智能指针)。

然而,现代 C++ 仍然不具备全面的内存安全与数据争用机制。更重要的是,如果程序员不加以运用,这些功能本身将毫无意义;而且这些功能在规模较大,且较为模糊的代码库可能也无法奏效。再者,C++ 缺乏能够在安全抽象当中打包不安全代码的良好工具,这意味着虽然能够在本地级别强制执行正确的编码实践,但开发人员仍很难在 C 或者 C++ 当中构建出能够安全组合的软件组件。除此之外,我们应尽可能将软件最终迁移至具备全面内存安全特性的语言当中,例如,通过运行时检查以及垃圾回收机制,实现内存保护的 C# 或者 F#。毕竟,内存管理是一项极为复杂的功能,最好是确保必要时才与其打交道。

Rust 的优势

多年来,微软始终在寻找更安全的 C 和 C++ 的替代品。2016 年 6 月,微软曾开源 “Checked C”,这是 C 语言的一个扩展,它带来了一些解决安全问题的新特性,但依然没有彻底解决问题。由于自动内存管理,Microsoft 还有其他更安全的编程语言,C#和.NET 系列是一个,编译为 JavaScript 的 TypeScript 是另一个。这些语言被 Microsoft 及其客户广泛使用,但它们无法满足所有需求。对此,微软安全响应中心(MSRC)首席安全技术经理 Gavin Thomas 表示:“如果开发人员能够将确保内存安全的 .NET,C#等语言与高效的 C ++ 结合起来,那就太好了。也许我们可以。” 因此,Rust 成为了这项计划的主角。

据了解,Rust 创建于 2006 年,被创建者 Mozilla 称为 “C / C ++ 的替代品”。最初,它只是 Mozilla 的一个研究项目,旨在开发更安全、快速的编程语言以重写 Firefox 浏览器,大多数开发人员认为它是一个理论项目,而如今 Rust 正在逐步证明自己的实力。2016 年 8 月发布的 Firefox 48 采用了以 Rust 构建的 mp4 轨道元数据解析器,该解析器首次在 Windows 和 32 位 Linux 桌面提供。最近,Brave 浏览器用 Rust 替换了最初用 C ++ 编写的广告拦截组件。Cloudflare 和 Dropbox 目前也在生产系统中运行 Rust。

Rust 的显著特征包括:

零成本抽象

移动语义

保证内存安全

没有数据竞争的线程

基于特质的泛型

模式匹配

类型推断

最小运行时间

高效的 C 绑定

Rust 团队表示,它具有丰富的系统和所有权模型,可确保内存安全和线程安全。此外,它还提供文档,包含集成的包管理器和其他有助于提高开发人员工作效率的工具。更为重要的是,Rust 从一开始就设计了防止内存损坏的漏洞。它的语法也更为简单,由它编写的应用程序不会产生相同数量的错误,因此开发人员可以专注于扩展其应用程序,而非进行持续的维护工作。

根据 StackoverFlow2019 年开发者调查报告的数据显示,Rust 是如今最受欢迎的编程语言,因此更容易招募到相关开发人员。相比之下,在这项调查中,受访者将 C 列为第四个最讨厌的编程语言,C++ 则排名第九。

StackoverFlow2019 年开发者调查报告数据

据了解,目前,除 Mozilla 之外,全球有数百家公司正在使用 Rust,如 Amazon、Atlassian、Dropbox、Facebook、Google、Microsoft、Red Hat 和 Reddit 等。在国内,百度、字节跳动、 PingCAP、蚂蚁金服、知乎、SenseTime 等企业也都在使用 Rust。

Rust 存在的问题

然而,Rust 仍存在一些不足。据先前的一项调查显示,它需要改进的方面包括:

更好的人体工程学

更好的文档

更好的库支持

更简单的学习曲线

更多的 IDE 支持

一些用户在谈及为何不使用 Rust 的原因时表示,“尽管学习曲线和语言的复杂性仍是人们学习 Rust 的阻碍,但令许多人产生共鸣的一个方面是,只是还没有足够活跃的采用 Rust 的商业项目让人们参与其中…… 对于一些人来说,只要有强烈的动机,他们就可以克服 Rust 的学习曲线。” 此外,受缺少 IDE 支持的影响,约 10% 的用户正在寻找更好的 IDE 支持,而 5% 的老用户因此停用 Rust。

对于这项或将构建新的语言生态的计划,微软安全响应中心(MSRC)首席安全技术经理 Gavin Thomas 表示,“我们是一个响应组织,但我们也发挥积极的作用 “,“我们应该从一开始就努力防止开发人员引入问题,而不是为解决问题提供指导和工具 “。目前,关于何时在其产品或云服务上使用 Rust,微软还没有具体透露。

EM算法求解混合伯努利模型 本文记录了EM算法求解混合伯努利分布的推导,并提供了matlab实验代码。 阅读详情

相关推荐

CentOS 7下kkFileView 4.4.0离线部署全攻略(含LibreOffice 7.5配置避坑指南)

本文详细介绍了在CentOS 7环境下离线部署kkFileView 4.4.0的全流程,包括LibreOffice 7.5的配置避坑指南、中文字体解决方案以及企业级运维实践。通过本指南,用户可以在内网环境中快速搭建稳定可靠的文档在线预览服务,提升办公效率。

weixin_28481133的博客 290

彷徨编程十几年,终于盯上 Rust

现有的编程语言非常多,我们都习惯了要在性能、表达力和内存安全之间取舍,直到 Rust 横空出世。对于 Rust 这个新语言,很多人可能都听过,但是没用过。实际上,早从 16 年起,Rus...

梦醒人间 2120

AUTOSAR开发实战:NvM模块如何解决汽车电子中的EEPROM与Flash存储难题?

本文深入探讨了AUTOSAR中的NvM模块如何有效解决汽车电子系统中EEPROM与Flash存储的难题。通过分层架构设计,NvM模块实现了硬件抽象与统一管理,支持数据一致性检查、错误恢复等高级功能,显著提升了存储可靠性和耐久性。文章结合实战案例,详细解析了NvM的核心机制及工程优化方案,为汽车电子开发者提供宝贵参考。

e3f4g5的博客 564

Rust是否会取代C/C++?Rust与C/C++的较量

这篇文章探讨了Rust语言相对于C/C++的优势与挑战。通过分析Rust在内存安全、并发支持和性能方面的优点,以及C/C++的历史积淀、库支持和硬件控制能力,文章揭示了两者在现代编程中的地位和未来发展潜力。同时,文章展望了Rust与C/C++的共存与协作路径,适合软件开发者和技术爱好者阅读。

iShare_Carlos的博客 3757

【3D目标检测】环境搭建(OpenPCDet、MMdetection3d、Det3d)

在Conda虚拟环境中搭建MMdetection3d环境

qq_44703886的博客 4253

单细胞 | pySCENIC·转录因子分析(二)

接上一篇,pySCENIC分析完之后就可以进行可视化了,个人认为最重要的有三个图:rss点图,rank图,转录因子表达水平热图,3个图结合着看。3.可视化rank图,可以自己改一下plotRSS_oneSet参数让图更好看一点。4. regulon表达水平热图,转录因子表达水平同理,得到的图类似只是输入不一样。2.可视化点图:寻找cluster特异性转录因子。1.loom文件读入R,提取数据。

生信练习生 4285

2026 TIOBE榜单大反转,C语言狂升第2,Rust终究没替代它?

老牌语言逆袭,打懵一众新语言谁也没想到,在AI、大数据当道,各种新编程语言层出不穷的2026年,一款诞生半个多世纪的“老古董”居然杀疯了!2月最新TIOBE编程语言榜单一出炉

2601_95164343的博客 265

【AI智能体】Codex 开发聚合搜索应用项目实战操作详解

Codex 开发聚合搜索应用项目实战操作详解

congge 3096

Rust可以取代C++么?

C++与Rust深度对比:谁更适合未来开发? C++在高性能计算和系统编程领域占据主导地位,其优势在于直接内存操作、多范式支持和成熟生态。然而手动内存管理、编译速度慢和安全性问题成为主要痛点。Rust通过所有权系统实现了编译期内存安全,消除了数据竞争等隐患,同时保持高性能。但Rust的学习曲线陡峭,生态相对年轻,二进制体积较大。 从工程实践看,C++因庞大的存量代码和成熟生态难以被完全取代,而Rust更适合安全关键的新项目。

本博客分享软硬件一体化开发实战。硬件涵盖 PCB 设计、STM32 等 MCU 底层开发;软件包含 C++、Rust,Qt/QML、PyQt、Slint、TouchGFX、LVGL 各类 GUI 框架。方便软硬件开发者查阅学习。欢迎关注! 2474

树莓派 RP2350B 开发环境搭建

本文介绍了树莓派RP2350B开发环境的搭建过程。

张一西的博客 287

Python爬虫实战:构建药监局药品批准信息本地查询系统

在医药信息化时代,药品批准信息的快速查询对于医药从业者、研究人员和普通消费者都具有重要意义。国家药品监督管理局(NMPA)提供了官方的药品查询系统,但有时我们需要建立本地数据库以便批量分析或离线查询。本文将详细介绍如何使用Python爬虫技术,结合最新的异步爬虫框架和技术栈,构建一个完整的药监局药品信息本地查询系统。本系统将实现以下功能:自动化爬取药监局官网的药品批准信息数据清洗和结构化存储建立本地查询接口数据定期更新机制pythonimport os"""药品类型枚举"""

2201_76125261的博客 728

Rust 崛起,C 语言真的会被取代吗?老程序员客观分析

作为底层开发领域的两大巨头,C语言统治江湖半个世纪,Rust横空出世短短十几年就席卷全球。到底谁才是未来系统编程的王者?今天我们从多个维度全方位拆解,看完你就懂了!

yangda1111的专栏 442

继放弃 C/C++ 后,微软再组新团队,欲将 C# 代码改写为 Rust!

针对这一趋势,有外媒点评道,尽管微软最近裁了不少人,但近期其在持续的招聘上加大了对 Rust 技术的透露,也向科技行业的工程师和专业人士传递了一个明确的信息:即在竞争日益激烈的就业市场中,适应并获得新技能,如 Rust,变得至关重要。它还预示着行业中的一个重要趋势,即越来越多的公司趋向于更安全、更高效的编程语言,如 Rust,用于其关键服务。总体而言,对于 Rust 社区而言,这是个好消息,因为尽管微软目前没有用 Rust 替换他们的核心技术,但他们已经愿意在重要的底层服务上尝试使用 Rust。

IT界那些事儿 5573

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Microsoft to Replace All C/C++ Code With Rust by 2030 微软到2030年将用 RUST替换 C/C++,微软抛弃了自己的核心开发语言

微软计划在2030年前全面替换所有C/C++代码为Rust语言,现招聘首席软件工程师(雷德蒙德现场办公)推进该计划。团队将结合AI和算法构建代码处理基础设施,实现"1名工程师1个月重写100万行代码"的目标。应聘者需具备3年以上Rust系统级开发经验,编译器/数据库/OS经验者优先。该团队隶属于微软CoreAI部门,致力于通过创新工具大规模消除技术债务,并将成果推广至全行业。此前微软已宣布用Rust重写部分Windows内核,并禁止新C/C++项目开发。

RR1335 之代码才是动力源 1601

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

微软为什么从 C/C++ 转向了 Rust?

Rust 成为安全的首要编程语言。

优快云资讯 6609

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

微软用 18 万行 Rust 重写了 Windows 内核

由于MFC和COM的存在,内核之外的大部分代码都是C++,甚至MSVC libc实际上也是用C++编写的,带有extern“C”声明。但微软对 Rust 的支持并不是理所当然的,Weston 解释道,“恐怕我们不会很快用 Rust 完全重写 Windows,虽然我们都喜欢 Rust,但我们仍然需要有一个健全的策略放在第一位,包括保护我们更多的本机代码。简而言之,Rust 对内存安全和相关保护的关注有效地减少了代码中包含的严重错误的数量。微软的重点是“消除错误类”,并希望采取更积极的方法来确保更安全的代码。

探索人工智能领域 6802

继C / C ++之后,微软如何全面采用 Rust 的?

作者 | Tino Caer译者 | Arvin,责编 | 屠敏头图 | 优快云 下载自东方 IC出品 | 优快云(ID:优快云news)以下为译文:Microsoft拥有世界上最...

优快云资讯 3007

c语言被rust替代,微软计划将Rust作为C和C++的安全替代品

微软正在探索使用Rust编程语言作为C、C++和其他语言的替代方案,以此来改善应用程序的安全状况。自2004年以来,微软安全响应中心(MSRC)已对所有报告过的微软安全漏洞进行了分类。根据他们提供的数据,所有微软年度补丁中约有70%是针对内存安全漏洞的修复程序。▲微软每年约有70%的漏洞仍然是内存安全问题这样高的百分比是因为Windows和大多数其他微软产品主要使用C和C++编写,这两种“内存不...

weixin_42545503的博客 1516

阿里巴巴腾讯网易京东都宣布了各自的 AI 计划;微软推进裁员 1 万人计划;Rust 1.67.1 发布|极客头条

「极客头条」—— 技术人员的新闻圈!

极客日报 1万+

微软计划到2030年用Rust语言替换所有C和C++代码

微软计划到2030年用Rust语言替换所有C和C++代码

至顶AI实验室 303

C++的替代:微软如何使用rust?

原文:https://www.jb51.net/article/194804.htm 这篇文章主要介绍了微软如何使用rust的,帮助大家了解c++和rust这两门编程语言的联系与区别,感兴趣的朋友可以了解下 微软拥有世界上最大的C/C++代码库之一。从Windows、Office到Azure云,微软的所有核心产品都在该代码库上运行。但因为C++不是内存安全的语言,代码库中自然频频出现内存漏洞,大量的时间被耗费在修补漏洞上。 微软自去年开始寻找用以替代的编程语言来解决内存安全问题,寻找终有所得——.

xingsongyu的博客 1544

微软定目标:2030年,彻底删除C、C++代码,换成Rust

为了实现这个无法想象的目标,他们正在构建处理代码的基础设施,包括算法设施,智能体驱动的 AI 处理设施,他们可以让代码的转换规模化。纳德拉表示,公司在不同语言的 AI 代码生成方面取得了不同的成果,其中 Python 的进展更大,而 C++ 的进展则相对较小。随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。总的来说,Rust 是一个更先进的语言,它在保证了与 C/C++ 几乎相当性能的同时,从语言设计的根源上解决了内存安全和并发安全这两个核心痛点,并提供了现代化的开发体验。

2502_93987700的博客 1077

微软要“消灭 C/C++”,靠 AI 每月写 100 万行 Rust —— 是史诗级重构,还是史诗级翻车现场?

微软早在 2019 年就哭诉:“C/C++ 的安全性就像在悬崖边跳广场舞——你永远不知道下一次nullptr是来自用户输入,还是来自队友的strcpy。而 Rust 的核心卖点?编译器比你妈还操心你的安全// 传统 C:自由,但代价是自由落体// 💥 Segfault 预定// Rust:安全,但代价是和 borrow checker 辩论 3 小时// ✅ 编译通过,且没有 UB(Undefined Behavior)

weixin_44058951的博客 736

C++的替补选手:微软是如何应用Rust的?

全文共1986字,预计学习时长5分钟 图源:unsplash 微软拥有世界上最大的C/C++代码库之一。从Windows、Office到Azure云,微软的所有核心产品都在该代码库上运行。但因为C++不是内存安全的语言,代码库中自然频频出现内存漏洞,大量的时间被耗费在修补漏洞上。 微软自去年开始寻找用以替代的编程语言来解决内存安全问题,寻找终有所得——微软开始尝试使用Rust,并在一些情境下将其集成进代码库中。Rust是一种相对较新的编程语言,具有与C和C++相同的底层性能,并具备...

读芯术的博客 751
上一篇: Python基础教程(第3版)之一些内置的异常类
下一篇: 2019谷歌学术指标出炉,影响因子何去何从?
ctrigger
博客等级 码龄16年 1766粉丝 1575原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值