跳轉到

2020:Rust 基金會前夜——企業全面採用與編譯器效能大作戰#

事件#

2020 年,AWS、Microsoft、Google、Meta 等公司相繼公開以 Rust 開發核心產品;8 月,Mozilla 因財務重整裁員,Rust 團隊被裁——同年社群加速推動成立獨立的 Rust 基金會(2021/2 正式成立)。

為何重要#

  • 企業採用的里程碑:
  • Microsoft:宣佈將以 Rust 重寫 Windows 部分元件,並公開表示「記憶體安全漏洞約七成,Rust 是解方」。
  • AWS:Firecracker(Lambda/Fargate 的 microVM 底層)以 Rust 寫成;委託 Rust 團隊開發 Bottlerocket 等。
  • Google:Android 團隊開始導入 Rust(2021 宣佈為官方支援語言)。
  • 獨立治理:Mozilla 裁員暴露了「語言依賴單一公司」的風險;Rust 基金會(AWS、Google、Microsoft、Huawei 等贊助)讓語言治理中立化。
  • 編譯器效能大作戰:rustc 增量編譯與平行前端持續改進,2020 年起編譯速度逐年顯著提升——補齊「Rust 編譯慢」這個最大痛點。

理論與實用原因#

  • 理論原因:記憶體安全從語言特性升級為資安政策——美國 NSA、CISA 後來(2022)正式建議以記憶體安全語言取代 C/C++,Rust 成為唯一無 GC 的選項。
  • 實用原因:雲端基礎設施(microVM、容器、資料庫)需要 C 級效能與 Java 級安全;企業投入需要治理中立與穩定承諾。

程式範例#

Firecracker 為何選 Rust——microVM 需要 C 級效能與零 GC 暫停:

// microVM 的 VMM(虛擬機器監視器) hot path:
// 每 Host 服務數千個 VM,GC 暫停 = 全部 VM 一起停擺
fn handle_kvm_exit(vcpu: &mut VcpuFd, guest: &mut Guest) -> Result<(), VmmError> {
    match vcpu.get_exit_reason()? {
        ExitReason::Io { port, .. } => guest.emulate_io(port)?,   // 直接操作硬體
        ExitReason::Hlt => guest.park()?,
    }
    Ok(())
}
// Java/Go 的 GC 不適合;C 的記憶體錯誤 = 安全漏洞;Rust 兼得

Microsoft 的痛點數據化——約七成漏洞是記憶體安全問題:

Microsoft MSRC 統計(2019 公佈):
  ~70% 的 CVE 屬於記憶體安全問題:
    緩衝區溢位、Use-After-Free、懸垂指標、重複釋放……
  → 結論:以 Rust 重寫 Windows 核心元件

編譯器效能改進——增量編譯讓「編譯慢」逐年緩解:

# 2020 年起 rustc 增量編譯與平行前端持續改進
cargo build              # 首次編譯慢
cargo build              # 增量編譯:只重編改動部分,秒級完成
cargo build -j 8         # 平行編譯單元

彌補了什麼缺陷#

彌補了「語言治理依賴單一公司(Mozilla 裁員風險)」與「Rust 編譯時間過長」的缺陷——2020 是 Rust 從社群專案轉為產業基礎建設的轉捩年。

相關條目#