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

Linus新年首骂:和谷歌大佬大吵4天 “你的代码就是垃圾” 而这一次的“受害者”,是来自Google的一位程序员,Steven Rostedt。而且他并非是随随便便的一位开发者,用网友的话来说“也算是大佬了”。△图源:“OSC开源社区”评论区不仅如此,从时间线上来看,双方已经交锋了足足有4天之久……那么这到底是怎么一回事?一个“inodes”,吵了四天这场激辩是发生在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版本。他希望这个版本能够解决之前版本中发现的问题,并鼓励用户进行测试。并非第一次公开“交锋”其实在此之前,Steven也曾在2020年初之际,在一场活动演讲中,公开与Linus“交锋”过。他甚至直接将演讲的主题定位“Arguing with Linus Torvalds”,内容依旧是围绕着如何让Linux效率得到改善而做出的建议。不过对于这次最新的battle,网友们也是各抒己见。有认为应该抛弃历史包袱的,有认为只是二人设计理念的差距:△图源:“OSC开源社区”评论区 ... PC版: 手机版:

相关推荐

封面图片

Linus 新年首骂:和谷歌大佬大吵 4 天,“你的代码就是垃圾”=========好好好,会骂你就多骂

封面图片

Linus Torvalds 对 Linux 6.9 的某些 Bcachefs 代码不满意

Linus Torvalds 对 Linux 6.9 的某些 Bcachefs 代码不满意 为 Linux 6.9 提交的 Bcachefs 代码包括一些前期准备工作,如为子卷走读提供用户空间界面、改进目录结构检查、改进日志流水线以提高性能、改进丢弃路径以提高效率,以及其他优化。维护者肯特-奥弗斯特里特(Kent Overstreet)将针对 Linux 6.9 的 Bcachefs 改动的拉取请求总结为:针对 Linux 6.9 的 Bcachefs 更新9 的 bcachefs 更新- 子卷的子 btree;这是为走子卷提供用户空间接口所必需的,稍后会推出- 对目录结构检查的大量改进- 改进了日志流水线,显著提高了高深度写入工作负载的性能- 改进了丢弃路径:丢弃路径更加高效,不再不必要地刷新日志- 缓冲写入路径现在可以避免占用节点锁- 调出各种库代码供 XFS 使用:time stats、mean_and_variance、darray、eytzinger、thread_with_file- 新的毫米助手:memalloc_flags_{save|restore}- mempool 现在可以使用 kvmalloc mempool但让 Linus Torvalds 感到不解的是,有些补丁将 Bcachefs 代码中的某些元素移到了一些库类型的代码中,这样其他文件系统就可以很容易地重复使用这些代码了XFS 就是对可能重复使用某些 Bcachefs 功能感兴趣的文件系统。Linus Torvalds响应了 Bcachefs 的拉取请求:,"stdio_redirect_printf()"和 darray_char 只是可怕的接口,没有任何解释。这些接口太恶心了。这些接口太恶心了。,把它放在你自己的代码里,不要试图把它变成一个通用的库。,如果你**把它变成一个库,它需要(a) 解释得更清楚(b) 有更合理的命名,减少恶心和完全无意义的接口("DARRAY()")。但最让人头疼的还是那些疯狂的数学。该死的,我们很久以前就讨论过那些愚蠢的"均值和方差"垃圾。你没有解释为什么它不能使用简单得多的 MAD(中位数绝对偏差)而使用方差。这个错误的决定直接导致了毫无意义地使用过于复杂的 128 位数学。当时我就说它设计过度,据我所知,除了一些细微的类型名称细节外,绝对没有任何变化。但现在你却试图将这些垃圾代码作为通用库代码推给其他人使用,这立刻就意味着我**介意过度工程化的接口。在其他方面,time_stats 看起来就像一个有名称和用途的正常接口,但使用了可怕的基础架构后,它就失效了。在 Overstreet 阐述了自己的观点后,Torvalds补充道方差值是不同的,但 MAD 和标准偏差之间的区别基本上只是一个常数因子(不同的分布会有所不同,但那又怎样?)那么,为什么一个常数因子会对指数加权产生任何影响呢?总之,请把你的代码放在 bcachefs 中。也许 xfs 也想拷贝你的代码。我不在乎,这看起来很蠢,但这是文件系统的选择。但如果我们要让它成为一个通用的内核库,它就必须理智。不能为了一个随机的统计元素,就让人们做 64 位的平方根和 128 位的除法。因此,从目前的情况来看,Linus Torvalds 并没有接受这个针对 Linux 6.9 内核的 Bcachefs 拉取请求,原因是提议的通用库代码。我们将拭目以待,看看未来几天是否会有新的拉取请求,放弃这些补丁或以其他方式重新修改,以满足 Linux 创建者的要求。 ... PC版: 手机版:

