欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++的替代:微軟如何使用rust?

 更新時(shí)間:2020年09月03日 10:15:43   作者:讀芯術(shù)  
這篇文章主要介紹了微軟如何使用rust的,幫助大家了解c++和rust這兩門編程語言的聯(lián)系與區(qū)別,感興趣的朋友可以了解下

微軟擁有世界上最大的C/C++代碼庫之一。從Windows、Office到Azure云,微軟的所有核心產(chǎn)品都在該代碼庫上運(yùn)行。但因?yàn)镃++不是內(nèi)存安全的語言,代碼庫中自然頻頻出現(xiàn)內(nèi)存漏洞,大量的時(shí)間被耗費(fèi)在修補(bǔ)漏洞上。

微軟自去年開始尋找用以替代的編程語言來解決內(nèi)存安全問題,尋找終有所得——微軟開始嘗試使用Rust,并在一些情境下將其集成進(jìn)代碼庫中。Rust是一種相對(duì)較新的編程語言,具有與C和C++相同的底層性能,并具備現(xiàn)代編程語言應(yīng)有的功能集。

微軟認(rèn)為Rust頗具潛力,本文就將介紹微軟將其用在產(chǎn)品中的方式。

用Rust重寫Windows

微軟雖然尚未使用Rust全面重寫Windows,但正在致力于研究如何使Rust適應(yīng)其生態(tài)系統(tǒng)。據(jù)微軟估算,在推送給計(jì)算機(jī)的安全補(bǔ)丁中,有70%都是為了修補(bǔ)內(nèi)存有關(guān)的漏洞,他們認(rèn)為Rust可以在開發(fā)階段捕獲這些漏洞。因此,微軟委托一些工程師用Rust重寫Windows的部分組件,從而獲取開發(fā)人員的一些意見。

雖然微軟沒有公開重寫哪些組件,但一名工程師稱,他正在針對(duì)性地改造部分“Windows的底層系統(tǒng)”,這體現(xiàn)出了微軟對(duì)Rust的潛力頗具信心。微軟不僅計(jì)劃重寫一些小的服務(wù)和Windows本地應(yīng)用程序,還可能重寫操作系統(tǒng)的核心組件。

工程師們稱涉及Rust的工作“整體前景是樂觀的”,但也明確指出Rust不具備C的一些重要功能,不過這些工程師們也認(rèn)為有必要為Rust開發(fā)這些功能。

英特爾已經(jīng)開始致力于讓Rust實(shí)現(xiàn)與C相同的功能,微軟也或?qū)⒓尤肫渲?。由于Rust缺少C的一些功能,該團(tuán)隊(duì)發(fā)現(xiàn)Rust將最適用于新近開發(fā)的Windows組件。假如微軟將部分代碼庫遷移到Rust,我也不會(huì)感到吃驚。

微軟已經(jīng)為Rust搭建了一個(gè)標(biāo)準(zhǔn)Windows庫,它具備C++版本的所有功能;Linux也在考慮將一些內(nèi)核遷移到Rust。這兩大操作系統(tǒng)之間有可能展開競(jìng)爭(zhēng),看誰能最先將Rust代碼投入生產(chǎn)。

將Rust整合進(jìn)Azure服務(wù)

DeisLabs是Azure的孵化器項(xiàng)目之一,它致力于為Kubernetes構(gòu)建工具。近來,它選取Rust來開發(fā)新產(chǎn)品Krustlet,允許開發(fā)者在Kubernetes中運(yùn)行多個(gè)WebAssembly模塊。

Kubernetes原本由Google開發(fā),以Go語言寫成。大多數(shù)工程師傾向于使用Go來為Kubernetes編寫組件,DeisLabs選擇Rust可謂驚人之舉。

最終,這一決定似乎有所成效。雖然員工的確提到了由于Rust獨(dú)特的所有權(quán)概念,轉(zhuǎn)換為Rust的過程十分困難,但該團(tuán)隊(duì)僅用了一個(gè)月就回到了全速工作狀態(tài),他們發(fā)現(xiàn)需要為空值寫的測(cè)試以及調(diào)試的問題都越來越少。

工程師們也對(duì)Rust的編譯器印象深刻。他們稱該編譯器能夠找到另一個(gè)項(xiàng)目中的安全漏洞,而Go的編譯器則未能做到這一點(diǎn)。他們總結(jié)說,應(yīng)該有更多的團(tuán)隊(duì)考慮在將來的工作中使用Rust,該語言可能比Go更適合Kubernetes的開發(fā)。

一種新的編程語言

不久之前,在Rust的啟發(fā)下,微軟開始著手調(diào)研創(chuàng)造自己的編程語言。該項(xiàng)目的負(fù)責(zé)人之一是C#的主要維護(hù)人員,因此這一編程語言似乎是另一種版本的Rust,但在語法上更類似C類編程語言。

這一語言被稱為“Project Verona”,致力于在系統(tǒng)編程中解決內(nèi)存漏洞。一些人推測(cè)ProjectVerona可能將在許多微軟主要產(chǎn)品中投入使用,例如Windows、Xbox和Azure。

