0

0

取代C++!3.6万行Rust代码改写Windows内核,这门语言最早竟用来修电梯

王林

王林

发布时间:2023-05-30 21:31:04

|

1746人浏览过

|

来源于51CTO.COM

转载

取代c++,rust真的要重写万物了!

在得到Linux、谷歌、亚马逊云等大厂青睐后,最近的爆炸消息——

微软已经用3.6万行Rust代码改写了Windows内核

而且推进速度相当快,4月剧透消息,过了两周,Windows 11内部预览版已经用上了。

微软云Azure CTO在推特上激动喊话:

如果你加入了Windows 11 Insider Preview内测,你将首次体验到Rust支持的Windows内核!

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

取代C++!3.6万行Rust代码改写Windows内核,这门语言最早竟用来修电梯

重写的内核中,主要包括DWriteCore 以及Win32 GDI两个项目,并通过了Windows开机所有测试。

其中,Win32 GDI写于上世纪80年代末90年代初,是工龄30多年的老代码了。

如今之所以被Rust取代,微软给的理由简单粗暴:

Rust语言有着极高的内存安全性,原来内核中大量的不安全的子例程也在改写后消失不见。同时,Rust语言更简洁高效。

公开资料还表示,随着时间的推移,Windows内核对Rust的采用将被大幅扩展

不光是大厂喜爱,Rust还连续多年成为Stack Overflow开发者调查中“最受欢迎的编程语言”。最近Unix系统的基础工具sudo和su也要用Rust重写了。

不过有点意外的是,Rust最初被发明出来,竟然是为了修电梯???

怒爬21层楼后决定开发新语言

万事起源只在于2006年的某天,一位名叫格雷顿老哥(Graydon Hoare)住的那栋公寓,电梯又坏了。

第n次,他一边骂骂咧咧一边努力爬向自己位于21楼的家。他想不通,电梯系统咋就这么容易崩溃呢?不应该呀!

作为一名大厂码农,格雷顿老哥觉得,这事儿不是不能解决。

当时他29岁,正在开源网页浏览器Mozilla公司(火狐背后的公司)打工。作为业内人士,他深知大多数的电梯故障,都是编写程序的语言很容易意外引入内存错误,从而引发软件崩溃。

而当时电梯软件往往是用C或C++语言编写。

它们的优点是紧凑、快速,但问题是非常容易引发内存错误,导致系统崩溃,甚至是安全问题。

所以一不做二不休,格雷顿老哥为了不再爬楼,干脆决定搞个新编程语言出来。

目标就是不容易内存错误的语言,最好更短、更快。

于是,Rust语言诞生了。

而且Rust的取名,也很有意思。

Rust和一种真菌同名,中文学名植物锈病,格雷顿评价其“为了生存而过度设计”。

这种真菌生物结构完全是分布式的,空间上无单点失败,也就是说单独去掉哪部分都不影响它的存活,鲁棒性贼强。

在全生命周期中,Rust真菌共有5种生命形态,其中3种形态还能倒退回上一形态,几乎等同于蝴蝶还能变回毛毛虫重新生长。

而且,Rust真菌可以多宿主寄生,恰能映射Rust语言对语言间互操作性的重视。

取代C++!3.6万行Rust代码改写Windows内核,这门语言最早竟用来修电梯

△患有Rust的植物(密恐患者们对不起了!)

在单枪匹马个人开发几年后,2009年,Rust得到Mozilla公司研究院的支助;2010年项目对外公布。

研发过程中,Rust已经建立了一个活跃度极高的社区,任何开发者都可以直接给这个项目提bug,或者直接贡献源码。

2015年5月,Rust的1.0版正式发布。

仅仅一年光景,Rust就吸纳了无数的拥趸。2016年起,它连续7年被Stack Overflow开发者调查评为“最受欢迎的编程语言”

连续荣登榜首所依仗的优点,一是运行速度快,二是内存利用率高,三是防止段错误。

简而言之,是在某些部分可以取代C/C++的利器。

所以代码江湖流传着一种说法,把Rust比作跑酷,可以做高危险动作,但是不太容易伤害到自己。

相比之下,C++可以看作是在玩带火的电锯。

而凭借着开发Rust,格雷顿老哥也一战成名。

之后几年内,他还参与了Swift的开发。

说来这也是一段有意思的故事。相比于当团队leader,老哥似乎更喜欢做一线开发。

他曾在回应“为什么离开Rust团队”中表示,2013年前后那段时间个人情感生活遭受重创(离婚),导致他没有太多精力负责Rust团队,后面他还在Mozilla总做了些低调且不着急上线的项目,然后就离职了。

直到2016年初,他接到了苹果团队的一个电话,表示正在找帮忙开发Swift的程序员,“是一个非领导职位,我更喜欢”。

