|
↓推薦關(guān)注↓
轉(zhuǎn)自:InfoQ - Tina
11 月 30 日,除了之前合并到 Linux 6.13 內(nèi)核開發(fā)窗口的 USB 更新和大型 staging 分支更新外,“char/misc”模塊的更改也被采納。作為內(nèi)核中匯總各種改動(dòng)的模塊,“char/misc”合并中引入了一些重要更新,這對(duì)希望用 Rust 編程語(yǔ)言編寫內(nèi)核驅(qū)動(dòng)的開發(fā)者來說尤其值得關(guān)注。
Linux 內(nèi)核關(guān)鍵維護(hù)者 Greg Kroah-Hartman 表示,隨著這些改動(dòng)的引入,Linux 6.13 現(xiàn)在可以支持更多基于 Rust 的內(nèi)核驅(qū)動(dòng)開發(fā)。
在“char/misc”合并中,他解釋道:“Rust 中的 misc 驅(qū)動(dòng)綁定和其他改動(dòng)使得開發(fā) misc 驅(qū)動(dòng)成為可能。我認(rèn)為這是一個(gè)轉(zhuǎn)折點(diǎn),有了這些綁定,未來會(huì)有更多 Rust 驅(qū)動(dòng)出現(xiàn)。希望在下一個(gè)合并窗口中,我們能夠?qū)崿F(xiàn) PCI 和平臺(tái)驅(qū)動(dòng)的功能,從而全面支持幾乎所有驅(qū)動(dòng)子系統(tǒng)接受(或至少嘗試使用)Rust 驅(qū)動(dòng)。這是許多開發(fā)者共同努力的成果,祝賀大家取得這樣的進(jìn)展。你們用可運(yùn)行的代碼證明了我們?cè)S多人的質(zhì)疑是錯(cuò)誤的 :)!
w32czz5cbpk6401802044.jpg (292.88 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
w32czz5cbpk6401802044.jpg
昨天 01:22 上傳
這位資深內(nèi)核開發(fā)者預(yù)測(cè),未來我們將看到越來越多的上游 Rust 驅(qū)動(dòng)程序。
1 辭職風(fēng)波是“黎明前最黑暗的時(shí)刻”除了“char/misc”子系統(tǒng),Rust for Linux 項(xiàng)目負(fù)責(zé)人 Miguel Ojeda 還于 11 月 26 日提交了一組針對(duì) Linux 6.13 holiday 內(nèi)核的大規(guī)模 Rust 基礎(chǔ)設(shè)施和工具鏈更新,一夜之間讓 Linux 增加了 3000 行 Rust 代碼。
Linux 6.13 的合并窗口預(yù)計(jì)將于今天(12 月 1 日)結(jié)束,同時(shí)發(fā)布 Linux 6.13-rc1。Linux 6.13 正逐步成為一個(gè)重要的內(nèi)核版本,穩(wěn)定版本預(yù)計(jì)將在 1 月底左右發(fā)布。
從這次版本發(fā)布中,我們可以得出兩個(gè)重要信息:一是 Greg Kroah-Hartman 承認(rèn),包括他在內(nèi)的部分人曾質(zhì)疑 Rust,但這是“錯(cuò)誤”的,他認(rèn)為 Rust for Linux 維護(hù)者用實(shí)際可行的代碼證明了 Rust 在內(nèi)核開發(fā)中的潛力。二是盡管此前 Rust for Linux 維護(hù)者宣布退出內(nèi)核開發(fā),但實(shí)際上,將 Rust 代碼引入 Linux 的進(jìn)展并未受到太大影響。
今年 9 月份的時(shí)候,微軟工程師、 Rust for Linux 維護(hù)者之一 Wedson Almeida 在 Linux 內(nèi)核郵件列表上宣布退出該項(xiàng)目。他離開的原因是,“在過去四年的工作當(dāng)中,我發(fā)現(xiàn)自己的精力和熱情已經(jīng)被嚴(yán)重消磨,越來越抗拒回應(yīng)那些跟技術(shù)無關(guān)的廢話。所以這份任務(wù),最好是留給那些仍然抱有這份熱情的成員。”
C 和 Rust 兩派的分歧一直很大。一些現(xiàn)有的 C 語(yǔ)言程序員對(duì) Rust 作為第二語(yǔ)言的引入持抵觸態(tài)度,擔(dān)心這會(huì)增加他們的工作復(fù)雜性,或迫使他們學(xué)習(xí) Rust 而感到壓力。英特爾 Linux 核心內(nèi)核架構(gòu)團(tuán)隊(duì)成員 Dan Williams 也曾指出,Rust 在 Linux 內(nèi)核中的應(yīng)用面臨一個(gè)問題:“內(nèi)核維護(hù)者往往非常保守。” 他們對(duì) C 語(yǔ)言非常熟悉,可以說了如指掌,但對(duì) Rust 卻并不了解。因此,他們“不知道該如何審查這些代碼,也不知道如何調(diào)試那些代碼,因?yàn)樗麄儾⒉焕斫膺@些代碼!
在 Linux 締造者 Linus Torvalds 看來,這場(chǎng)爭(zhēng)議“幾乎上升到了帶有宗教戰(zhàn)爭(zhēng)色彩的信仰之爭(zhēng)層面”。而對(duì)于不少人因此斷言 Rust 的融合之路已經(jīng)失敗的觀點(diǎn),Linus 評(píng)論道,“我們已經(jīng)在這方面探索了幾年,所以目前下結(jié)論還為時(shí)過早。但我也認(rèn)為,哪怕是失敗了(雖然我并不支持這種失敗論),這也是學(xué)習(xí)經(jīng)歷的一部分。所以我覺得推廣 Rust 是有積極意義的,可爭(zhēng)論過程中的很多人似乎并不這么看。”
作為 Rust for Linux 項(xiàng)目的首席維護(hù)者,Miguel Ojeda 則將 Wedson 的辭職描述為該項(xiàng)目“黎明前最黑暗”的時(shí)刻。
“對(duì)我來說,這當(dāng)然非常困難,”O(jiān)jeda 表示,“但從積極的角度看,這或許是黎明前最黑暗的時(shí)刻……我想向大家保證,項(xiàng)目正在繼續(xù)前進(jìn)!
2 將 Rust 融入 Linux 曾是一些人的“白日夢(mèng)”不久前,Miguel Ojeda 在 RustConf 2024 主題演講中回顧了 Rust for Linux 項(xiàng)目的歷史。
vj02fdrbogi6401802144.jpg (132.61 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
vj02fdrbogi6401802144.jpg
昨天 01:22 上傳
早在 2013 年就有人提出了為內(nèi)核編寫 out-of-tree Rust 模塊的想法,那時(shí) Rust 還未正式發(fā)布 1.0 版本。然而,Rust for Linux 并不僅限于 out-of-tree 模塊的開發(fā),其目標(biāo)是將 Rust 的支持集成到 Linux 主線中,使其能夠用于 C 能完成的所有內(nèi)核任務(wù)。值得說明的是,一般情況下,穩(wěn)定且常用的驅(qū)動(dòng)都是 in-tree 的,它們位于內(nèi)核源代碼樹的對(duì)應(yīng)目錄下。
2019 年夏天,Miguel Ojeda 創(chuàng)建了 Rust for Linux GitHub 組織,但直到 2020 年才真正投入使用。同年 7 月,Nick Desimone 發(fā)起了一封關(guān)于對(duì) Rust 感興趣的郵件,隨后大家意識(shí)到有不少人希望這件事能夠成真。
“那時(shí),這仍然只是一個(gè)白日夢(mèng)”,但 Miguel Ojeda 認(rèn)為讓大家在同一目標(biāo)下獨(dú)立工作會(huì)很有意義,于是他提交了第一個(gè) Rust 拉取請(qǐng)求,后來越來越多的人加入了這個(gè)項(xiàng)目。經(jīng)過多次協(xié)作,最終在兩年后,Rust 支持被合并至內(nèi)核的 6.1 版本。
j51ufapxmip6401802244.jpg (101.56 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
j51ufapxmip6401802244.jpg
昨天 01:22 上傳
Rust for Linux 旨在為 Linux 內(nèi)核引入對(duì) Rust 編程語(yǔ)言的支持,目標(biāo)是實(shí)現(xiàn)對(duì) Rust 的一流支持,即在內(nèi)核中任何可以用 C 實(shí)現(xiàn)的功能都可以用 Rust 實(shí)現(xiàn)。
他們的最終目標(biāo)并不僅僅是 out-of-tree 模塊,而是 in-tree,以及用 Rust 編寫核心 API 和子系統(tǒng),這不僅限于內(nèi)核空間代碼,還包括宿主和用戶程序。
Miguel Ojeda 強(qiáng)調(diào)項(xiàng)目的關(guān)鍵目標(biāo)一直都是“將這些支持集成到主線內(nèi)核中”。并且就像他之前總結(jié)的那樣:“Rust 現(xiàn)在處于有利地位!
參考鏈接:
https://www.phoronix.com/news/Linux-6.13-char-misc-More-Rust
https://devclass.com/2024/09/18/rustconf-speakers-affirm-rust-for-linux-project-despite-challenges-of-unstable-rust-maintainer-resignation/
https://www.youtube.com/watch?v=FRMJzNYut4g
https://www.zdnet.com/article/rust-in-linux-now-progress-pitfalls-and-why-devs-and-maintainers-need-each-other/
——EOF——你好,我是飛宇,本碩均于某中流985 CS就讀,先后于百度搜索、字節(jié)跳動(dòng)電商以及攜程等部門擔(dān)任Linux C/C++后端研發(fā)工程師。
最近跟朋友一起開發(fā)了一個(gè)新的網(wǎng)站:編程資源網(wǎng),已經(jīng)收錄了不少資源(附贈(zèng)下載地址),如果屏幕前的靚仔/女想要學(xué)習(xí)編程找不到合適資源的話,不妨來我們的網(wǎng)站看看,歡迎掃碼下方二維碼白嫖~
43wfxgifko56401802345.gif (1.18 MB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
43wfxgifko56401802345.gif
昨天 01:22 上傳
同時(shí),我也是知乎博主@韓飛宇,日常分享C/C++、計(jì)算機(jī)學(xué)習(xí)經(jīng)驗(yàn)、工作體會(huì),歡迎點(diǎn)擊此處查看我以前的學(xué)習(xí)筆記&經(jīng)驗(yàn)&分享的資源。
我組建了一些社群一起交流,群里有大牛也有小白,如果你有意可以一起進(jìn)群交流。
g5zorvtljgx6401802445.png (195.91 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
g5zorvtljgx6401802445.png
昨天 01:22 上傳
歡迎你添加我的微信,我拉你進(jìn)技術(shù)交流群。此外,我也會(huì)經(jīng)常在微信上分享一些計(jì)算機(jī)學(xué)習(xí)經(jīng)驗(yàn)以及工作體驗(yàn),還有一些內(nèi)推機(jī)會(huì)。
sbgcysdms0j6401802545.png (281.08 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
sbgcysdms0j6401802545.png
昨天 01:22 上傳
加個(gè)微信,打開另一扇窗
感謝你的分享,點(diǎn)贊,在看三連
zihznw4a1hh6401802645.gif (88.16 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
zihznw4a1hh6401802645.gif
昨天 01:22 上傳
|
|