用 Rust 重写世界
本文探讨了“用 Rust 重写一切”这一流行趋势背后的驱动力与现实挑战。作者分析了 Rust 在内存安全、性能与并发方面的优势,同时指出大规模重写现有系统时面临的学习曲线、生态系统成熟度以及与旧代码兼容等问题,帮助读者理性看待这一技术潮流。
背景速读
- Rust 是由 Mozilla 开发、2015 年发布第一版稳定版的系统编程语言。它的核心承诺是:内存安全(不再有缓冲区溢出、空指针解引用等经典漏洞)不需要垃圾回收(GC),性能可与 C/C++ 匹敌。这使其成为"重写一切"运动的主角——人们相信,将系统级基础设施从 C/C++ 重写为 Rust 可以消除大量安全漏洞。
- 这一趋势的主线是美国白宫和国防部等机构公开推动使用内存安全语言。2024 年白宫报告敦促业界采纳 Rust 等语言,因 C/C++ 代码中的内存错误占所有安全漏洞的大部分。
- 领域包括:Linux 内核(从 6.1 版开始接受 Rust 代码)、Windows 内核(微软探索 Rust 重写组件)、Android(已用 Rust 重写大量代码)、macOS(嵌入式 Rust 驱动)、Firefox 的 CSS 引擎 Servo、curl、OpenSSH、sudo、sudo-rs、核心网络协议实现(如 Rustls 替代 OpenSSL)等。
- 现实阻力:许多软件已稳定运行数十年;Rust 的异步(async)模型仍在完善中;生态碎片化;学习曲线陡峭;编译速度慢;部分场景(如裸机嵌入式、实时系统)LLVM 后端限制明显。反对者指出"纯 C 实现经过数十年打磨,引入 Rust 可能引入新 bug"。
- 本文不持极端立场,而是讨论"在什么场景下重写是合理的?什么时候不该动?"——这是工程决策,而非信仰问题。