用Rust重寫Linux內核?Linus Torvalds持觀望態度
雖說Linux是C語言的表率,不過時代在變。將Rust編程語言作為Linux的系統語言呼聲越來越高,也受到了非常多用戶的支持。例如在2020年的Linux Plumbers大會上,開發人員認真考慮了在新的Linux內聯代碼中使用Rust語言。近日外媒ZDNet就這個話題採訪了Linux創始人Linus Torvalds和Linux穩定內核維護者Greg Kroah-Hartman。
圖片來自於desdelinux
Torvalds 對Linux 代碼Rust 化有什麼看法?他屬於“觀望”陣營,他表示:“我對這個項目很感興趣,但我認為這是那些對Rust 非常興奮的人推動的,我想看看它然後在實踐中最終如何工作。就個人而言,我暫時不會推動Rust 化,不過考慮到承諾的優勢以及能夠避免一些安全隱患,我對它持開放態度。但我也知道,有時承諾並不能實現”。
Torvalds 認為:“Rust的首要目標似乎是驅動程序,只是因為在那裡你會發現只是很多不同的可能目標,而且你有這些內核的單獨部分,它們相當小,而且獨立。對某些人來說,這可能不是一個非常有趣的目標,但它是明顯的目標。對驅動程序的任何初始試驗都只是架構方面的,很多驅動程序只在幾個目標架構上相關,所以Rust代碼在某些架構上不支持的整個問題就不那麼嚴重了”。
Kroah-Hartman 也認為,“驅動程序可能是這樣的嘗試的第一個地方,因為它們是內核源碼中依賴樹的’末葉’。它們依賴於核心內核功能,但沒有任何東西依賴於它們”。
Torvalds 也表示了解部分用戶並不喜歡Rust 在userspace 上的想法。他表示:“人們抱怨用戶空間中的”Rustification “對於未來任何內核的使用都不是一個好兆頭,不過這個有待觀察。內核與用戶空間項目不同–在某些方面比較困難(我們使用了很多非常奇怪的頭文件,這就突破了可以被稱為’C’的邊界),但在許多其他方面比較容易(主要是內核相當自足,然後不依賴其他項目來獲得最終的二進製文件)”。
從Kroah-Hartman所處的位置來看,“這一切都將歸結於用C語言編寫的內核核心結構和壽命規則之間的交互如何能夠映射到Rust結構和壽命規則中,讓Rust中的驅動程序能夠正確使用它們。這需要想要把這一切勾起來的開發者們做很多細緻的工作,我祝他們好運”。
因此,雖然你幾乎可以肯定不會很快看到Linux從C語言移植到Rust中,但人們對將基於Rust的用戶空間程序、驅動程序,以及最終將基於Rust的Linux內核引入Linux操作系統有很大的興趣和行動。