繼C / C ++之後,微軟如何全面採用 Rust 的?

csdn 發佈 2020-08-15T11:23:32+00:00

頭圖 | CSDN 下載自東方 IC。由於C ++不是一種內存安全的語言,因此在其代碼庫中會彈出很多內存錯誤,並且需要花費大量時間來修復它們。

作者 | Tino Caer

譯者 | Arvin,責編 | 屠敏

頭圖 | CSDN 下載自東方 IC

出品 | CSDN(ID:CSDNnews)

以下為譯文:

Microsoft擁有世界上最大的C / C ++代碼庫之一。從Windows、Office到Azure雲,微軟的所有核心產品都在它上面運行。由於C ++不是一種內存安全的語言,因此在其代碼庫中會彈出很多內存錯誤,並且需要花費大量時間來修復它們。

去年,Microsoft開始研究可以幫助解決其內存安全問題的替代程式語言。作為這些努力的結果,Microsoft已開始嘗試在某些情況下將Rust集成到其代碼庫中。

Rust是一種相對較新的程式語言,它具有與C和C ++相同的底層性能,並具有現代程式語言所期望的功能集。微軟認為Rust具有潛力,下述就是他們將Rust集成到產品中的方式。

在Rust中重寫Windows

其實,他們還沒有在Rust中重寫所有Windows;但是,他們感興趣的是Rust將如何適應其生態系統。微軟認為,70%的安全補丁都是為了修復內存相關的漏洞,並相信Rust在開發階段就能捕捉到這些漏洞。因此,他們讓一些工程師在Rust中重寫Windows的一些組件,以獲得一些開發人員的意見。

不幸的是,微軟一直對要重寫的組件名稱保密,但是,一位工程師描述說他正在開發「 低級的Windows系統」。這顯示了微軟對Rust潛力的信任。他們不只是想重寫一些小型服務或本地Windows應用程式,還可能重寫作業系統的核心組件。

工程師將他們在Rust上的工作描述為「總體上是積極的」,但確實注意到Rust中缺少C語言中可用的一些重要功能。然而,工程師們認為幫助開發Rust的這些特性是值得的。英特爾已經開始著手讓Rust的功能與C語言不相上下,微軟可以加入這項工作。

由於Rust缺少C語言的某些功能,因此該團隊發現Rust最適合新的或最近開發的Windows組件。如果Microsoft完全致力於將其部分代碼庫遷移到Rust,也就不足為奇了。他們已經在為Rust構建標準的Windows庫,該庫將具有C ++版本的所有功能。Linux也正在考慮將其一些內核遷移到Rust,因此我對兩個作業系統之間可能展開的激烈競爭不會感到震驚,究竟哪種作業系統可以將Rust代碼首先投入生產,讓我們拭目以待吧。

將Rust整合到Azure服務中

從Azure孵化器誕生的DeisLabs是一個專注於為Kubernetes提供構建工具的初創公司,他們最近選擇了Rust來構建其新產品Krustlet,這是一項允許開發者在Kubernetes中運行多個WebAssembly模塊的服務。Kubernetes由Google開發並用Go編寫。因此,大多數工程師在編寫其Kubernetes組件時往往會傾向於使用Go,因此DeisLabs選擇Rust是相當令人驚訝的。

最終,這個決定似乎有了回報。儘管員工確實注意到向Rust過渡很困難-注意到Rust的所有權理念的獨特性-但團隊僅用了一個月的時間就恢復了完整的工作效率。他們發現為空值編寫的測試更少,調試問題也更少。工程師們也對Rust的編譯器印象深刻,他們聲稱該編譯器可以抓住他們另一個項目中Go編譯器沒有發現的安全漏洞。他們的結論是,未來應該有更多的團隊考慮使用Rust,它比Go更適合開發Kubernetes。

一種新的程式語言

不久前,微軟曾研究過如何在Rust的啟發下創建自己的程式語言。該項目的負責人之一是C#的主要維護者,因此該語言似乎是Rust的一種版本,其語法與程式語言的C系列更加相似。這種語言稱為Project Verona,旨在解決系統編程中與內存相關的錯誤。一些人猜測,Project Verona最終可能會進入微軟的很多主要產品中,比如Windows、Xbox和Azure。

目前微軟仍然沒有任何關於Project Verona的用例。儘管他們聲稱該語言已經達到「完全內存安全」。但是,Microsoft仍然贊成使用Rust。它已經有了社區,並得到了Mozilla和Intel等公司的支持。與這些公司合作將使Rust變得更強大更快。

Rust的未來非常光明。在大公司的支持下,它的社區在不斷壯大,它的發展前景十分廣闊。在接下來的幾個月中,如果聽到微軟計劃以不同方式將Rust納入其公司的規劃中也就不足為奇了。Rust還針對微控制器和物聯網設備進行了優化,我們期待聽到Rust在這些領域中的用例。

原文:https://medium.com/the-innovation/how-microsoft-is-adopting-rust-e0f8816566ba

本文為 CSDN 翻譯,轉載請註明來源出處。

關鍵字: