系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > IT快訊 > 詳細(xì)頁面

微軟詳解Rust為何是系統(tǒng)編程最佳選擇

編輯:jiayuan 2019-07-24 09:50:33 來源于:IT之家

  7月24日消息 微軟安全響應(yīng)中心(MSRC)前些天曾透露,為了改善應(yīng)用程序的安全狀況,他們正在探索使用Rust編程語言作為C、C++和其他語言的替代方案!而據(jù)最新消息顯示,MSRC團(tuán)隊(duì)首席云開發(fā)倡導(dǎo)者Ryan Levick近日也在一篇文章中解釋了為什么認(rèn)為Rust編程語言目前是業(yè)界采用的最佳選擇。

微軟詳解Rust為何是系統(tǒng)編程最佳選擇

  “首先,已經(jīng)有很多出色的內(nèi)存安全語言在微軟內(nèi)外廣泛使用,包括.NET語言(像是C#或F#)和其他語言(例如Swift、Go和Python)。我們鼓勵(lì)目前使用C或C++的人將其中任意一種語言納入考慮。不過現(xiàn)在談?wù)摰氖菍?duì)安全的系統(tǒng)編程語言的需求,此類工作負(fù)載需要C、C++和Rust能夠提供的速度和可預(yù)測的性能。通過垃圾回收實(shí)現(xiàn)內(nèi)存安全的語言不是系統(tǒng)編程的理想選擇,因?yàn)樗鼈兊倪\(yùn)行時(shí)間會(huì)導(dǎo)致不可預(yù)測的性能和不必要的成本。”

  性能和控制

  Levick指出,最好先考慮一下無法從 C和C++放棄的東西——性能和控制,就能更清楚地明白 Rust為什么是一個(gè)好的選擇。像C和C++一樣,Rust有一個(gè)最小的可選“運(yùn)行時(shí)”。Rust的標(biāo)準(zhǔn)庫同樣依賴于libc,但標(biāo)準(zhǔn)庫也是可選的,因此在沒有操作系統(tǒng)的平臺(tái)上運(yùn)行也是可能的。

  仍然像C和C++一樣,Rust為程序員在何時(shí)分配內(nèi)存以及分配內(nèi)存的多少上提供了精細(xì)的控制,使程序員能夠非常清楚地知道程序每次運(yùn)行時(shí)的確切執(zhí)行方式。在原始速度、控制和可預(yù)測性方面,這對(duì)于性能來說意味著什么?那就是,“Rust、C和C++可以用類似的術(shù)語來思考”。

  安全

  Rust與C和C++的區(qū)別在于其強(qiáng)大的安全保障,某種程度上來說Rust完全是內(nèi)存安全(memory safe)的。正如之前那篇文章提到的,微軟大約70%的安全問題是內(nèi)存安全問題。如果這些軟件用Rust編寫,那么這 70%的安全問題很可能就不存在。

  在系統(tǒng)編程中,有時(shí)程序員必須執(zhí)行無法靜態(tài)驗(yàn)證為安全的操作。Rust為程序員提供了將這些操作封裝在安全抽象中的工具,這意味著曾經(jīng)降級(jí)為代碼注釋或約定的東西可以由Rust編譯器靜態(tài)強(qiáng)制執(zhí)行。

  不僅僅是性能與安全

  Rust最初引起MSRC的興趣正是由于上述性能與安全方面的特性。但它的的魅力不止于此,已經(jīng)有其他微軟團(tuán)隊(duì)開始采用Rust,主要出于以下原因:

  根據(jù)微軟內(nèi)部調(diào)查,采用它的最主要原因是“精密性”(correctness)——“if it compiles, then it works”。

  Rust靜態(tài)地強(qiáng)制執(zhí)行程序的許多屬性,已經(jīng)遠(yuǎn)超內(nèi)存安全性,還包括空指針安全性和數(shù)據(jù)爭用安全性(即沒有來自兩個(gè)或多個(gè)線程的一塊內(nèi)存的不同步訪問)。

  Rust的豐富類型系統(tǒng)使編寫富有表現(xiàn)力的程序成為可能。 具有相關(guān)數(shù)據(jù)的枚舉和強(qiáng)大的trait系統(tǒng)等概念進(jìn)一步強(qiáng)化了Rust的目標(biāo),即盡可能使程序無錯(cuò)誤。

  Rust現(xiàn)有的社區(qū)對(duì)該語言有很大益處。雖然Rust仍然是一種年輕語言,但它擁有一個(gè)健康的生態(tài)系統(tǒng),既能夠促進(jìn)開源社區(qū)發(fā)展強(qiáng)大,又能夠支持生產(chǎn)用戶。

  Levick表示有足夠的理由相信Rust會(huì)有一個(gè)光明的未來,“雖然現(xiàn)在大規(guī)模采用Rust還為時(shí)過早,但早期采用Rust通常是非常積極且正面的”。他們相信Rust在編寫安全的系統(tǒng)軟件時(shí)會(huì)改變游戲規(guī)則。Rust提供編寫底層系統(tǒng)所需的性能和控制,同時(shí)使軟件開發(fā)人員能夠編寫更健壯、安全的程序。

  另外,MSRC在研究Rust時(shí)發(fā)現(xiàn)了一些問題,其中包括如何規(guī)范Rust的“不安全”(unsafe)超集的使用,缺乏與C++的一流互操作性,以及與現(xiàn)有Microsoft工具的互操作性!當(dāng)然,這確實(shí)對(duì)微軟采用Rust提出了挑戰(zhàn),但MSRC還是滿懷期待,“我們對(duì)這些可能性感到興奮。雖然還有許多關(guān)于Rust如何適應(yīng)整個(gè)Microsoft工程的問題需要弄清楚,但我們鼓勵(lì)其他人一同加入,認(rèn)真考慮這門語言,以滿足他們的系統(tǒng)編程需求。”

  MSRC博客原文:https://msrc-blog.microsoft.com/2019/07/22/why-rust-for-safe-systems-programming/

標(biāo)簽 編程語言

發(fā)表評(píng)論

0

沒有更多評(píng)論了

評(píng)論就這些咯,讓大家也知道你的獨(dú)特見解

立即評(píng)論

以上留言僅代表用戶個(gè)人觀點(diǎn),不代表系統(tǒng)之家立場

掃碼關(guān)注
掃碼關(guān)注

官方交流群 軟件收錄