0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

微軟開始嘗試使用Rust代替C/C++,介紹這些運(yùn)用Rust的產(chǎn)品

如意 ? 來(lái)源:讀芯術(shù)微信公眾號(hào) ? 作者:讀芯術(shù)微信公眾號(hào) ? 2020-09-03 10:09 ? 次閱讀

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

微軟自去年開始尋找用以替代的編程語(yǔ)言來(lái)解決內(nèi)存安全問(wèn)題,尋找終有所得——微軟開始嘗試使用Rust,并在一些情境下將其集成進(jìn)代碼庫(kù)中。Rust是一種相對(duì)較新的編程語(yǔ)言,具有與C和C++相同的底層性能,并具備現(xiàn)代編程語(yǔ)言應(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ā)人員的一些意見。

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

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

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

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

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

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

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

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

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

一種新的編程語(yǔ)言

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

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微軟
    +關(guān)注

    關(guān)注

    4

    文章

    6554

    瀏覽量

    103897
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7595

    瀏覽量

    135878
  • Rust
    +關(guān)注

    關(guān)注

    1

    文章

    228

    瀏覽量

    6542
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    未來(lái)嵌入式系統(tǒng)的黃金搭檔 MCX N947遇上Rust

    ? Rust 介紹 Rust 是一門注重安全的語(yǔ)言,相比于 C/C++/ASM 有著更高級(jí)的抽象能力、編譯器帶來(lái)的安全特性與廣泛友好的社區(qū)支
    的頭像 發(fā)表于 07-25 09:14 ?1253次閱讀
    未來(lái)嵌入式系統(tǒng)的黃金搭檔 MCX N947遇上<b class='flag-5'>Rust</b>

    Vector和HighTec推出基于Rust和AUTOSAR Classic實(shí)現(xiàn)安全應(yīng)用的解決方案

    Vector和HighTec兩家公司成功展示了Rust應(yīng)用程序與基于C語(yǔ)言的AUTOSAR Classic基礎(chǔ)軟件的集成,這在行業(yè)內(nèi)還屬首次。這樣一來(lái),Rust及其優(yōu)勢(shì)可以被應(yīng)用在有最高功能安全要求的汽車ECU中。
    的頭像 發(fā)表于 07-17 14:42 ?616次閱讀
    Vector和HighTec推出基于<b class='flag-5'>Rust</b>和AUTOSAR Classic實(shí)現(xiàn)安全應(yīng)用的解決方案

    在Aurix Tc375Lk上使用Rust編程語(yǔ)言可以嗎?

    您好,如果我想在 Aurix Tc375Lk 上使用 Rust 編程語(yǔ)言,可以嗎?如果是,鏈接 rust 編譯器 ADS 和 freetoolchain 的步驟是什么?你有在 ADS 或 freetoolchian 中鏈接編譯器的用戶指南嗎? 請(qǐng)?jiān)敿?xì)說(shuō)明謝謝
    發(fā)表于 05-17 13:42

    鴻蒙OpenHarmony開發(fā)板解析:【Rust模塊配置規(guī)則和指導(dǎo)】

    C/C++代碼和提升編譯速度,使用了GN + Ninja的編譯構(gòu)建系統(tǒng)。GN的構(gòu)建語(yǔ)言簡(jiǎn)潔易讀,Ninja的匯編級(jí)編譯規(guī)則直接高效。
    的頭像 發(fā)表于 05-10 11:32 ?1207次閱讀
    鴻蒙OpenHarmony開發(fā)板解析:【<b class='flag-5'>Rust</b>模塊配置規(guī)則和指導(dǎo)】

    在嵌入式系統(tǒng)中集成Rust和Qt的實(shí)踐

    Rust 擁有豐富的庫(kù)生態(tài)系統(tǒng),用于序列化和反序列化、異步操作、解析不安全輸入、線程、靜態(tài)分析等,而 Qt 是一個(gè) C++ 工具包,支持跨各種平臺(tái)的豐富的、基于 GUI 的應(yīng)用程序,從 iOS 到嵌入式Linux。Qt 應(yīng)用程序包括表示業(yè)務(wù)邏輯的
    發(fā)表于 05-03 10:26 ?1631次閱讀
    在嵌入式系統(tǒng)中集成<b class='flag-5'>Rust</b>和Qt的實(shí)踐

    Rust效率領(lǐng)先C++兩倍,內(nèi)存安全成國(guó)家安全議題

    這項(xiàng)發(fā)現(xiàn)由谷歌安卓平臺(tái)工具及庫(kù)的工程總監(jiān)Lars Bergstrom在日前召開的Rust Nation英國(guó)峰會(huì)揭示。盡管此前業(yè)內(nèi)對(duì)Rust的安全性和穩(wěn)定性存在一定爭(zhēng)議,特別是其‘unsafe’關(guān)鍵字的存在令人擔(dān)憂。
    的頭像 發(fā)表于 04-01 15:37 ?835次閱讀

    [鴻蒙]OpenHarmony4.0的Rust開發(fā)

    中集成 Rust 代碼,并最大程度發(fā)揮 Rust 和 OpenHarmony 中原有 C/C++ 代碼的交互性,采用 GN 作為統(tǒng)一構(gòu)建工具,即通過(guò) GN 構(gòu)建 Rus
    的頭像 發(fā)表于 02-26 17:28 ?783次閱讀
    [鴻蒙]OpenHarmony4.0的<b class='flag-5'>Rust</b>開發(fā)

    谷歌捐款100萬(wàn)美元給Rust基金會(huì),以增強(qiáng)C++Rust的交互性

    如今,谷歌多項(xiàng)核心業(yè)務(wù)仍以 C++為主要編程語(yǔ)言,雖然無(wú)法直接使用Rust替代現(xiàn)有的C++程序,但谷歌依然選擇支持Rust基金會(huì)的“Interop Initiative”計(jì)劃,幫助那些
    的頭像 發(fā)表于 02-19 15:41 ?584次閱讀

    微軟加速轉(zhuǎn)向Rust,加緊招募資深軟件架構(gòu)師

    去年BlueHat大會(huì)上,微軟公開表示以Rust重編譯Windows內(nèi)核的計(jì)劃,因其享有現(xiàn)代、便捷且代碼易讀的卓越性質(zhì)。值得一提的是,微軟推出的Azure Quantum開發(fā)工具包(QDK)亦采用了
    的頭像 發(fā)表于 01-30 11:47 ?513次閱讀

    一次Rust重寫基礎(chǔ)軟件的實(shí)踐

    受到2022年“谷歌使用Rust重寫Android系統(tǒng)且所有Rust代碼的內(nèi)存安全漏洞為零” [1] 的啟發(fā),最近筆者懷著濃厚的興趣也順應(yīng)Rust 的潮流,嘗試著將一款
    的頭像 發(fā)表于 01-25 11:21 ?578次閱讀

    Git開發(fā)者關(guān)注內(nèi)存安全問(wèn)題,探討引入Rust語(yǔ)言

    根據(jù)最新披露的郵件討論,Git開發(fā)團(tuán)隊(duì)熱議在Git項(xiàng)目中引入Rust的可行性。作為一種開源的分布式代碼版本管理工具,廣泛運(yùn)用于各種開發(fā)項(xiàng)目。盡管現(xiàn)在Git項(xiàng)目主要以C與Python為主要開發(fā)語(yǔ)言,但探討顯示,引入
    的頭像 發(fā)表于 01-15 14:23 ?555次閱讀
    Git開發(fā)者關(guān)注內(nèi)存安全問(wèn)題,探討引入<b class='flag-5'>Rust</b>語(yǔ)言

    C++簡(jiǎn)史:C++是如何開始

    MISRA C++:2023,MISRA? C++ 標(biāo)準(zhǔn)的下一個(gè)版本,來(lái)了!為了幫助您做好準(zhǔn)備,我們介紹了 Perforce 首席技術(shù)支持工程師 Frank van den Beuken 博士撰寫
    的頭像 發(fā)表于 01-11 09:00 ?514次閱讀
    <b class='flag-5'>C++</b>簡(jiǎn)史:<b class='flag-5'>C++</b>是如何<b class='flag-5'>開始</b>的

    從Rustup出發(fā)看Rust編譯生態(tài)

    從Rustup出發(fā)看Rust編譯生態(tài) 1. Rust和LLVM的關(guān)系是怎樣的? 2. Rustup中targets是什么,為什么可以安裝多個(gè)? 3. Rust在windows上為什么需要安裝Visual studio?
    的頭像 發(fā)表于 01-02 11:00 ?479次閱讀

    【愛(ài)芯派 Pro 開發(fā)板試用體驗(yàn)】用rust寫模型runner

    之前學(xué)習(xí)用的都是官網(wǎng)寫好的模型runner,這里嘗試rust自己寫一個(gè)runner,主要是為了熟悉Axera的一些API以便后期擴(kuò)展。這里主要用到AxEngine,他是神經(jīng)網(wǎng)絡(luò)模型芯片側(cè)推理計(jì)算庫(kù)
    發(fā)表于 12-02 22:00

    c++怎么開始編程

    應(yīng)用程序、嵌入式系統(tǒng)和網(wǎng)絡(luò)應(yīng)用程序等各種領(lǐng)域。 在開始編程之前,你需要安裝C++的編程環(huán)境。首先,你需要下載并安裝一個(gè)編譯器,比如微軟的Visual Studio、GNU的GCC或者Clang。
    的頭像 發(fā)表于 11-27 15:56 ?876次閱讀