Redian新闻
>
干掉 30 年祖传「屎山」代码,微软重写 Windows!

干掉 30 年祖传「屎山」代码,微软重写 Windows!

公众号新闻
转自:InfoQ

Rust 对 C 的颠覆已经开始。

微软正使用 Rust 编程语言重写其核心 Windows 库,这批内存安全性更高的代码已经被交付至软件开发商手中。

Windows 操作系统安全总监 David “dwizzle” Weston 在上个月于以色列特拉维夫召开的 BlueHat IL 2023 大会上,宣布 Rust 将正式入驻 Windows 系统内核

“在未来几周或者几个月内,大家将开始在内核中使用 Rust 来启动 Windows,这可太酷了。这项工作的基本目标,就是将一部分系统内 C++ 数据类型转换成 Rust 的形式。”

Rust 已经进入 Windows 内核

微软的重点是“消灭漏洞类”(killing bug classes),想用一种更为积极的方法来保证更安全的代码。他们希望通过内存安全的语言、CPU架构变更以及更安全的语言子集来实现这一点。

David Weston 这次演讲专注于内存安全语言。在 Windows 内核中,主要语言是 C,由于 MFC 和 COM 的原因,内核之外的大部分代码都是 C++,甚至 MSVC libc 实际上也是用 C++ 编写的,带有 extern "C"声明。但从 Windows Vista 开始,内核开始允许使用 C++ 代码(VC++ 获得了 /kernel 标志)。

目前微软主要改写了两个项目,DWriteCore 以及 Win32 GDI,包含了一些非常古老的代码。其中 Win32 GDI 写自 80 年代后期 90 年代初期,专为 286/386 设计。

微软首先将 Rust 引入到了 DWriteCore,它属于 Windows DWrite 引擎的 Windows App SDK 实现,用于文本分析、布局和渲染。

这项工作是从 2020 年开始的,目前 DWriteCore 包含约 15.2 万行 Rust 代码和 9.6 万行 C++ 代码。

DWriteCore 私有 API 使用的是 COM-like interfaces,公共 API 则全是 COM,这些地方很容易将 C++ 和 Rust 进行集成。

据介绍,完成这项工作,两名开发人员总共花了半年时间,包括编写代码以及做相应的测试。目前这些改进均已面向软件开发者开放。

David Weston 表示,这是一个非常有价值的项目,因为这个领域以安全漏洞而著称,而且改写后,性能提升也很惊人!除了预期中的安全改进之外,使用 OTLS(OpenType 库服务)据说能将 Shaping(替换)字形的性能提高 5% 至 15%。

另外,微软 Windows 图形设备接口(Win32 GDI)也在进行 Rust 移植,目前已拥有 3.6 万行 Rust 代码。Weston 强调说,对比 C++,Rust 不仅易于编写还易于理解。最新版本的 Windows 11 启动中使用的就是这个 Rust 版本,不过虽然已经通过了所有 GDI 测试,但 Rust 接口目前仍通过功能标志被禁用。

Weston 表示,“如今 Windows 内核中其实存在一个 SysCall,而它正是用 Rust 实现的。”

但微软对 Rust 的认可也并非无脑推广。Weston 解释道,“短时间内我们恐怕不会用 Rust 全面重写 Windows。虽然我们都很喜欢 Rust,但首先还是需要制定出完善的策略,包括保护更多原生代码。”

但必须承认,微软的认可、支持以及代码贡献正在令 Rust 变得愈发强大,这对整个开源社区也是件好事。

微软此举非常振奋人心

几年之前,微软就开始对 Rust 表现出兴趣,认为它是一种能在产品正式发布前捕捉并消除内存安全漏洞的好办法。自 2006 年以来,Windows 开发团队修复了大量由 CVE 列出的安全漏洞,其中约 70% 跟内存安全有关。

Rust 工具链一直努力防止开发者构建和发布存在安全缺陷的代码,从而降低恶意黑客攻击软件弱点的可能性。简而言之,Rust 关注内存安全和相关保护,有效减少了代码中包含的严重 bug 数量。

谷歌等行业巨头也已经公开对 Rust 语言示好。

随着业界对于内存安全编程的愈发重视,微软也在 Rust 身上显露出积极的探索热情。去年 9 月,微软发布一项非正式授权,Microsoft Azure 首席技术官 Mark Russinovich 表示新的软件项目应该使用 Rust、而非 C/C++。

现在,Rust 已经进入了 Windows 内核,Weston 表示微软 Windows 将继续推进这项工作,那么 Rust 很快就会得到广泛的应用。

