我好愛這類程式語言的迭事八卦。

故事源自這部 YouTube 影片:Rust和Linux之争,到底在争什么?【让编程再次伟大#24】(影片針對 Rust 與 C 的差異有不少剖析,推),並參考 Perplexity 的事件整理 整理而成。

這些年,Rust 語言崛起,榮登 Stackoverflow 開發者用過就愛上語言第一名,微軟要讓開發者以 Rust 編寫 Windows 驅動程式,而 JavaScript 領域也有愈來愈多工具改用 Rust 開發。在這股趨勢中,Linux 也沒有脫隊。

2020 年 Rust for Linux 小組成立,吸引來自 Google, 微軟, RedHat 及眾多社群成員,目標是讓 Rust 成為 Linux Kernel 的「第二語言」。期待強調記憶體安全與效能的現代語言 Rust,能改善困擾 Linux 多時的記憶體安全漏洞(如緩衝區溢位、空指標引用等)問題。

2022 年,Linus 同意在 Linux 6.1 以實驗性質併入 Rust PR,算是一項里程碑。之後 Rust for Linux 小組持續完善基礎程式庫、擴大支援範圍(如 RISC-V),到了 2023 年,第一批以 Rust 實作的驅動程式併入主線,於 6.8 版釋出。

然而,Rust 的絕對嚴謹與 C 強調彈性自由的理念恰恰相反;Rust 要求在每個小範圍都做好資源回收錯誤處理,讓程式自然而然完美不出錯;而 Linux Kernel 有時更傾向從大局角度思考,授權開發人員彈性調整資源管理時機以追求效能最佳化。二者的設計哲學不同,各有優劣,沒有對錯。但抱持相反思維很難取得共識,這甚至導致部分資深 C 開發者對 Rust 開發者產生敵對態度。

在 2024 年 Linux 基金會維也納開源峰會上,Rust for Linux 成員 Wedson Almeida Filho 原本想介紹以 Rust 角度設計的檔案系統介面(Interface)規格,徵詢其他開發者的看法。但發言不到 3 分鐘,便引來 Linux 基金會前 CTO 等 C Kernel 資深成員的強烈反對(或者該說是砲轟),前 CTO 甚至氣極敗壞地說:台上的人是想要大家臣服於 Rust 宗教,我們 Linux 永不為奴!!

最後整場討論流於「Bikeshedding」(單車棚效應,糾結於雞毛瑣事的無益討論),嚴重偏離重點、進展緩慢,甚至出現人身攻擊及情緒化發言,大會還罕見地關閉這場會議錄影的留言功能。

不久後,小組主導者 Filho 辭去了 Rust for Linux 維護者職務,聲明不再插手 Linux 相關開發;而與會的另一位 Rust 開發者則在後續的郵件與其他成員繼續「激烈地交換意見」,最後因口出 Fxxk 被道德委員會封殺。

Asahi Lina 等開發者在社群媒體表示同情,認為部分 C Kernel 開發者刻意刁難 Rust 維護者,希望 Rust for Linux 專案自動消失。也有觀察者指出,這種環境已經成為「Burnout Machine」(消磨熱情的機器,俗稱絞肉機)。

依目前的發展,感覺 Rust for Linux 小組前途坎坷,而 Linus 本人貌似也開始打預防針:認為 Rust for Linux 的討論「活絡了社群」(雖然有些難看場面),並強調即使 Rust for Linux 最終失敗,這也是學習過程的一部分,自己對 Rust 在 Linux 的未來仍持正面態度。


Comments

# by Nick

當初畢業第一份工作C語言,的確point(指標)的問題沒有寫好或是一知半解中(以當時個人知識蠻難的),的確會造成程式有問題,但是又很難debug。

# by yoyo

C的特點就是能自由操作記憶體,把記憶體管理的權責交給工程師 當然需要更高的專業門檻

# by 我是誰

從哲學及美學的觀點出發,C的確是一個比較好的架構,但是採用C架構的C++根本沒有如期被成功開發出來,所以才要開發RUST。

# by 小羊

Post a comment