封面图片

Linus Torvalds 抱怨 AMD fTPM 就是个垃圾,呼吁用户禁用该功能

Linus Torvalds 抱怨 AMD fTPM 就是个垃圾,呼吁用户禁用该功能 Linus 指出:用于同一任务的 CPU RDRAND 指令不会导致卡顿,因此可以用来替代 AMD fTPM。实际上卡顿问题不仅影响 Windows 系统,Linux 系统也同样受到了影响。 Linus 经过测试后发现,基于 CPU 的 RDRAND 与基于 fTPM 的 RDRAND 对比,在数百个 CPU 周期 (可能是数千个周期) 里,CPU 的 RDRAND 没有出现与 fTPM 那样的卡顿。 你编:是时候出花QAMD.jpg了

封面图片

Linux 6.9 发布 移除旧版 NTFS 驱动程序

Linux 6.9 发布 移除旧版 NTFS 驱动程序 Linus Torvalds 今天宣布发布并全面推出 Linux 内核 6.9,这是 Linux 内核的最新稳定版本,引入了多项新功能并改进了硬件支持。Linux 内核 6.9 将 EXT2 文件系统标记为已弃用。同样,Linux 6.9 最终删除了旧的 NTFS 文件系统实现,默认为 NTFS3 以支持 NTFS 文件系统。Linux 内核 6.9 将是一个短暂的分支,仅支持几个月。将由 Linux 内核 6.10 接替,其合并窗口现已由 Linus Torvalds 正式打开。预计将于2024年9月中下旬发布。

封面图片

Linus Torvalds宣布首个Linux内核6.8候选版本

Linus Torvalds宣布首个Linux内核6.8候选版本 Linux 内核 6.8 的最终版本预计将于 3 月下旬发布。Linus Torvalds 今天刚刚宣布首个候选版本 (RC) 里程碑可供公开测试。为期两周的 Linux 内核 6.8 合并窗口随着 Linux 6.7 的发布而自动开启,现在合并窗口已经关闭,这意味着第一个候选发布版 (RC) 开发版本已经可供早期用户、发行版维护者和技术人员使用。 下载地址:、

封面图片

Linus Torvalds 宣布推出首个 Linux Kernel 内核 6.1 RC 预览版:初步支持 Rust 编程语言

Linus Torvalds 宣布推出首个 Linux Kernel 内核 6.1 RC 预览版:初步支持 Rust 编程语言 Linus Torvalds 已经启动即将到来的 Linux 6.1 内核系列的开发周期,并在今天宣布了第一个候选发布版(RC),支持公共测试。 随着 10 月 2 日 Linux 内核 6.0 的发布,为期两周的合并窗口现已关闭,现在是时候提前体验下一个重要版本 Linux 内核 6.1 了。 Linux 内核 6.1 的第一个候选版本(RC)现在已经发布,并准备好让测试者、早期采用者和尝鲜用户使用,最终版本预计在 2022 年 12 月初或中旬发布。 Linux 6.1 最大的新功能将是合并 Rust 基础设施代码。然而,目前只是对 Rust 编程语言支持的非常基本的实现,还不能用于实例。 更多详细信息可前往:

🔍 发送关键词来寻找群组、频道或视频。

启动SOSO机器人