編譯丨諾亞
出品 | 51CTO技術棧(微信號:blog51cto)
Linus Torvalds最近在Linux內核郵件列表上發表了一篇措辭激烈的帖子,對Google的一位貢獻者關于文件系統方面的建議進行了嚴厲批評。爭論的焦點在于inode,根據Red Hat的解釋,inode是“給定文件系統上特定元數據的唯一標識符”。
過去幾周,inode問題一直在Linux內核郵件列表上引發討論,其中谷歌內核貢獻者 Steven Rostedt和Torvalds圍繞此話題展開了激烈的交流。在一個名為“使所有文件和目錄的inode號都相同”的線程中,有人指出,在使用tar進行文件歸檔時,inode可能仍具有作用。對此,Torvalds反駁稱,inode的時代已經過去了。
他寫道:“是的,inode號曾經很重要,并且背后有一段歷史。但我們應該盡最大努力擺脫那段有缺陷的歷史。inode號現在已經不是唯一的描述符了。我們不再是生活在20世紀七十年代,文件系統已經發生了變化?!?/p>
盡管如此,關于inode的辯論仍在繼續。最終Rostedt建議所有的inode都應該擁有唯一的數字編號。
Torvalds對此回應的用詞和語氣在近年來十分罕見。
畢竟2018年他曾宣布暫時離開并尋求情緒控制上的幫助,此前他為向其他Linux程序員和項目貢獻者的電子郵件中的輕率攻擊道歉,承認那些攻擊行為“既不專業也毫無道理。尤其在我將其變得非常私人化的時候……我現在明白這是不對的,并真心表示歉意”。
Torvalds之所以表現出悔過之意,部分原因在于Linux內核郵件列表實際上對于許多貢獻者來說是一個工作場所。濫用語言暴力不利于營造一個愉快的工作環境,考慮到Linux依賴于志愿者貢獻者和維護者,惡劣的工作環境有可能對項目造成傷害。
針對Rostedt提出的關于唯一inode號碼的建議,Torvalds首先開篇說:“別把事情搞得比需要的更復雜。”
接著他的言辭變得更為激烈:
“天哪,別再復制VFS層函數了!上次是個壞主意,這次也是個極其糟糕的主意。我不會接受這種垃圾代碼。”
Torvalds主要批評Rostedt的點在于,他認為這位谷歌開發者并沒有完全理解所涉及的主題內容——這一點后來得到了Rostedt的認可。
不過,在那之前,Torvalds已經發動了自己的言語“攻擊”。如下所述:
你在未理解函數為何執行特定操作的情況下復制了該函數,因此你的代碼完全是垃圾。
再次強調這一點。
在接下來一段時間里,辯論以相對冷靜的語氣繼續進行。Torvalds提出了他認為可以更好地解決Rostedt所關注問題的建議。
這位Linux之父寫道,他并不打算立即著手處理這個問題,因為他已經為此浪費了足夠多的時間,而且他在其他職責方面也落后很多,因此現在無法在這方面投入精力。
針對Torvalds的說法,Rostedt回復了一條頗有針對性的觀察:
我完全理解你目前的工作負擔和時間安排。我非常感謝你抽出寶貴時間來討論這個議題,并提供了寶貴的見解和替代方案。我會仔細考慮你的建議并重新審視我的實現方式。為了確保我們的代碼質量以及Linux內核整體的穩定性和效率,我會更深入地研究文件系統相關的底層機制,以避免再次出現這樣的誤解和無效工作。再次感謝你的指導,我將據此調整我的開發方向,力求達到更好的解決方案。
頗具諷刺意味的是,我一直推遲的一項職責——就是修復eventfs的同時編寫一份關于維護者如何應對工作壓力和倦怠問題的支持文檔。:-p
到了周日,Torvalds開始在Linux內核的愉快話題上發布消息:Linux內核6.8-rc2版本正式發布。
他指出,在rc1中包含了一個“amdgpu調度錯誤,該錯誤可能導致桌面掛起(最終會恢復,但恢復時間可能長到足以讓大多數用戶選擇重啟電腦而不是等待)”。
“這個問題似乎影響了相當多的人。”
幸運的是,Torvalds本人曾遭遇的一個btrfs bug并未出現在rc1中,因為它在發布前就被注意到了。
他在帖子中寫道:“無論如何,我希望隨著rc2的推出,我們現在進入了發行周期中更為穩定的階段,那些可能影響大量測試者的這類問題已經得到解決。因此,希望后續的修復將會更加細致,盡量不影響到常見的核心配置?!?/p>
“所以,請大家盡情測試吧?,F在是安全的。你們信任我,對嗎?”
當然,如果問題僅僅關于開發內核本身的話。
在Linus Torvalds發布了Linux內核6.8-rc2版本后,他鼓勵開發者和測試者積極參與新版本的測試工作。盡管在內核開發過程中難免會遇到如bug修復、功能優化等挑戰,但通過不斷的迭代更新和社區成員之間的合作與反饋,Linux內核得以持續改進和增強。因此,對于那些信任并關注內核開發的人來說,參與測試不僅有助于提高內核質量,也是推動整個開源生態系統向前發展的關鍵步驟之一。
參考鏈接:https://www.theregister.com/2024/01/29/linux_6_8_rc2/?td=rt-4a




























