据 Phoronix 报道,Linux 6.15-rc4 的一些补丁(更新 Bcachefs 文件系统的内核驱动程序)引发了 Linus Torvalds 关于不区分大小写文件系统的一些“直截了当的智慧”。 Bcachefs 开发人员 Kent Overstreet 开始了对话,解释了大约两年前,一些针对不区分大小写的文件和文件夹支持的有缺陷的补丁是如何上游到 Bcachefs 内核驱动程序中的:当我与执行该实现的开发人员讨论时,我注意到 fstests 应该已经有测试。然而,我似乎忽略了告诉他确保测试实际运行……仅仅依靠自动化测试是不够的。你必须关注你的代码在做什么。奥弗斯特里特补充道,“不区分大小写的目录修复背后有一个故事,以及值得吸取的教训。”托瓦尔兹回答说……“不。” “唯一要吸取的教训是人们永远不会学习文件系统。” Torvalds:不区分大小写的名称是非常错误的,你根本不应该这样做。问题不在于缺乏测试,问题在于首先实施它。然后,问题因“试图做对”而变得更加复杂,并且在这个过程中确实犯了可怕的错误,因为“正确”不存在,但尝试将使随机字节具有非常神奇的意义。顺便说一句,无论如何,测试都完全被破坏了。最后我看到,他们实际上并没有测试所有真正有趣的情况——那些导致用户空间安全问题的情况。诸如“用户空间检查文件名与某些安全敏感模式不匹配”之类的安全问题。然后狗屎的大脑文件系统最终会匹配该模式*无论如何*,因为不区分大小写的人*总是*会做诸如忽略非打印字符之类的事情,所以现在“不区分大小写”也意味着“对其他事情也不敏感”……该死。区分大小写是一个BUG。我无法理解文件系统人员“仍然”认为这是一个功能的事实。就好像他们非常崇敬旧的 FAT 文件系统,以至于不得不重新创建它——非常糟糕。这引发了一场非常热烈的来回讨论。 Slashdot 的亮点总结:
在 Slashdot 上阅读这个故事的更多内容。