[分享] 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