作为 Python Flask 项目负责人兼 Sentry 公司安全工程师,开源软件开发者 Armin Ronacher 在采访邮件中指出,微软的青睐对于 Rust 这门语言非常重要。

“具体来讲,我希望微软能重用现有编译器,从而带来更好的 PDB(程序数据库)支持。目前的 Windows 在开发者工具的支持方面,还跟不上其他基于 DWARF(使用属性记录格式进行调试)平台的水平。”

Pydantic 公司创始人兼 Python/Rust 开发者 Samuel Colvin 也表示,“微软这种前瞻性的思维给我留下了深刻印象,但这也在情理之中。我相信微软是在工程师的施压之下才决定拥抱 Rust 的。当前,如果目标是构建一款强调性能或者较为底层的应用程序,那么 Rust 无疑是个明智的选择。”

Colvin 还提到,虽然市面上优秀的 Rust 工程师可能不是很多,但他还是认为寻找优秀 Rust 工程师要比寻找优秀 C/C++ 工程师更容易。

“虽然拥有丰富 Rust 开发经验的人不多,但很多工程师都乐于一试并认真学习。毕竟编写安全代码本身就不是简单的事,在 Rust 中至少相对没有那么困难。”

Colvin 最后总结道,“对于我们这些依赖 Rust 的开发者来说,微软使用并支持 Rust 的决定真的很令人兴奋。”

参考链接

https://www.youtube.com/watch?v=8T6ClX-y2AE&t=3149s

https://news.ycombinator.com/item?id=35729655

https://www.theregister.com/2023/04/27/microsoft_windows_rust/


·················END·················

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
微软再炸场!Copilot与Windows强悍集成,与OpenAI标准互通 ,开建AI超级生态微软将于今年晚些时候终止对Windows上Cortana的支持国产大飞机C919开启首次商业载客飞行;荣耀90 Pro今日发布;微软宣布Windows全球用户超10亿;富士康重金招.....ChatGPT重塑Windows!微软王炸更新,我终究是被取代了....Windows Copilot登场,ChatGPT默认用必应搜索,微软联手OpenAI的大宇宙来了30年老代码被干掉!微软用18万行 Rust 改写 Windows 系统内核Agustín Hernández:中美洲建筑背景下的未来主义巨构ChatGPT重塑Windows,微软开发者大会重磅官宣50+更新微软希望将Windows完全迁移到云端周润发拍片意外头破血流 缝5针笑称五福临门!陈妍希40岁生日合体陈晓 放话爱咋咋滴怼婚变 黄百鸣大阵仗回乡 广东百年祖屋变成景点ChatGPT重塑Windows!微软王炸更新:操作系统全面接入,Bing也能用插件了孙燕姿回应“AI孙燕姿”;阿里云回应裁员7%;微软CEO宣布:Windows的“AI时刻”来了;中国批准微软收购动视暴雪丨邦早报微软AI全宇宙开启:集成Windows、推出AI应用商店、Bing接入ChatGPT微软build 大会!ChatGPT重磅植入Windows!没有GPT的操作系统都老了?微软发布Windows Copilot,新的AI帝国初现|甲子光年弃用 Electron,微软重新设计 Microsoft Teams:速度提升 2 倍,内存减少 50%攒钱不如赞肌肉微软重磅开源 Visual ChatGPT! 一个月内斩获30K starWindows重磅更新!ChatGPT全面植入Windows系统!GPT-4版Windows炸场!整个系统就是一个对话机器人,微软开建AI全宇宙Build 2023亮点汇总:Windows原生支持rar格式、发布Windows Copilot...腥风血雨里的南明短命王朝(九)[歪解] Rolling down car windows法警射杀少年引发骚乱,少年祖母表示“不希望警察受到伤害”小娜再见!微软8年语音助手被判死刑,Windows Copilot本月开始预览微软深夜放出“王炸”!GPT-4 全面进入 Windows 11,10亿打工人被革命微软Copilot“杀疯了”:Windows引入AI助手、Bing接入ChatGPT,弯道超车的机会来了?句癖干掉 30 年“屎山”代码!微软用 Rust 重写 Windows 核心库取代C++!3.6万行Rust代码改写Windows内核,这门语言最早竟用来修电梯微软炸通Windows与ChatGPT全家桶!人手一个Copilot,AI宇宙降临晨跑,身体的下床气,,蜜蜂生活琐记:近期的欢乐友聚智能周报|英伟达股价一天涨出一个阿里巴巴、两个英特尔;微软6月上线AI版Windows;马斯克的脑机接口获准临床实验最伟大 Windows 降临,微软要用大模型彻底改变操作系统和交互
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。