微軟開(kāi)始擁抱 Rust,Rust 正式入駐Windows 平臺(tái)!
微軟正在用 Rust 編程語(yǔ)言重寫(xiě)核心 Windows 庫(kù)!
上個(gè)月,在 Tel Aviv 舉辦的 BlueHat IL 2023會(huì)議上,Windows 操作系統(tǒng)安全總監(jiān) ”David dwizzle Weston“ 宣布 Rust 正式進(jìn)入操作系統(tǒng)內(nèi)核。
為什么微軟會(huì)選擇 ”Rust“ 重寫(xiě)核心Windows庫(kù)呢?
Rust 的優(yōu)勢(shì)
Rust 在TioBe 四月的編程語(yǔ)言排行榜中已經(jīng)進(jìn)入了前20了,可見(jiàn)其發(fā)展態(tài)勢(shì)迅猛!
Rust 專(zhuān)注于內(nèi)存安全和類(lèi)似的保護(hù),這將會(huì)減少代碼中很多不良錯(cuò)誤。
開(kāi)始擁抱 Rust
“實(shí)際上,接下來(lái)的幾周或幾個(gè)月內(nèi),我們將在內(nèi)核中使用 Rust 啟動(dòng) Windows,這真的很酷,”
“這里的基本目標(biāo)是將其中一些內(nèi)部 C++ 數(shù)據(jù)類(lèi)型轉(zhuǎn)換為 Rust 等價(jià)物?!?/p>
在微軟看來(lái),Rust這門(mén)語(yǔ)言是一種在代碼落入用戶(hù)手中之前捕獲和消除內(nèi)存安全漏洞的方法。
未來(lái)很多的內(nèi)核程序?qū)?huì)使用Rust 編寫(xiě)。
Rust 未來(lái)很有力量
Rust 在長(zhǎng)時(shí)間內(nèi)“叫好不叫座”的原因,除了新手不友好外,前Deepin CTO也在推特上分享了自己的見(jiàn)解,它認(rèn)為Rust 未來(lái)是一個(gè)很有力量的語(yǔ)言;
Rust 正式入駐Windows
微軟為什么擁抱 Rust? 主要有以下幾點(diǎn)原因:
1. 內(nèi)存安全:Rust 語(yǔ)言的設(shè)計(jì)目標(biāo)之一就是提供內(nèi)存安全保證,避免出現(xiàn)內(nèi)存泄漏、緩沖區(qū)溢出等問(wèn)題,這對(duì)于開(kāi)發(fā)高性能、高可靠性的系統(tǒng)非常重要。
2. 并發(fā)性能:Rust 語(yǔ)言的并發(fā)性能非常出色,它提供了輕量級(jí)的線程和異步編程模型,可以充分利用多核處理器的性能。
3. 生態(tài)系統(tǒng):Rust 生態(tài)系統(tǒng)非?;钴S,擁有豐富的第三方庫(kù)和工具,可以大大提高開(kāi)發(fā)效率。
4. 跨平臺(tái)支持:Rust 語(yǔ)言可以編譯成本地代碼,支持多種操作系統(tǒng)和硬件平臺(tái),可以方便地開(kāi)發(fā)跨平臺(tái)應(yīng)用程序。
5. 開(kāi)源社區(qū):Rust 語(yǔ)言是一個(gè)開(kāi)源項(xiàng)目,擁有龐大的開(kāi)發(fā)者社區(qū),可以獲得來(lái)自全球開(kāi)發(fā)者的支持和貢獻(xiàn)。
Windows 的 Rust 改造始于 2020 年,由 DWriteCore 開(kāi)始,DWriteCore 是 Windows 的 DWrite 引擎的 Windows 應(yīng)用程序 SDK 實(shí)現(xiàn),用于文本分析、布局和渲染。DWriteCore 現(xiàn)在由大約 152,000 行 Rust 代碼和大約 96,000 行C++代碼組成。
除了假定的安全性改進(jìn)之外,據(jù)說(shuō)使用OTLS(OpenType庫(kù)服務(wù))整形(替換)字形的性能提高了5%到15%?,F(xiàn)在,開(kāi)發(fā)人員可以使用所有這些功能。
Microsoft Windows 圖形設(shè)備接口 (Win32 GDI) 正在移植到 Rust 上,到目前為止有 36000 行 Rust 代碼。最新版本的 Windows 11 使用 Rust 版本啟動(dòng),該版本通過(guò)了所有 GDI 測(cè)試,但 Rust 端口目前在功能標(biāo)志后面被禁用。
“現(xiàn)在Windows內(nèi)核中實(shí)際上有一個(gè)SysCall,它是在Rust中實(shí)現(xiàn)的”
微軟遇到的問(wèn)題
Windows 在其自己的產(chǎn)品中修補(bǔ)了大約2006%的CVE列出的安全漏洞,這些類(lèi)型的錯(cuò)誤是核心內(nèi)核問(wèn)題;
隨著行業(yè)對(duì)內(nèi)存安全編程的支持越來(lái)越多,微軟對(duì) Rust 的探索變得更加熱情!
Rust 工具鏈致力于防止構(gòu)建和發(fā)布可利用的代碼,這在理想情況下減少了攻擊軟件弱點(diǎn)的機(jī)會(huì)。
微軟對(duì) Rust 的 熱衷是有限度的,在 Rust 中重寫(xiě) Windows正在進(jìn)行,但是還要保護(hù)更多的原生代碼。
另外微軟也會(huì)為Rust貢獻(xiàn)自己的力量,來(lái)推動(dòng)整個(gè)Rust的發(fā)展。