[分享] Linux之父嗆谷歌工程師:你的code是垃圾

作者: jackliao1990 (jack)   2024-02-07 20:52:12
https://lkml.iu.edu/hypermail/linux/kernel/2401.3/04208.html
Linux之父Linus Torvalds自從數年前公開比中指駡XXck you NVidia後又一力作。他在電
郵中跟google工程師Steven Rostedt吵了四天:“你的程式碼就是垃圾。我要把你丟進垃
圾郵件一週。”
兩人之前也互嗆過-2020年初在一場演講中,Steven直接將演講主題定成「Arguing
with Linus Torvalds」,內容是如何讓Linux效率得到改善而做出的建議。
Steven起初是發了關於eventfs(事件檔案系統)的帖子,他想探討inodes(索引節點)
是否應該保持唯一性的問題。
inodes是Linux檔案系統中的一個核心概念。它是一個資料結構,用於儲存檔案或目錄的
元數據而不是檔案的實際內容。)
Steven認為Linus先前建議在eventfs中使用相同的inode來簡化getdents()的實現,這意
味著所有檔案和目錄都將使用相同的inode。然而,這種做法後來被發現會導致「find」指
令出現問題,因為目錄和檔案的inode相同。
Linus隨後發現在64位元機器上,eventfs_inode結構中存在一個由於對齊而產生的空洞,
可以用來儲存目錄的inode,這解決了目錄的問題,但檔案仍然保留了自己的inode。
在Steven看來,由於tar指令依賴inode來決定檔案的唯一性,這種做法會破壞tar指令的
功能:目前,tar指令在tracefs(事件檔案系統的一個變體)中已經出現問題,因為它顯
示所有檔案的大小為零,導致tar不複製任何內容。
除此之外,Steven也為自己想到的解決辦法-建議將VFS層的get_next_ino()函式複製到
tracefs的tracefs_get_next_ino()函式中,並加入一個「files」參數。
這樣當建立eventfs目錄時,就可以預先知道所需的inode數量。
tracefs_get_next_ino()將傳回一個新的inode,並預留一個「files」個inode供呼叫者使
用。
當建立檔案的inode時,其inode將是其父目錄的inode加上在該目錄檔案陣列中的索引,

而為每個檔案提供一個唯一的inode。
然而,如此提案卻被Linus強烈反對。Linus的核心觀點是「inode已經不再是唯一的描述
符,我們不應該繼續依賴這種舊有的機制」。
不過對於Linus的回复,Steven並沒有買帳,他堅持認為所有的文件和目錄應該有唯一的
inode,這樣做可以對文件系統的某些方面起到簡化的作用。
然而在幾輪探討過後,Linus就開罵了:不要把事情變得那麼複雜。
你沒有充分理解這些函數的用途和必要性。你的程式碼就是垃圾。
雙方似乎都是各執己見,來來回回博弈了良久,從1月26日一直battle到了1月29日。
Linus在爭吵之餘還發布了Linux核心6.8-rc2版本。他希望這個版本能夠解決先前版本中
發現的問題,並鼓勵使用者進行測試。
作者: wuyiulin (龍破壞劍士-巴斯達布雷達)   2024-02-07 22:15:00
胬胬胬胬胬胬胬胬胬胬胬胬胬胬胬胬胬
作者: abc0922001 (中士abc)   2024-02-07 22:30:00
拜託,貼文章後看一下好不好在八卦板貼完,就用轉錄的
作者: mstar (Wayne Su)   2024-02-07 22:50:00
好瑟喔,又是奴又是肉的
作者: mike0608 (Mike Wu)   2024-02-08 01:18:00
作者: wyvernlee (wyvernlee)   2024-02-08 01:40:00
路過幫噓,賺文章數也不是這樣賺的!!

Links booklink

Contact Us: admin [ a t ] ucptt.com