然而,微軟最終仍沒有實(shí)際應(yīng)用ProjectVerona。微軟的確聲稱該語言已經(jīng)“完全內(nèi)存安全”,但依舊選擇使用Rust。Rust已經(jīng)擁有了完善的社區(qū),并且得到了Mozilla和英特爾等企業(yè)的支持。有了這些企業(yè)的合作,Rust將會(huì)更迅速地成長(zhǎng)為更強(qiáng)大的語言。

憑借大型企業(yè)的支持和社區(qū)的不斷發(fā)展,Rust的前途不可限量。在接下來的幾個(gè)月中,即使微軟計(jì)劃以不同方式將Rust納入企業(yè)中也不足為奇。Rust針對(duì)微控制器和物聯(lián)網(wǎng)設(shè)備也進(jìn)行了良好的優(yōu)化,這些領(lǐng)域的企業(yè)有望將Rust投入使用??梢哉f,Rust的未來一片光明。

以上就是C++的替代:微軟如何使用rust的詳細(xì)內(nèi)容,更多關(guān)于rust替代c++的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Rust結(jié)構(gòu)體的定義與實(shí)例化詳細(xì)講解

    Rust結(jié)構(gòu)體的定義與實(shí)例化詳細(xì)講解

    結(jié)構(gòu)體是一種自定義的數(shù)據(jù)類型,它允許我們將多個(gè)不同的類型組合成一個(gè)整體。下面我們就來學(xué)習(xí)如何定義和使用結(jié)構(gòu)體,并對(duì)比元組與結(jié)構(gòu)體之間的異同,需要的可以參考一下
    2022-12-12
  • Rust使用kind進(jìn)行異常處理(錯(cuò)誤的分類與傳遞)

    Rust使用kind進(jìn)行異常處理(錯(cuò)誤的分類與傳遞)

    Rust?有一套獨(dú)特的處理異常情況的機(jī)制,它并不像其它語言中的?try?機(jī)制那樣簡(jiǎn)單,這篇文章主要介紹了Rust指南錯(cuò)誤的分類與傳遞以及使用kind進(jìn)行異常處理,需要的朋友可以參考下
    2022-09-09
  • Rust語言之Copy和Clone詳解

    Rust語言之Copy和Clone詳解

    在 Rust 中,Copy 和 Clone trait 用于控制類型的復(fù)制行為。它們?cè)试S你定義如何復(fù)制類型的值,以及在什么情況下可以復(fù)制。本文將詳細(xì)介紹這兩個(gè) trait 的作用和用法,并通過代碼示例來展示它們的使用,需要的朋友可以參考下
    2023-05-05
  • rust閉包的使用

    rust閉包的使用

    閉包在Rust中是非常強(qiáng)大的功能,允許你編寫更靈活和表達(dá)性的代碼,本文主要介紹了rust閉包的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • Rust常用特型之ToOwned特型示例詳解

    Rust常用特型之ToOwned特型示例詳解

    在Rust中,假定某類型實(shí)現(xiàn)了Clone特型,如果給你一個(gè)對(duì)它引用,那我們得到它指向內(nèi)容的備份的最常見方式是調(diào)用其clone()函數(shù),這篇文章主要介紹了Rust常用特型之ToOwned特型,需要的朋友可以參考下
    2024-04-04
  • Rust整合Elasticsearch的詳細(xì)過程(收藏)

    Rust整合Elasticsearch的詳細(xì)過程(收藏)

    Elasticsearch是基于Lucene構(gòu)建的開源分布式搜索和分析引擎,支持水平擴(kuò)展和多語言調(diào)用,ELK(Elastic Stack)組合包括Elasticsearch、Kibana、Logstash和Beats,專注于日志數(shù)據(jù)分析和實(shí)時(shí)監(jiān)控,本文介紹Rust整合Elasticsearch的過程,一起看看吧
    2024-11-11
  • Rust中泛型的學(xué)習(xí)筆記

    Rust中泛型的學(xué)習(xí)筆記

    在Rust語言中,泛型是一種強(qiáng)大的工具,它允許我們編寫可復(fù)用且靈活的代碼,本文主要介紹了Rust中泛型的學(xué)習(xí)筆記,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Rust Aya 框架編寫 eBPF 程序

    Rust Aya 框架編寫 eBPF 程序

    這篇文章主要介紹了Rust Aya 框架編寫 eBPF 程序方法的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Rust聲明宏在不同K線bar類型中的應(yīng)用小結(jié)

    Rust聲明宏在不同K線bar類型中的應(yīng)用小結(jié)

    在K線bar中,往往有很多不同分時(shí)k線圖,比如1,2,3,5,,,,,60,120,250,300…,,不同分鐘類型,如果不用宏,那么手寫會(huì)比較麻煩,下面就試用一下宏來實(shí)現(xiàn)不同類型的bar,感興趣的朋友一起看看吧
    2024-05-05
  • rust實(shí)現(xiàn)post小程序(完整代碼)

    rust實(shí)現(xiàn)post小程序(完整代碼)

    這篇文章主要介紹了rust實(shí)現(xiàn)一個(gè)post小程序,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-04-04

最新評(píng)論