設置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

Linus 新年首罵:和谷歌大佬大吵 4 天,“你的代碼就是垃圾”

量子位 2024/1/30 20:27:42 責編:清源
感謝IT之家網(wǎng)友 卡拉馬佐夫 的線索投遞!

風風火火的 Linux 之父,Linus Torvalds,他又躍入公眾的視線?!按蜷_方式”依舊是熟悉的配方 —— 罵人。

我們先來看下 Linus 怒懟的名場面:

你的代碼就是垃圾。

我要把你丟進垃圾郵件一周。

而這一次的“受害者”,是來自谷歌的一位程序員,Steven Rostedt。而且他并非是隨隨便便的一位開發(fā)者,用網(wǎng)友的話來說“也算是大佬了”。

▲ 圖源:“OSC 開源社區(qū)”評論區(qū)

不僅如此,從時間線上來看,雙方已經(jīng)交鋒了足足有 4 天之久…… 那么這到底是怎么一回事?

一個“inodes”,吵了四天

這場激辯是發(fā)生在 Linux 內(nèi)核郵件列表。

Steven 起初是發(fā)了個帖子,主題是關于 eventfs(事件文件系統(tǒng))的補丁。

具體而言,就是想探討一下 inodes(索引節(jié)點)是否應該保持唯一性的問題。

(注:inodes 是 Linux 文件系統(tǒng)中的一個核心概念。它是一個數(shù)據(jù)結構,用于存儲文件或目錄的元數(shù)據(jù),而不是文件的實際內(nèi)容。)

Steven 認為:

Linus 之前建議在 eventfs 中使用相同的 inode 來簡化 getdents () 的實現(xiàn),這意味著所有文件和目錄都將使用相同的 inode。

然而,這種做法后來被發(fā)現(xiàn)會導致“find”命令出現(xiàn)問題,因為目錄和文件的 inode 相同。

Linus 隨后發(fā)現(xiàn)在 64 位機器上,eventfs_inode 結構中存在一個由于對齊而產(chǎn)生的空洞,可以用來存儲目錄的 inode,這解決了目錄的問題,但文件仍然保留了自己的 inode。

在 Steven 看來,由于 tar 命令依賴于 inode 來確定文件的唯一性,這種做法會破壞 tar 命令的功能:

目前,tar 命令在 tracefs(事件文件系統(tǒng)的一個變體)中已經(jīng)出現(xiàn)問題,因為它顯示所有文件的大小為零,導致 tar 不復制任何內(nèi)容。

除此之外,Steven 也給出了自己想到的解決辦法 —— 建議將 VFS 層的 get_next_ino () 函數(shù)復制到 tracefs 的 tracefs_get_next_ino () 函數(shù)中,并添加一個“files”參數(shù)。

這樣,當創(chuàng)建 eventfs 目錄時,就可以預先知道所需的 inode 數(shù)量。tracefs_get_next_ino () 將返回一個新的 inode,并預留下一個“files”個 inode 供調(diào)用者使用。

當創(chuàng)建文件的 inode 時,其 inode 將是其父目錄的 inode 加上在該目錄文件數(shù)組中的索引,從而為每個文件提供一個唯一的 inode。

然而,如此提案卻被 Linus 強烈反對。

Linus 的核心觀點是“inode 已經(jīng)不再是唯一的描述符,我們不應該繼續(xù)依賴于這種舊有的機制”。

不過對于 Linus 的回復,Steven 并沒有買賬,他堅持認為:

所有的文件和目錄應該有唯一的 inode,這樣做可以對文件系統(tǒng)的某些方面起到簡化的作用。

然而在幾輪探討過后,Linus 就坐不住了,隨即就出現(xiàn)了剛才怒懟的名場面:

不要把事情變得那么復雜。

你沒有充分理解這些函數(shù)的用途和必要性

你的代碼就是垃圾。

雙方似乎都是各執(zhí)己見,來來回回博弈了良久,從 1 月 26 日一直 battle 到了 1 月 29 日……

不過戲劇性的一點是,Linus 在爭吵之余,后來還發(fā)布了 Linux 內(nèi)核 6.8-rc2 版本。

他希望這個版本能夠解決之前版本中發(fā)現(xiàn)的問題,并鼓勵用戶進行測試。

并非第一次公開“交鋒”

其實在此之前,Steven 也曾在 2020 年初之際,在一場活動演講中,公開與 Linus“交鋒”過。

他甚至直接將演講的主題定位“Arguing with Linus Torvalds”,內(nèi)容依舊是圍繞著如何讓 Linux 效率得到改善而做出的建議。

不過對于這次最新的 battle,網(wǎng)友們也是各抒己見。

有認為應該拋棄歷史包袱的,有認為只是二人設計理念的差距:

▲ 圖源:“OSC 開源社區(qū)”評論區(qū)

你覺得呢?

參考鏈接:

  • [1]https://lkml.iu.edu/hypermail/linux/kernel/2401.3/04208.html

  • [2]https://www.youtube.com/watch?v=0pHImHVrI2I

  • [3]https://mp.weixin.qq.com/s/S0R_5OBSiSbDnl1-U6I4wg

本文來自微信公眾號:量子位 (ID:QbitAI),作者:金磊

廣告聲明:文內(nèi)含有的對外跳轉鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結果僅供參考,IT之家所有文章均包含本聲明。

相關文章

關鍵詞:Linux,Linus

軟媒旗下網(wǎng)站: IT之家 最會買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機APP應用 魔方 最會買 要知