Linus Torvalds 圍繞著Rust 程式碼明確規定了Linux 維護者的角色
Linux 核心郵件清單中圍繞核心中使用Rust 程式語言的討論仍在繼續… Linus Torvalds 在很大程度上沒有參與LKML 圍繞Linux 核心Rust 政策的討論,也沒有參與對Rust 持不同意見的核心開發人員和維護人員之間的內鬥。 不過今天晚上,Linus Torvalds 還是決定參與討論。

雖然幾天前有評論稱Linus Torvalds 據說他會不顧維護者的反對合併Rust 內核程式碼,但在回應Christoph Hellwig 時,他進一步澄清了自己的立場。 戴著DMA 維護者帽子的Hellwig 一直反對將Rust 程式碼與核心中的DMA 區域合併。
Linus Torvalds今晚做出了回應,他澄清說,維護者可以選擇在他們監管的內核區域中積極使用Rust 綁定並參與其中,也可以採取放手不管的方式,讓Rust 與他們的程式碼形成互補。 但核心維護者不能反對新的Rust 程式碼成為其C 程式碼的有效”使用者”。 Linux 核心維護者既可以參與任何建議的Rust 程式碼,也可以選擇不參與,讓它在核心中互補,但他們不能任意阻止它成為自己程式碼的使用者。
「我滿懷希望,並試圖看看這個長線程是否會產生任何建設性的結果,但這似乎是倒退(或至少不是前進)。
事實上,您反對的拉取請求根本沒有觸及DMA 層。
它實際上只是它的另一個用戶,在一個完全獨立的子目錄中,沒有以任何方式、形式或形式更改您維護的程式碼。
我發現你抱怨程式碼的新用戶,然後你不斷提出這些完全垃圾的論點,這讓我很沮喪。
老實說,你一直在說「作為DMA 維護者,我控制DMA 代碼的用途」。
而這並不是*任何*的工作運作方式。
接下來是什麼?說特定的驅動程式不能做DMA,因為你不喜歡那個設備,而作為DMA 維護者,你控制誰可以使用DMA 程式碼?
這正是你正在嘗試的與Rust 程式碼有關。
你說你不同意Rust——這很好,沒有人要求你寫或閱讀Rust 程式碼。
但是你採取這種立場意味著Rust 程式碼甚至不能使用或與你維護的程式碼互動。
所以讓我非常清楚:如果你作為維護者覺得你控制著誰或什麼可以使用你的程式碼,那你就錯了。
從技術上來說,我尊重你,我喜歡和你一起工作。
不,我不是在尋找唯唯諾諾的人,我喜歡你指出我的胡言亂語。我有時會說一些蠢話,需要有人站出來告訴我我在胡說八道。
但現在我要指出你的*你的*。
所以這封電子郵件不是關於一些「Rust 政策」。這封電子郵件是關於一個更大的問題:作為維護者,你負責你的程式碼,當然——但你不負責誰使用最終結果以及如何使用。
你不必喜歡Rust。你不必關心它。這一點從一開始就很清楚,沒有人會被迫突然學習一門新語言,那些想純粹在C 端工作的人完全可以繼續這樣做。
所以回到你聲明的核心:
“文檔聲稱沒有子系統被強迫採用Rust”
這是非常正確的。
你沒有被強迫採用任何Rust 程式碼,或關心DMA 程式碼中的任何Rust 程式碼。你可以忽略它。
但「忽略Rust 方面」也自動意味著你在Rust 方面沒有任何發言權。
你不能兩全其美。你不能說“我不想和Rust 有任何關係”,然後在下一句話中說“這意味著我將忽略的Rust 程式碼不能使用我維護的C 介面”。
想要參與Rust 方面的維護者可以參與其中,透過參與其中,他們將對Rust 綁定的外觀有一定的發言權。他們基本上也成為Rust 介面的維護者。
但選擇「我不想處理Rust」選項的維護者基本上也不必為Rust 綁定操心- 但結果他們也不會對Rust 方面發生的事情發表任何意見。
因此,當您更改C 介面時,Rust 人員將不得不處理後果,並且必須修復Rust 綁定。這就是這裡的一種承諾:在承諾他們不必處理Rust 問題的情況下,圍繞著不想處理Rust 問題的C 開發人員有一道「保護牆」。
但那道「保護牆」基本上是雙向的。如果您不想處理Rust 程式碼,您就對Rust 程式碼沒有任何發言權。
換句話說:「沒有人被迫處理Rust」並不意味著「每個人都可以否決任何Rust 程式碼」。
看到了嗎?
不,我實際上並不認為這需要那麼黑白分明。我已經用非常黑白分明的術語陳述了上述內容(“也成為Rust 綁定的維護者”與“根本不想處理Rust”),但在很多情況下,我懷疑這將是一條不那麼苛刻的界線,子系統維護者可能*知道* Rust 綁定,並願意與Rust 方面合作,但可能不會積極參與。
所以它真的不必是“全有或全無”的情況。
“萊納斯”
這就是Linux 核心程式碼Rust 爭論的現狀。