Linux 开发人员讨论弃用和删除 ReiserFS


长期 Linux 内核开发人员 Matthew Wilcox 发起了一项“是时候删除 reiserfs 了吗?”的讨论。Wilcox 删除 ReiserFS 的动机是由于,他正在追求的内核基础设施的变化,但 ReiserFS 遗留在一定程度上对他的工作造成了阻碍。

Wilcox 指出,除了 Syzbot 的修复和其 tree-wide 代码的修改,ReiserFS 在最近几年几乎都没有新动向;至少从 2019 年开始,似乎就没有任何用户上报的 bug 被修复了。

在树中保留 reiserfs 有一定的代价。 例如,我非常希望删除 ->write_begin 的"flags"参数。我们已经有了处理 AOP_FLAG_NOFS 的基础设施,但  AOP_FLAG_CONT_EXPAND 仍然存在,只被 reiserfs 使用。

翻看过去几年对 reiserfs 的补丁,有对一些 syzbot 报告和 treewide 修改的修复。自 2019 年以来,似乎没有对用户发现的 bug 进行任何修复。reiserfs 是否仍然有一个庞大的安装基础,只是对一个旧的稳定文件系统非常满意? 还是它的所有用户都已经迁移到了新的、令人兴奋的、有积极功能开发的文件系统?

我们以前也删除过对老旧文件系统的支持(ext, xiafs),所以这并不是没有先例。不过,虽然我清楚地知道移除 reiserfs 对其他开发者的好处,但我没有足够的信息来衡量用户的成本。 也许他们对 5.15 支持他们的 reiserfs 文件系统感到满意,并且可以在 5.15 之后升级内核之前迁移到其他文件系统。

除了直接删除之外,另一种可能性是将内核代码精简到对 reiserfs 的只读支持。大多数 reiserfs 的“怪癖”都与写支持有关,所以这可能是一个有用的方法。 同样,我不清楚人们是如何使用 reiserfs 的,所以我不知道它是否有用。  

根据介绍,ReiserFS 于 21 年前作为 Linux 内核的第一个日志文件系统被引入,并在早期开源文件系统中提供了创新功能。有一段时间,ReiserFS 在 SUSE Linux 上被默认使用,并且在 Namesys 时代有着积极的功能开发。

但自从 ReiserFS 的主要开发者 Hans Reiser 在 15 年前因谋杀妻子而被定罪后,除了前 Namesys 开发者 Edward Shishkin 的相关工作外,ReiserFS(或 Reiser4)已经停滞很长一段时间了。虽然 Shishkin 一直在推动 Reiser4/Reiser5 的发展,但随着用户兴趣的减少,ReiserFS 的代码也已基本“腐烂”。且鉴于它与 Hans Reiser 的关系,似乎没有公司愿意再参与其中。更何况如今还有了 EXT4、XFS、Btrfs,甚至是 OpenZFS 这些更好的选择。

而为了大家能够更理性的讨论决策,Wilcox 特意在讨论帖的最后进行了声明表示,这是一个纯粹的技术讨论,不要涉及相关人物。在该讨论帖的下方,Edward Shishkin 则为 ReiserFS 发布一个补丁,以摆脱 AOP_FLAG_CONT_EXPAND flag。

不过,一些其他的内核开发者已经表现出了对废弃/删除该文件系统的意向。按照此前有过的删除内核功能的常见做法,ReiserFS 有可能在实际删除之前被弃用几个内核版本。

从目前的评论来看,看起来 ReiserFS 可能会在 2022 年被弃用,以便在未来的主线 Linux 内核版本中被移除。Dave Chinner 还建议考虑弃用其他未维护且不符合 2038 年的旧 Linux 文件系统的计划。


相關推薦

2023-09-02

Linux 6.6 周期的 linux-fs 合并现已将 ReiserFS 标记为过时的 ("Obsolete") 文件系统。 Reiserfs 是比较老的文件系统,它的开发好几年前就已经停止;其他 Linux 发行版早已选择其他文件系统,例如 btrfs、xfs 或 ext4。 去年的 Linux 5.18 中已

2023-01-17

