几年前,当我第一次使用 Slackware 时,我很快就爱上了 JFS,而不是 ext3 或 reiserfs,因为它可靠,而且如果出现不正常的关闭,它的磁盘检查速度非常快。直到最近我才发现 JFS 晦涩难懂,几乎完全无人维护。
我不知道我是这样的少数。为什么会出现这样的情况呢?是不是文件系统技术已经发展到了 JFS 现在缺乏任何比较优势的地步?是不是 ext3 与其他操作系统的互操作性更好?特定的其他文件系统是否受到特定供应商或内核开发人员的支持?
与其说这是一个技术问题,不如说是一个历史问题。
答案1
您必须摆脱的第一件事是与 ext 的比较[234]。替换其中任何一个都就像替换 Windows 中的 NTFS 一样。当然有可能,但需要高层做出决定才能进行转换。
我知道你问的是保留现有的替代方案,而不是消除其他替代方案,但这种特权竞争正在耗尽房间里的大部分氧气。在摆脱竞争之前,边缘替代品将很难获得关注。
自从分机[234]不会消失,JFS 及其同类从一开始就处于严重劣势。
(这种现象被称为默认暴政。)
第二件事是 JFS 和XFS大约在同一时间贡献给 Linux,并且它们几乎解决了相同的问题。内核极客可能会争论两者之间的细微差别,但事实是那些遇到过其中一种情况的人[234]的限制在 XFS 和 JFS 中有两个大致相同的解决方案。
那么为什么 XFS 会获胜呢?我不确定,但这里有一些观察结果:
红帽和 SuSE 对此表示认可。
RHEL 7 使用 XFS 作为默认文件系统,它是 RHEL 6 中的一个安装时选项。RHEL 6 推出后,Red Hat 将官方 XFS 支持向后移植到 RHEL 5。在此之前,XFS 通过半官方可用于 RHEL 5。EPEL渠道。
SuSE 比 Red Hat 更早地将 XFS 作为安装时选项,返回 SLES 8,于 2002 年发布。它不是当前的默认设置,但一直以来都受到官方支持。
还有许多其他 Linux 发行版,RHEL 和 SuSE 并不是整个 Linux 领域最受欢迎的发行版,但它们是这大铁选择的发行版。他们正在发挥 JFS 和 XFS 优势最重要的作用。这些公司不能总是摇晃狗,但在涉及大铁的问题上,他们有时可以。
XFS来自SGI,一家现在基本上已经消失的公司。在他们去世之前,他们正式放弃了他们在 XFS 中拥有的所有权利,这样 Linux 人员就可以放心地将其包含在内核中。
IBM 还向 JFS 授予了足够的权利,以使 Linux 内核维护者感到放心,但我们不能忘记他们是一家活跃的、价值数十亿美元的公司,拥有数千项专利。如果 IBM 决定他们对 Linux 的支持不再符合其利益,那么事情可能会变得很糟糕。
当然,现在可能有人拥有 SGI 的知识产权,并且可以大惊小怪,但结果可能不会比上合组织的崩溃。 IBM 甚至可能会介入并帮助压制这样的巨魔,因为他们的利益做目前包括支持Linux。
重点是,XFS 对很多人来说感觉更“自由”。它不太可能造成未来的 IP 问题。我们当前的知识产权制度的问题之一是版权与公司的寿命挂钩,而公司通常不会消亡。好吧,SGI 做到了。这让人们感觉更好地对待 SGI 对 XFS 的贡献,就像对待任何个人的贡献一样。
在任何涉及网络效应如果您有两个大致相同的替代方案(本例中为 JFS 和 XFS),那么您几乎永远不会获得 50/50 的市场份额分割。
在这里,网络效应是培训、兼容性、功能可用性......这些效应将平衡进一步推向获得早期胜利的选项。见证 Windows 与 OS X、Linux 与 all-other-*ix、以太网与令牌环......
答案2
作为在 Linux 上广泛使用 JFS 并深入研究源代码来解决问题的人,我可以假设以下几个原因:
- JFS 是为 AIX 创建的文件系统的一个移植,然后移植到 OS/2,然后开源。由于存在代码污染的风险,没有 AIX 的开发人员参与其中,而且 OS/2 已经有一段时间没有开发了。
- 从我的代码阅读和 JFS 的开发过程中,我发现代码中有很多问题(其中之一是在大端机器(即 IBM 制造的机器)上调整 FS 大小失败),这些问题已由项目修复,但并未得到解决。甚至在修复几个月后就合并到主线内核中,可能是因为 IBM 开发人员并不是树的该部分的正式维护者。
- 该代码存在许多可读性问题,这可能导致发行版缺乏官方支持,因为难以阅读的代码很难调试。
- 我认为 JFS for Linux 的主要用途之一是迁移信息并与 AIX 系统共享信息,但在 AIX5L 中,没有(支持的)选项可以在不使用专用 LVM 的情况下在简单磁盘上使用文件系统。 AIX 不适用于 Linux,而 JFS 则在没有将这些扩展移植到 Linux 的情况下进行了扩展(请参阅数字 1)。
澄清:尽管我过去在 IBM 工作过,但我从来不是 IBM AIX 开发团队或 JFS 开发团队的成员,这些假设的原因是基于我的逻辑推论以及对文件系统和 Linux 历史的熟悉。