Linus Torvalds 从 Linux 6.18 中完全移除了 Bcachefs
Bcachefs 是一个备受期待的文件系统,曾被寄予厚望成为 ZFS 和 Btrfs 的竞争者。然而,在 Linux 6.18 的开发周期中,Linus Torvalds 决定将其从内核中完全移除。这一决定引发了开发者社区的广泛讨论,尤其是考虑到 Bcachefs 的开发者 Kent Overstreet 曾长期努力将其合并到主线内核。
Bcachefs 的背景与目标
Bcachefs 最初基于 Bcache(块层缓存)设计,旨在提供高性能、高可靠性的文件系统功能。其核心特性包括:
- 写时复制(Copy-on-Write, CoW)
- 内联数据压缩和加密
- 快照支持
- 多设备支持(类似 RAID)
Bcachefs 的设计目标是解决 Btrfs 的稳定性问题,同时避免 ZFS 的许可问题(ZFS 因 CDDL 许可证与 GPL 不兼容而无法并入 Linux 内核)。然而,尽管技术上有潜力,Bcachefs 的代码质量和维护问题最终导致其被移除。
移除的原因
Linus Torvalds 和内核维护者对 Bcachefs 的主要批评集中在代码质量上。具体问题包括:
- 代码审查不足:Bcachefs 的代码提交量巨大,但缺乏足够的审查和测试。
- 维护负担:内核维护者认为 Bcachefs 的代码结构复杂,难以维护。
- 稳定性问题:尽管 Bcachefs 在部分场景中表现良好,但其在生产环境中的稳定性尚未得到充分验证。
以下是一个示例,展示了 Bcachefs 的代码风格问题。例如,其错误处理逻辑被批评为过于复杂:
static int bcachefs_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
struct bch_fs *c = file->f_path.d
955

被折叠的 条评论
为什么被折叠?