SUSE 的开发者向 Linux 内核提交了一个 v2 补丁,该补丁将 ReiserFS 文件系统标记为已弃用,并将会在 2025 年从内核中正式删除它。删除的原因主要是过去十多年该文件系统都不再活跃,并且在现代内核的生产用例中也不太可能再使

2022-11-11

退到使用 SLOB 分配器。而据外媒 Phoronix 报道,Linux 内核开发人员正在考虑弃用并最终删除 SLOB 内存分配器。 SLOB (simple list of blocks)分配器是 Linux 内核中三个可用的内存分配器之一。另外两个是 SLAB ( slab allocator ) 和 SLUB(the

2022-09-28

用不带参数的 port.readable.getReader() 的现有代码向后兼容。开发人员可以通过调用 getReader({ mode: 'byob' }) 来检测对 BYOB 阅读器的支持,因为旧实现在传递新参数时会抛出 TypeError。 取消前缀 -webkit-hyphenate-character CSS 属性 此更改支

2022-08-27

版本中,Spring Batch 的参考文档也更新为使用这个后端。 弃用和 API 变化 这个版本包括一些弃用和 API 变化。 弃用 这个里程碑式的版本引入了以下的弃用。 Hibernate 项目读取器和项目写入器被弃用,转而使用基于 JPA 的项目

2023-02-05

,并报告有用的错误。#44777 ,#44832 更多信息: 弃用和删除的功能,请参阅弃用的引擎功能。 引擎 API 的更改,请参阅引擎 API 版本历史。 有关此版本中拉取请求和更改的完整列表,请参阅相关的 GitHub 里程碑: do

2023-10-27

nterprise Audit”的过程。认证 * “mysql_native_password”插件已弃用,用户可以在服务器启动时将其禁用。如果服务器端“mysql_native_password”认证方法被禁用,使用该方法的旧的客户端插件将无法连接服务器,并在错误日志中写入“Acc

2023-02-18

Clonezilla Live 支持多种文件系统,包括 EXT2、EXT3、EXT4、ReiserFS、XFS、JFS、FAT、NTFS、HFS+、UFS、minix 和 VMFS。它还支持 LVM2、multicast 以及 32 位 (x86) 和 64 位 (x86_64) 架构,可用于克隆 GNU/Linux、macOS 和 Windows 系统。 目前 Clonezilla Liv

2023-02-17

议考虑取消这些设置并根据新行为调整值。 除非你正在开发 formulae 或 casks,否则你可以brew untap homebrew/core和brew untap homebrew/cask节省一些空间。 brew update现在将减少自动运行的频率(每 24 小时而不是每 5 分钟),并且这些

2023-05-11

,变化包括新组件和组件主题、更新的组件视觉效果等。开发者必须使用useMaterial3主题标志"opt in"这些变化。在下一个稳定版中,useMaterial3默认为true。 ColorScheme.fromImageProvider() 方法 NavigationBar:这提供了一个 M3 版本的Bot

2023-04-04

nds.postgresql 支持这两个库。 建议及时更新,因为可能会弃用和删除对 psycopg2 的支持代码。 对列和表的评论功能 新的 Field.db_comment 和 Meta.db_table_comment 选项允许分别在列和表上创建注释。 from django.db import models class Question

2024-03-16

Eclipse Vert.x 是一个微服务开发框架,基于事件和异步,依托于全异步 Java 服务器 Netty,并扩展了很多其他特性,以其轻量、高性能、支持多语言开发而备受开发者青睐。 Eclipse Vert.x 版本 4.5.5 现已发布。一些弃用和破坏性变更包

2023-03-07

内核迎合 ICC 编译器的头文件也已经三年没有动过,很多开发者/用户已经忘记,甚至根本不知道内核中还有 ICC 支持。在去年 10 月提出的“放弃内核构建的 ICC ”邮件讨论中,也没有人站出来表示自己正在使用,或者有意向使用

2024-02-01

明 及 4.5.2 发行说明。 4.5.2 版本中还包含了一些弃用和破坏性变更,具体包括: Vert.x Core 弃用 AddressResolverOptions 中的 DEFAULT_SEACH_DOMAINS https://github.com/eclipse-vertx/vert.x/pull/5053 该名称有拼写错误,应使用DEFAULT_SEARCH_DOMAINS