Workflow
内存安全语言
icon
搜索文档
Debian APT宣布“Rust令”:六个月内不支持的架构将被淘汰
36氪· 2025-11-03 19:54
决策核心与动因 - Debian项目宣布自2026年5月起,其APT软件包管理工具将强制要求使用Rust工具链[1] - 决策主要动因是提升安全性,计划将解析deb、ar、tar文件以及HTTP签名验证等相关代码迁移至内存安全语言Rust,并采用更完善的单元测试方法[2] - 项目强调依赖现代工具和技术以向前发展至关重要,避免被老旧设备拖累[2] 技术迁移的具体影响 - APT工具当前使用C++编写,未来将同时包含C++和Rust代码,部分组件将用Rust重写[4] - 迁移将导致一些较冷门且缺乏Rust支持的硬件架构面临挑战,包括m68k、HPPA、SuperH/SH4和Alpha[4] - 具体而言,DEC Alpha、HP PA-RISC和Hitachi SH-4架构目前完全没有Rust编译器,Motorola 68000架构的Rust支持也不足以满足Debian要求[4] - 若特定平台无法编译运行Rust代码,则将无法运行未来版本的Debian系统[4] 社区反应与潜在后果 - 社区反应不一,有观点认为强制迁移轻视了不支持Rust的端口,将其视为“复古计算”而非严肃工程[5] - 有反对意见认为Rust尚未达到APT所需的状态,并质疑此决策[5] - 有理性分析指出迁移的安全性理由充分,且能推动Rust在更多平台的使用,但认为6个月的准备时间过短,部分架构因缺乏LLVM支持可能无法按时完成迁移[5] - 最终结果可能是:若6个月内无开发者修复端口的Rust支持,这些端口将只能使用旧版APT并被官方淘汰[5] - 此事也反映出更深层问题:维护特定端口的成本与开发者及用户社区规模直接相关,维护者时间有限,确保软件在仅占0.1%安装量的架构上编译是沉重负担[6]
告别漏洞百出的 C++!微软用 Rust 赌上未来,内核和 Office 都在“锈”化
程序员的那些事· 2025-10-05 20:56
微软推动Rust语言采用的核心战略 - 公司正积极采用Rust语言重写关键系统组件,以解决长期存在的内存安全漏洞问题,将安全问题从可能导致被攻击者接管的漏洞转变为可预测的系统崩溃[4] - 公司内部已出台强制性政策,在Azure等核心平台禁止新项目使用C/C++,并强制要求处理非可信数据的模块必须使用Rust语言编写[8][9] - 公司认为Rust等内存安全语言代表了安全软件工程的未来,是应对从边缘设备到云端各环节安全挑战的关键举措,并已获得美国国家安全局(NSA)等机构的公开支持[26][27] 具体实施案例与成效 - 在Windows系统内核中,已出现用Rust重写的win32kbase_rs.sys文件,成功将可能导致权限提升的漏洞转化为可预测的蓝屏崩溃,无法被攻击者利用[4][6] - 重写DirectWrite字体渲染器,2名开发者耗时6个月完成15.4万行代码,重写后运行速度更快且消除了原有类型的漏洞[6] - Azure Boost系统强制要求处理非可信数据的模块使用Rust,Hyper-V虚拟机监控程序也已开始采用Rust进行优化,包括ARM64架构模拟支持[9][10] - Office团队用Rust重写DiskANN语义搜索系统,在保持准确率的前提下性能大幅提升、内存占用降低,促使娱乐设备部门决定全面采用Rust[15][16] - Azure数据资源管理器的数据存储层和查询引擎迁移至Rust,目前可处理数百PB级别数据,系统包含35万行Rust代码,C++代码占比持续下降[16] 开发生态系统构建与推广 - 公司为驱动开发者构建了完整的windows-drivers-rs框架,旨在使Rust成为全球驱动开发者的首选语言之一,支持开发KMDF、UMDF或WDM驱动程序[18] - 公司计划创建安全包装器,以减少驱动开发中“不安全”Rust代码的使用,让大部分驱动代码能用安全的Rust编写,目前已有内部实验版本[19] - 内部调查显示,开发者度过初期适应期后对Rust评价积极,尤其青睐其带来的性能提升和彻底消除某类漏洞的能力,尽管对混合编程、异步调试等存在抱怨[21][22][23] 未来技术方向与行业影响 - 公司正在开发基于AI的代码迁移工具,利用GraphRAG技术生成代码库的语义表示,使语言模型能理解代码逻辑,从而自动将整个C++代码库迁移到Rust,以解决迁移的人力成本障碍[24] - 公司将Rust的应用从自身代码库延伸至整个生态系统,通过推动硬件厂商采用Rust编写驱动程序来提升Windows系统安全性,而非仅依靠自身努力[27] - Rust已被应用于公司最核心的系统,包括内核、虚拟机监控程序和加密库,且这一进程正在不断加速[28]