取代C ,Rust真的要重寫萬物了!
在得到Linux、Google、亞馬遜雲端等大廠青睞後,最近的爆炸訊息-
微軟已經用3.6萬行Rust程式碼改寫了Windows核心 。
而且推進速度相當快,4月劇透消息,過了兩週,Windows 11內部預覽版已經用上了。
微軟雲端Azure CTO在推特上激動喊話:
如果你加入了Windows 11 Insider Preview內測,你將首次體驗到Rust支援的Windows核心!
重寫的核心中,主要包括DWriteCore 以及Win32 GDI兩個項目,並通過了Windows開機所有測試。
其中,Win32 GDI寫於上世紀80年代末90年代初,是工齡30多年的老代碼了。
如今之所以被Rust取代,微軟給的理由簡單粗暴:
Rust語言有著極高的記憶體安全性,原來核心中大量的不安全的子程式也在改寫後消失不見。同時,Rust語言更簡潔有效率。
公開資料也表示,隨著時間的推移,Windows核心對Rust的採用將被大幅擴展。
不光是大廠喜愛,Rust也連續多年成為Stack Overflow開發者調查中「最受歡迎的程式語言」。最近Unix系統的基礎工具sudo和su也要用Rust重寫了。
不過有點意外的是,Rust最初被發明出來,竟然是為了修電梯? ? ?
怒爬21層樓後決定開發新語言
萬事起源只在於2006年的某天,一位名叫格雷頓老哥(Graydon Hoare)住的那棟公寓,電梯又壞了。
第n次,他一邊罵罵咧嘴一邊努力爬向自己位於21樓的家。他想不通,電梯系統咋就這麼容易崩潰呢?不應該呀!
身為大廠碼農,格雷頓老哥覺得,這事兒不是不能解決。
當時他29歲,正在開源網頁瀏覽器Mozilla公司(火狐背後的公司)打工。身為業內人士,他深知大多數的電梯故障,都是編寫程式的語言很容易意外引入記憶體錯誤,從而引發軟體崩潰。
而當時電梯軟體往往是用C或C 語言寫。
它們的優點是緊湊、快速,但問題是非常容易引發記憶體錯誤,導致系統崩潰,甚至是安全問題。
所以一不做二不休,格雷頓老哥為了不再爬樓,乾脆決定搞個新程式語言出來。
目標就是不容易記憶體錯誤的語言,最好更短、更快。
於是,Rust語言誕生了。
而且Rust的取名,也很有意思。
Rust和一種真菌同名,中文學名植物銹病,格雷頓評價其「為了生存而過度設計」。
這種真菌生物結構完全是分散式的,空間上無單點失敗,也就是說單獨去掉哪一部分都不影響它的存活,魯棒性賊強。
在全生命週期中,Rust真菌共有5種生命形態,其中3種形態還能倒退回上一形態,幾乎等同於蝴蝶還能變回毛毛蟲重新生長。
而且,Rust真菌可以多宿主寄生,恰能映射Rust語言對語言間互通性的重視。
△患有Rust的植物(密恐患者們對不起了!)
在單槍匹馬個人開發幾年後,2009年,Rust得到Mozilla公司研究院的支助;2010年工程對外公佈。
研發過程中,Rust已經建立了一個活躍度極高的社區,任何開發者都可以直接給這個專案提bug,或是直接貢獻原始碼。
2015年5月,Rust的1.0版正式發表。
短短一年光景,Rust就吸收了無數的擁躉。 2016年起,它連續7年被Stack Overflow開發者調查評為「最受歡迎的程式語言」。
連續榮登榜首所依仗的優點,一是運行速度快,二是記憶體利用率高,三是防止段錯誤。
簡而言之,是在某些部分可以取代C/C 的利器。
所以代碼江湖流傳著一種說法,把Rust比喻成跑酷,可以做高危險動作,但是不太容易傷害到自己。
相較之下,C 可以看作是在玩帶火的電鋸。
而憑藉著開發Rust,格雷頓老哥也一戰成名。
之後幾年內,他也參與了Swift的開發。
說來這也是一段有趣的故事。相較於當團隊leader,老哥似乎更喜歡做第一線開發。
他曾在回應「為什麼離開Rust團隊」中表示,2013年前後那段時間個人情感生活遭受重創(離婚),導致他沒有太多精力負責Rust團隊,後面他還在Mozilla總做了些低調且不急上線的項目,然後就離職了。
直到2016年初,他接到了蘋果團隊的一個電話,表示正在找幫忙開發Swift的程式設計師,「是一個非領導職位,我更喜歡」。
靠著安全性成為大廠寵兒
但到這裡,Rust的傳奇故事才說了一半。
憑藉著「安全性高」的初衷,近幾年它在大廠的受歡迎度也越來越高。
不只Windows,Linux、Android這些主流系統也都先後擁抱Rust。亞馬遜雲端、微軟、谷歌和Rust的關係也一直不錯。
之所以會如此,主要原因或許還是C/C 在記憶體安全方面,真的不太行。
例如微軟幾年前就對Rust很感興趣了,他們將其認定為產品交付前消除記憶體安全漏洞的好辦法。
2019年,微軟承認其產品被CVE揭露的漏洞中,有70%是因為使用C/C 後導致的記憶體安全漏洞。
而Rust工具鏈則專注於揪出程式碼中的潛在漏洞,這在理想情況下能減少程式碼被打擊的可能。
另一邊,Linux核心也已引入Rust。
去年,由Linux基金會主辦的2022開源高峰會上,Linus老爺子突然官宣,也許下一個版本就要把Rust加入進來了!
這意味著官方將把Rust for Linux的PR合併到Linux核心的主線上。
(Rust for Linux是呼籲Linux和Rust結合的組織)
要知道,先前光是Rust的支援補丁就已發佈到第七版了。
當時現場聽到這一消息,立刻掌聲雷動,以至於Linus花了好一會兒才讓大家平靜下來。
幾個月過後,Linux 6.1版本發布,核心增加了Rust支持,成為了C語言之外的第二種官方語言。
Google這邊的動作其實更早。
2021年Android 12發布,即宣布支援Rust。從這以後,他們就一直在Android開源專案中擴大Rust的使用。
不過Google的做法不是立刻讓Rust來取代C/C ,而是新程式碼用Rust來寫。
從官方發布的數據可以看到,C和C 還是占主導地位,Rust的比例正在逐步提升。
而截止去年年底,Google表示,Android中用Rust寫的部分,還沒有發現任何安全漏洞。
這個結果非常重要,因為它意味著Rust能有效防止Android中最常見的漏洞-也就是記憶體安全漏洞。谷歌22年的資料顯示,記憶體安全漏洞在各類漏洞的佔比都非常高。
在許多C/C 寫的元件中(如藍牙、NFC等),每一千行程式碼中就會有1個漏洞。按照這個比例來換算,Rust很可能已經阻止了數百個漏洞。
以及基於它高並發的優點,在Android中使用Rust,還能進一步平衡系統安全性和延遲,一般來說有些安全措施會導致程式語言變慢。
例如使用新的UWB堆疊,可以節省幾兆內存,並透過現有進程運行來避免一些IPC延遲。
亞馬遜雲對Rust也格外喜歡,因為它在節省能源上同樣表現很nice。
一項研究測試了27種程式語言,結果發現C和Rust在能源利用方面,比Java高效50%,比Python高效98%。
但C的問題已經說了很多遍了,記憶體安全漏洞多,所以綜合這麼一看,Rust又贏了。
實際上,大廠們對Rust已經不只是青睞,甚至是寵愛了。
2020年,Rust背後公司Mozilla宣布大規模裁員,Rust團隊被裁掉,Rust的命運陷入巨大的不確定性。
為了避免這種隱憂,亞馬遜、微軟、Google、華為等大廠,直接共同發起了一個Rust非營利基金會。 承諾兩年內投入約100萬美元預算,支持Rust計畫維護。
而在業界,Rust的事蹟更是無數。
最近,兩個類別Unix的核心實用程式sudo和su正在用Rust重寫中;此前,GitHub痛改自家搜尋引擎基於Rust;Discord一個Go服務也用Rust重寫了…
不過,Rust也有缺點,例如學到後面會比較難,剛上手的開發速度也比Go、Java慢很多。
所以Rust好評度高,但「賣座率」還比較一般,甚至會被打上「冷門語」的標籤。
尤其是國內對Rust招聘,簡直可以用「少得可憐」來形容。
有網友抱著悲觀態度:
#為此,Rust也進一步優化自身。
根據其發布的Rust 2024路線中,官方團隊將在降低學習門檻、壯大生態連接等方面加大努力。
所以,後面Rust會怎麼走下去,還是值得期待了~
以上是取代C++! 3.6萬行Rust程式碼改寫Windows內核,這門語言最早竟用來修電梯的詳細內容。更多資訊請關注PHP中文網其他相關文章!

介紹 恭喜!您經營一家成功的業務。通過您的網頁,社交媒體活動,網絡研討會,會議,免費資源和其他來源,您每天收集5000個電子郵件ID。下一個明顯的步驟是

介紹 在當今快節奏的軟件開發環境中,確保最佳應用程序性能至關重要。監視實時指標,例如響應時間,錯誤率和資源利用率可以幫助MAIN

“您有幾個用戶?”他扮演。 阿爾特曼回答說:“我認為我們上次說的是每週5億個活躍者,而且它正在迅速增長。” “你告訴我,就像在短短幾週內翻了一番,”安德森繼續說道。 “我說那個私人

介紹 Mistral發布了其第一個多模式模型,即Pixtral-12b-2409。該模型建立在Mistral的120億參數Nemo 12B之上。是什麼設置了該模型?現在可以拍攝圖像和Tex

想像一下,擁有一個由AI驅動的助手,不僅可以響應您的查詢,還可以自主收集信息,執行任務甚至處理多種類型的數據(TEXT,圖像和代碼)。聽起來有未來派?在這個a


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver Mac版
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器