Tome
Tome

先进的AI智能PPT制作工具

下载

靠着安全性成为大厂宠儿

但到这里,Rust的传奇故事才说了一半。

凭借着“安全性高”的初衷,近几年它在大厂中的受欢迎度也越来越高。

不仅是Windows,Linux、Android这些主流系统也都先后拥抱Rust。亚马逊云、微软、谷歌和Rust的关系也一直不错。

之所以会如此,主要原因或许还是C/C++在内存安全方面,真的不太行。

比如微软几年前就对Rust很感兴趣了,他们将其认定为产品交付前消除内存安全漏洞的好办法。

2019年,微软承认其产品被CVE披露的漏洞中,有70%是因为使用C/C++后导致的内存安全漏洞。

而Rust工具链关注揪出代码中的潜在漏洞,这在理想情况下能减少代码被打击的可能。

另一边,Linux内核也已引入Rust。

去年,由Linux基金会主办的2022开源峰会上,Linus老爷子突然官宣,也许下一个版本就要把Rust加入进来了!

这意味着官方将把Rust for Linux的PR合并到Linux内核的主线里。

(Rust for Linux是一个呼吁Linux和Rust结合的组织)

要知道,此前光是Rust的支持补丁就已发布到第七版了。

当时现场听到这一消息,立刻掌声雷动,以至于Linus花了好一会儿才让大家平静下来。

几个月过后,Linux 6.1版本发布,内核增加了Rust支持,成为了C语言之外的第二种官方语言。

谷歌这边的动作其实更早。

2021年Android 12发布,即宣布支持Rust。从这以后,他们就一直在Android开源项目中扩大Rust的使用。

不过谷歌的做法不是立刻让Rust来替代C/C++,而是新代码用Rust来写。

从官方发布的数据里可以看到,C和C++还是占主导地位,Rust的比例在逐步提升。

取代C++!3.6万行Rust代码改写Windows内核,这门语言最早竟用来修电梯

而截止去年年底,谷歌表示,Android中用Rust写的部分,还没有发现任何安全漏洞

这个结果非常重要,因为它意味着Rust能有效防止Android中最常见的漏洞——也就是内存安全漏洞。谷歌22年的数据显示,内存安全漏洞在各类漏洞中的占比都非常高。

取代C++!3.6万行Rust代码改写Windows内核,这门语言最早竟用来修电梯

在许多C/C++写的组件中(如蓝牙、NFC等),每一千行代码中就会有1个漏洞。按照这个比例来换算,Rust很可能已经阻止了数百个漏洞

以及基于它高并发的优点,在Android中使用Rust,还能进一步平衡系统安全和延迟,一般来说一些安全措施会导致编程语言变慢。

比如使用新的UWB堆栈,可以节省几兆内存,并通过现有进程运行来避免一些IPC延迟。

亚马逊云对Rust也格外喜欢,因为它在节省能源上同样表现很nice

一项研究测试了27种编程语言,结果发现C和Rust在能源利用方面,比Java高效50%,比Python高效98%。

但C的问题已经说了很多遍了,内存安全漏洞多,所以综合这么一看,Rust又赢了。

取代C++!3.6万行Rust代码改写Windows内核,这门语言最早竟用来修电梯

实际上,大厂们对Rust已经不只是青睐,甚至是宠爱了。

2020年,Rust背后公司Mozilla宣布大规模裁员,Rust团队被裁掉,Rust的命运陷入巨大的不确定中。

为了规避掉这种隐忧,亚马逊、微软、谷歌、华为等大厂,直接共同发起了一个Rust非盈利基金会。承诺两年内投入约100万美元预算,支持Rust项目维护

而在业内,Rust的事迹更是数不胜数。

最近,两个类Unix的核心实用程序sudo和su正在用Rust重写中;此前,GitHub痛改自家搜索引擎基于Rust;Discord一个Go服务也用Rust重写了……

不过,Rust也存在缺点,比如学到后面会比较难,刚上手的开发速度也比Go、Java慢很多。

所以Rust好评度高,但是“卖座率”还比较一般,甚至会被打上“冷门语言”的标签。

尤其是国内对Rust招聘,简直可以用“少得可怜”来形容。

有网友抱着悲观态度:

取代C++!3.6万行Rust代码改写Windows内核,这门语言最早竟用来修电梯

为此,Rust也在进一步优化自身。

根据其发布的Rust 2024路线中,官方团队将在降低学习门槛、壮大生态连接等方面加大努力。

所以,后面Rust会怎么走下去,也还是值得期待了~

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

37

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

136

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

47

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

90

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

102

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

226

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

504

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

170

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

286

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 4.2万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 4.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号