PTT推薦

[爆卦] Linux之父狗幹谷歌工程師:你的程式是垃圾

看板Gossiping標題[爆卦] Linux之父狗幹谷歌工程師:你的程式是垃圾作者
jackliao1990
(j)
時間推噓31 推:33 噓:2 →:15

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 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.113.191 (臺灣)
PTT 網址

gino0717 01/30 19:26南無阿彌陀佛

rererere147 01/30 19:27所以?

sofaly 01/30 19:27哈梅哈梅哈

darkbrigher 01/30 19:27直接各照論點弄一個範例試試不就好了

pshuang 01/30 19:28linus一直都很嘴

HJC6666 01/30 19:29正常 每次看過自己寫過的程式也像垃圾

a27588679 01/30 19:29跟我想的一樣

johnhmj 01/30 19:30linus又有八卦可看了

james732 01/30 19:31對不起我每天都在製造垃圾QQ

industrialld 01/30 19:32C++ :

ladygaga168 01/30 19:34獨裁者

keyman2 01/30 19:36我看不懂484比垃圾還不如QQ

birdy590 01/30 19:37實做能力超強的大神 別跟他吵比較好 @@

kashiwa27 01/30 19:37記者請chatgpt寫的嗎

isequ 01/30 19:39阿宅之間的戰爭 通常爭的東西都窮極無聊

sam90205 01/30 19:40釣得到jserv 嗎

sweetsmoke 01/30 19:42嗯嗯 跟我想的一樣

jason761224 01/30 19:49這些無聊的東西未來都會改變你的生活

summerleaves 01/30 19:49嗯嗯 跟我想的一樣

summerleaves 01/30 19:50jserv 等一下應該會來回一篇

WWIII 01/30 19:59讚 真神

Brinkley 01/30 20:00宅宅相輕

wei115 01/30 20:00據說linus罵走一個核心開發者後 就收斂很

wei115 01/30 20:01多了 之前C++要進kernel的討論他也沒噴

orze04 01/30 20:03要抓inode的指令一堆 到底誰在把事情搞複

orze04 01/30 20:03

G7FPV9KD 01/30 20:03卡等jserv回文XD

CMPunk 01/30 20:08他罵nv fuck you都十幾年前的事了吧 後面

CMPunk 01/30 20:08明明還有比較近期罵其他事的

orze04 01/30 20:13intel AVX512

MoonCode 01/30 20:19不修會怎樣嗎

kamichu 01/30 20:26原文比較清楚

yw1002 01/30 20:28吵什麼 就各自用各自的方法去實作 讓結果

yw1002 01/30 20:28來做實證

lab214b 01/30 20:30基於Ockham's Razor?

la8day 01/30 20:30Linus有買nvda 就不會罵了

andy199113 01/30 20:42跟神吵架 欠罵

ppex 01/30 20:44如果這傢伙對上廚神戈登,誰的髒話比較難聽

kig88 01/30 20:52召喚jserv出來回文

star1234 01/30 20:58Linus就偽物啊,我只知道Linux

DarkIllusion 01/30 21:18看不懂 記者在寫三小

Ipluck 01/30 21:32笑死 雖然我看不太懂

poorenglish 01/30 21:33Linux之父確實有資格嘴別人

ases60909 01/30 21:47我看一週前自己寫的code也覺得是垃圾

ping870224 01/30 23:06我敢保證記者100%不懂XD但我也不懂我

ping870224 01/30 23:06做硬體的XD

b0920075 01/30 23:10linus 噴人算三小新聞

DeepBlue10 01/30 23:42不夠大咖被臭還沒人知道 QQ

c88tm 01/31 00:01對不起我是垃圾

jackycheny 01/31 01:49樓下宅色夫本人