[分享] Linux之父嗆谷歌工程師:你的code是已刪文
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版本。他希望這個版本能夠解決先前版本中
發現的問題,並鼓勵使用者進行測試。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.64.133.136 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1707310334.A.B30.html
→
02/07 22:15,
9月前
, 1F
02/07 22:15, 1F
推
02/07 22:30,
9月前
, 2F
02/07 22:30, 2F
噓
02/07 22:44,
9月前
, 3F
02/07 22:44, 3F
噓
02/07 22:50,
9月前
, 4F
02/07 22:50, 4F
噓
02/08 01:18,
9月前
, 5F
02/08 01:18, 5F
噓
02/08 01:40,
9月前
, 6F
02/08 01:40, 6F
※ 編輯: jackliao1990 (123.192.157.241 臺灣), 02/08/2024 07:16:56
噓
02/08 14:32,
9月前
, 7F
02/08 14:32, 7F
Linux 近期熱門文章
23
129
PTT數位生活區 即時熱門文章