综合 Linux 6.18 LTS:bcachefs 被移出主线内核,改用 DKMS 模块维护

2026-09-28 21:01:47

Linux 6.18 LTS:bcachefs 移出主线,改用 DKMS 模块维护

Linux 6.18 于 2025-11-30 发布,成为第 26 个 LTS 版本,预计维护到 2028-12。Linus 计划 6.19 走 rc8。

bcachefs 被整个移出内核主线

6.18 里最受关注的一处硬变化是 bcachefs 文件系统被从内核树中整体移除。改动本身有争议,落到使用层面的结果是:bcachefs 不再随主线内核源码一起构建,改为由外部 DKMS 模块维护,在版本状态表里的标记也从 Supported 变为 Externally maintained。

从主线迁移到 DKMS 的要点

  • 6.18 的内核配置里已经没有 bcachefs 对应的 Kconfig 项,升级后 CONFIG_BCACHEFS* 不再生效,需要另行获取外部模块源码并构建。DKMS 的意义在于内核小版本更新后自动重建模块,避免每次升级内核都手动重编。
  • 模块要被 initramfs 收录,否则挂载发生在 initramfs 阶段的文件系统会找不到驱动。用 dracut --force --add-drivers 之类的方式重建 initramfs,或在相应配置里声明额外模块。
  • 启用 Secure Boot 时,外部构建的模块需要按本机策略签名,未签名模块会被拒绝加载。
  • 风险集中在两点:一是根文件系统或关键挂载点使用 bcachefs 时,模块加载失败会直接导致无法开机,升级前应确认有可回退的内核与 initramfs;二是 on-disk 格式与工具链(bcachefs-tools)的版本匹配不再由内核发布节奏保证,需要跟着外部项目走。多机环境建议先在非关键节点上验证一轮升级流程。

内存分配:slub sheaves 与 kfree_rcu 批处理

新增 slub "sheaves",本质是 per-CPU 缓存,让分配尽量在本地完成,减少跨 CPU 同步,分配路径与释放路径都因此提速。同时新增 kfree_rcu() 的批处理与回收机制。

dm-pcache:用持久内存给块设备做缓存

新增 device-mapper target dm-pcache,把持久内存作为较慢块设备的缓存使用。在 6.18 的概述材料里,dm-pcache 与 device mapper persistent cache 指的是同一个东西。

网络

  • UDP RX 性能与扩展性大幅提升,做法是 NUMA-aware locking,并重排数据结构的二进制布局。压力场景下再提升约 50%,极端情况更高;phoronix / cnx 的报道给出的数字是最高约 47%。
  • TCP 支持 Accurate Explicit Congestion Notification。
  • TCP 连接支持 PSP 加密,定位类似 IPsec / TLS,但硬件卸载能力更强。

其他内核侧变化

  • swap 性能提升:以 swap table 作为 swap cache 后端,提升幅度 5–20%。
  • BPF:BPF signed programs;PowerPC 上的 BPF arenas。
  • 进程命名空间可以作为 file handle 管理,方式类似 pidfd。
  • 新增 microcode= 命令行选项,用于控制 x86 microcode loader 的行为。
  • Rust 支持扩展:atomic、maple trees、DebugFS、bitmaps;Arm Mali CSF Tyr GPU 驱动用 Rust 编写;Rust Binder 驱动。
  • NFS 服务端更易扩展(移除缓存)。
  • Btrfs 初步支持 block size 大于 page size。
  • KVM:虚拟化 CET(Intel/AMD)、AMD SEV-SNP CipherText Hiding、Kexec HandOver 保留 vmalloc 分配。

6.17 引入的内容与 EOL

6.17 发布于 2025-09-28,引入了 attack vector controls(按攻击向量选择 CPU 缓解措施,减少手工配置)、file_getattr / file_setattr 新 syscall、更好的 core dump、优先级继承(proxy execution 初始版)、调度器无条件以 SMP 编译、per-NUMA-node proactive reclaim、新的 fallocate(2) flag FALLOC_FL_WRITE_ZEROES(更高效地写零)、线性时序逻辑监视器。6.17 已于 2025-12-18 EOL。

来源:KernelNewbies Linux_6.18、phoronix "Linux 6.18 Released"、9to5linux、CNX Software、Wikipedia Linux kernel version history。

复制全文 生成海报 Linux 内核 LTS bcachefs DKMS

推荐文章

程序员茄子在线接单