您現在的位置是:首頁 > 農業

除了RUST,還有國產架構:Linux6.1核心穩定版首發布!

由 51CTO 發表于 農業2022-12-29
簡介儘管這一功能仍在構建中,不過這也意味著,在可見的將來,Linux的歷史將翻開嶄新的一頁——除了C之外,開發人員將第一次能夠使用另一種語言Rust進行核心開發

物理h是什麼

除了RUST,還有國產架構:Linux6.1核心穩定版首發布!

12月11日,Linus Torvalds釋出了Linux6。1核心穩定版,並迎來了一個工作量巨大如地獄般的Linux6。2合併視窗。目前在核心官網已經可以找到相應檔案。

據悉,每個Linux核心版本釋出之後都會留兩週時間,貢獻者在此期間提交他們希望在下一個版本中看到的程式碼。Linux 6。1的釋出意味著視窗將在12月26日,即聖誕節次日關閉。而且Torvalds透露,他將在假期之前旅行,因此準備時間會比平常更少。

除了RUST,還有國產架構:Linux6.1核心穩定版首發布!

重要升級:初始的Rust語言支援

值得注意的是,在最新版本中,Linux6。1進行的一個重要升級在於初始的Rust語言支援。儘管這一功能仍在構建中,不過這也意味著,在可見的將來,Linux的歷史將翻開嶄新的一頁——除了C之外,開發人員將第一次能夠使用另一種語言Rust進行核心開發。

在近幾年的討論中,是否在Linux核心中引入Rust多次成為議題。不過包括 Torvalds在內的一眾關鍵人物均對此表示了期待。

早在2019年,Alex Gaynor和Geoffrey Thomas就曾於Linux Security Summit安全峰會上進行了演講。他們指出,在Android和Ubuntu中,約有三分之二的核心漏洞被分配到CVE中,這些漏洞都是來自於記憶體安全問題。原則上,Rust可以透過其type system和borrow checker所提供的更安全的API來完全避免這類錯誤。簡言之,Rust比C更安全。

谷歌Android團隊的Wedson Almeida Filho也曾公開表示:“我們覺得Rust現在已經準備好加入C語言,作為實現核心的實用語言。它可以幫助我們減少特權程式碼中潛在錯誤和安全漏洞的數量,同時很好地與核心核心配合並保留其效能特徵。”

當前,谷歌在Android中廣泛使用Rust。在那裡,“目標不是將現有的C/C++轉換為Rust,而是隨著時間的推移,將新程式碼的開發轉移到記憶體安全語言”。這一言論也逐漸在實踐中得到論證。

“隨著進入Android的新記憶體不安全程式碼的數量減少,記憶體安全漏洞的數量也在減少。從2019年到2022年,相關漏洞佔比已從Android總漏洞的76%下降到35%。2022年,在Android漏洞排行中,記憶體安全漏洞第一次不再是主因。”

固然某些東西更安全,但並不意味著每個人都想採用它。畢竟,開發人員已經花了近30年的時間在C語言中開發Linux,開發人員都擔心將Rust引入Linux所要花費的大量工作。舉個例子,為了讓Rust Linux NVMe驅動程式工作,需要70個非標準的Rust擴充套件。

對此,Torvalds在今年早些時候也做出了迴應。“請不要擔心。Rust不會在這十年的任何時候取代核心中的C。”

正如Rust on Linux的主要開發者Miguel Ojeda所提到的,“核心是一個龐大的專案,有很多利益相關者。從一開始,我們就很明確,在核心中新增第二種‘主’語言將面臨技術和管理挑戰。”他解釋說:“你將在Linux核心中看到的第一個Rust工作將是‘子系統的 Rust抽象以及編寫驅動程式和其他模組’。”

目前來說,Linux 6。1對於Rust的支援仍處於初級階段,沒有任何面向終端使用者的Rust功能。可以說,Rust將正式使Linux成為一種雙語言作業系統,但這種演化程序是緩慢的,對核心開發人員來說這種改變並不會造成極大的不適感。

新功能:新增MGLRU、進一步加大對國產LoongArch CPU架構的支援

除了初始的Rust語言支援,Linux 6。1核心的另一個新增功能是MGLRU,即Multi-Generational Least-Recently-Used。據悉,它可以最佳化頁面回收機制,並在重記憶體負載情況下提高效能,不過預設情況下不會啟用。

其他方面,Linux 6。1還集成了對Btrfs檔案系統性能的一系列改進、新的AMD平臺管理框架、各種開源圖形驅動程式改進、Kernel Memory Sanitizer、Maple Tree資料結構的引入以及許多其他硬體驅動程式工作。

值得一提的是,新版本還進一步提升了對國產LoongArch架構CPU的支援。

LoongArch是龍芯中科推出的自研處理器架構,該架構基於龍芯基礎指令集系統,並有向量指令、虛擬化、二進位制翻譯等擴充套件部分。此次Linux 6。1加大支援能夠從底層提升基於Linux的國產發行版系統對於國產硬體的支援與適配性。

是否是LTS版本,仍有待觀望

此外,在本次版本更新的公告中並沒有提及Linux 6。1是否是LTS版本。據Linux核心維護者Greg Kroah-Hartman描述,通常來說,每年的最後一個核心版本會成為Linux核心的LTS。如今Linux 6。1趕在年尾釋出,慣例來說它就是LTS版本。

但也有人提出異議。Carl Dasantas談到,因為Linux 6。1引入了Rust,目前很多社群依舊對Rust持保留態度,這種猶豫往往會帶來變數。相較來說,Linux 6。0或5。19更合適作為LTS版本。

推薦文章