編輯 | 云昭
出品 | 51CTO技術棧(微信號:blog51cto)
五年多過去,微軟已經把半條命交給了Rust。
眾所周知,微軟幾十年來一直都在折騰 Windows 的安全問題,其中的一個噩夢就是,去年7月的CrowdStrike全球范圍內計算機藍屏事件,這引起了地震級關注。
現在,這家公司打算用 Rust 來解決它,還希望所有人都跟著用。
別急,這就帶大家看到一家Rusty版本的微軟。微軟在Rust道路上,其實已經走得很遠了!
Windows的部分內核已經用Rust重寫了
9月,微軟 Azure CTO Mark Russinovich 在 RustConf 2025 發表了主題演講《從藍屏到橙蟹:微軟的 Rust 革命》中, 他把Windows內核漏洞的現狀比作“一個地下油庫,每次只漏幾滴油,但一直在漏”。
圖片
問題在于:C 和 C++ 。代碼雖然看起來沒問題,但崩潰起來會異常慘烈,甚至被很容易被黑掉。微軟自己的內核,每個月都在 Win32k.sys(負責圖形和窗口的部分)里漏出提權漏洞。
于是,他們開始用 Rust 重寫部分內核。不是全部,只是一些模塊。如果你現在翻一下 Windows 的 System32 文件夾,就會看到一個 win32kbase_rs.sys 文件,那就是跑在內核里的 Rust 代碼。
為什么Rust版本的內核這么管用?
關鍵點在于:安全研究人員在 Rust 版本里找到漏洞時,系統會直接崩潰,而不是被攻擊者利用,Russinovich 說。
“我們認為這是成功,”他說。“如果是 C++ 寫的,這個漏洞可能會導致權限提升,而不是一個不可利用的藍屏。”
微軟還重寫了 DirectWrite(字體渲染器),這個模塊多年來問題不斷。兩個開發者花了 6 個月,寫了 15.4 萬行 Rust 代碼。新版本不僅比舊的快,還沒那些老毛病。
Rust 全面滲透 Azure
除了Windows內核,作為自己管理下的 Azure 部門,更是身體力行。
Russinovich 多年來在微軟內部推動 Rust。早在他有權下達正式命令前,他就告訴團隊:別再用 C/C++ 開新項目,除非能接受垃圾回收,否則就用 Rust。
現在,作為 Azure CTO 兼副 CISO,他把話說死了:
“用或新增 C++ 風險太大,不能做。”
實際落地起來,動作是真得猛:
- Caliptra 硬件根信任 從 ROM 到固件到模擬器,全都用 Rust 寫。
- Azure Boost(管理服務器、處理網絡卸載的系統)規定:所有處理“不可信輸入”的地方必須用 Rust 重寫,新 Agent 也要用 Rust。
- Hyper-V(微軟的虛擬機管理器,最安全的軟件之一,1.5ms內啟動)已開始 Rust 化,ARM64 模擬支持就是 Rust 寫的。微軟還推出了 OpenVMM(開源虛擬機管理器),兼容 Hyper-V、Windows、Linux 和 KVM,完全用 Rust 寫。
- 還有 Hyperlight 項目,一個用 Rust 寫的開源庫,用虛擬化保護來安全執行小型函數調用。
此外,今年微軟還推出了 Azure Rust SDK。
Office&數據系統也換Rust重寫了性能更好、內存占用更少
Office 碰到的問題是:DiskANN(語義搜索系統)能支撐 Bing 的幾百個節點,但扛不住 Office 的數百萬文檔。
結果,團隊直接用 Rust 重寫了。性能更好、內存占用更少。Office 的部分團隊甚至說服自己“全盤上 Rust”,覺得連 C# 也不如 Rust 的并發處理。
Azure Data Explorer 則展示了大規模遷移的過程:一個開發者花了一年把存儲層移植到 Rust,后來連查詢引擎也跟上。現在它處理數百 PB 數據,Rust 代碼 35 萬行,C# 還有 230 萬行,C++ 越來越少。
Rust 與現有系統的集成
微軟發布了一個 MSBuild 的 Cargo 插件,讓團隊能把 Rust 模塊嵌入 C++/C# 項目。
Russinovich 直言這是出于現實考慮:“我們不能讓團隊直接丟掉數百萬行能跑的代碼。”
插件機制很簡單:Rust 代碼用 Cargo 編譯,MSBuild 把它當作依賴處理。但為此微軟花了大量精力解決鏈接和 ABI 的兼容問題。插件已 開源,方便其他公司復用。
給AI用的《實用 Rust 指南》
微軟還發布了內部的 《Pragmatic Rust Guidelines》 —— 企業級 Rust 開發手冊,分兩版:
- 人類版:給新人看,涵蓋錯誤處理模式、FFI 最佳實踐、異步運行時選擇等。
- AI 優化版:專門為 Copilot 這類 AI 助手格式化,可以直接放進提示詞里,AI 就會遵循。
這表明微軟不僅重視開發者,也考慮 AI 輔助編程的普及。
圖片
重寫“皇冠上的明珠”:SymCrypt
Russinovich 宣布微軟正在用 Rust 重寫 SymCrypt —— 微軟的核心加密庫,支撐 Windows、Azure 和 Office 的所有加密。
更重要的是,微軟研究院使用 Rust 的形式化驗證工具 來證明新代碼的數學正確性,并能反向轉譯回 C++ 方便集成。
新的后量子算法(如 ML-KEM)也直接用 Rust 從零實現。這意味著微軟不僅在試點,而是把 Rust 定位為加密領域的主力語言。
不止,就連三方驅動也要Rust化
更激進的是,微軟還希望硬件廠商和驅動開發者用 Rust 寫驅動。他們搞了個 windows-drivers-rs 框架,把 Rust 接到 Windows 驅動工具包(WDK):
- wdk-build:把 Cargo 接入 Windows 構建系統
- wdk-sys:提供 Windows 驅動 API 的原始訪問
- wdk:提供更安全的封裝
- cargo-wdk:像普通 Rust 項目一樣創建和編譯驅動
你現在已經能寫 KMDF、UMDF、WDM 驅動,并在 Windows 11 上加載運行。不過因為 Windows 內核 API 不是為內存安全設計的,很多地方還得寫不安全的 Rust。微軟正在開發安全封裝,讓大部分驅動都能用“安全 Rust”。
微軟內部開發者一開始也對Rust頭疼
微軟內部調研發現,開發者一開始會被 Rust 嚇到,尤其是 C++ 出身的人。但幾個月后,他們適應了 Rust 的借用檢查器,甚至覺得寫起來更爽。
他們最喜歡:性能提升 + 消滅 bug 類別。最不喜歡:
- 混用 C++ / C# 痛苦
- 異步調試難
- 動態鏈接有問題
但 Rust 的魅力就在于,即使吐槽這些,沒人想放棄 Rust。
微軟移植的秘密武器:用AI把C++翻譯成Rust
微軟正在研發 AI 工具,可以用 GraphRAG 技術自動把整個 C++ 代碼庫翻譯成 Rust,保持原有結構和功能。
Russinovich 演示了一個工具,能把 Python 應用自動翻譯成 Rust,并保持項目結構與功能一致。
他展示了一個 200 行左右的 Python 橫版小游戲。傳統 LLM 翻譯出來的是“垃圾代碼”,而 GraphRAG 工具能生成 可編譯、可運行的 Rust 版本。
雖然還不清楚能否擴展到百萬行 C++ 工程,但如果成熟,這將解決 Rust 最大的 adoption 障礙:移植成本過高。
微軟的半條命已經交給了Rust
“我們相信,Rust 這樣的內存安全語言代表了軟件工程的未來。”
美國NSA 也早在 2022 年支持遷移到內存安全語言,Linux 內核也已支持 Rust。行業趨勢正在形成。
微軟希望硬件廠商寫 Rust 驅動,自己就不用獨自扛安全大旗。只要安全改善能被證明,工具足夠完善,生態就能慢慢轉過來。
而早期結果表明:Rust 代碼在關鍵系統里能“安全失敗”,而不是被利用。微軟已經在內核、虛擬化、加密庫中落地,現在他們希望整個生態跟上。
Russinovich 坦言:Rust 正在滲透微軟的核心基礎設施,并且只會加速。驅動框架只是這場大變革的最新一步。”
從Windows內核、Office數據系統的重寫,再到與現有軟件的集成和GraphRAG技術的大量代碼移植,再到三方驅動框架的Rust化,可以看出微軟對 Rust 的投入遠不止“嘗試”。
可以確定的是,結合 AI 翻譯工具和無縫構建集成,Rust 的門檻正在降低,可能引發行業拐點。
而Rust的普及,注定離不開軟件巨頭們的傾力投入。
就比如微軟,已經把半條命押注在Rust上。
參考鏈接:https://thenewstack.io/microsofts-rust-bet-from-blue-screens-to-safer-code/




























