内核大更新:稳了!
Linux 7.0-rc4 不仅修补了致命挂起,更迎来了Bcachefs 擦除编码的稳定版与Rust 构建的深度优化。当文件系统不再“实验”,当内存安全语言成为基建,我们是否已站在操作系统演进的新分水岭上?
Linux 7.0-rc4:告别“实验”,拥抱硬核稳定
🚑 急救现场:大型系统的“死锁”突围战
就在大家期待新特性时,Linux 7.0-rc4 先打了一场漂亮的“保卫战”。
上周,开发者们在大型系统上发现了令人头疼的挂起(Hangs)和性能回退。罪魁祸首直指去年 11 月那次大规模的mm/cid代码重写。
想象一下,就像十字路口突然没了交警,车辆(进程)互相堵死,谁也动不了。在启动 VSOCK 监听套接字时,系统甚至可能出现软死锁或RCU 停滞。
幸好,内核大神Thomas Gleixner[1]迅速介入,梳理出一系列补丁。
他做了一件很“极客”的事:直接移除了那个已知缓慢且不稳定的for_each_process_thread()计数逻辑,换成了一个简单的sched_mm_cid::node列表。
这就好比把复杂的绕路导航,换成了一条直达的高速公路,瞬间解决了CID 任务列表遍历的性能回归问题。
除了调度器,x86 架构也修了一个隐蔽的坑。
有些固件在电脑从休眠(suspend-to-RAM)醒来时,会“自作主张”地重新启用x2apic硬件模式,而内核还以为它是关着的。这种“信息不对称”直接导致系统唤醒后死机。
现在的补丁逻辑很简单粗暴但有效:恢复时,如果内核预期它是关闭的,就强制禁用 x2apic,彻底杜绝了这类固件“捣乱”引发的挂起。
💾 文件系统的成年礼:Bcachefs 1.37
如果说修复 Bug 是日常功课,那么Bcachefs 1.37[2]的发布则是一场“成年礼”。
由 Kent Overstreet 发布的这个版本,正式宣布其核心功能——擦除编码(Erasure Coding)——结束实验状态,转为稳定(Stable)。
这是什么概念?以前你用它存重要数据可能心里打鼓,现在它可以像 RAID 一样,放心地用于数据冗余纠错了。
这意味着 Bcachefs 在数据安全性上,终于补齐了最后一块短板,具备了在企业级场景“挑大梁”的能力。
不仅如此,1.37 版本还带来了多项实用升级:
- •自动容错:能自动处理设备不支持
flush/fua的情况,不再轻易崩溃。 - •极速恢复:在非正常关机后,恢复速度显著提升。
- •日志回滚安全化:Journal rewind 功能现在被标记为安全,文件系统会自动追踪安全回滚的边界,防止数据损坏。
对于多设备文件系统,新版本还优化了性能,并增加了subvolume list、list-snapshots等实用的子命令。
最让人兴奋的是,Bcachefs 1.37 已经完美兼容当前的Linux 7.0 内核代码。
此外,Bcachefs 的用户空间组件正在加速向Rust 语言迁移,这让它的未来更加值得期待。
文档方面也下了血本,更新了约100 页的《操作原则》(Principles of Operation),让开发者能透彻理解其内部机理。
🦀 Rust 入核:从“能用”到“好用”
Linux 对 Rust 的支持不再是小打小闹,而是开始深耕工具链和构建质量。
Miguel Ojeda[3]提交的最新补丁已被 Linus Torvalds 合并,主要为了迎接即将到来的Rust 1.95和1.96版本。
这次更新解决了一个痛点:构建可复现性(Build Reproducibility)。
以前编译内核时,代码路径可能会绝对化,导致不同机器编出来的二进制文件不一样,甚至泄露本地路径信息。
现在的补丁通过重映射路径,避免了以绝对路径开头,既保护了隐私,又确保了anywhere 编译,anywhere 运行的一致性。
同时,内核树还调整了对unused_features的检查策略,并优化了依赖信息的生成方式,不再需要临时的.d文件,让构建过程更干净、更高效。
在代码层面,kernelcrate 修复了!CONFIG_BLOCK下的警告,pin-initcrate 则移除了一些不安全的属性,确保在 Rust 未来的TAIT(类型别名实现特征)特性面前依然sound(健全/安全)。
「 核心观点 」
Linux 7.0 的进化逻辑已变:不再是单纯堆砌新功能,而是通过 Bcachefs 的稳定化和 Rust 工具链的精细化,构建一个更安全、更可信赖的底层基石。
🚀 下一站:无缝体验
从修复致命死锁到文件系统功能转正,Linux 7.0-rc4 证明了自己“稳中求进”的实力。当数据冗余变得触手可及,当内存安全成为编译默认,操作系统的未来是否会因此彻底改写?
One More Thing
你知道吗?Bcachefs 的擦除编码功能其实已经打磨了好几年。在这次 1.37 版本之前,它在过去两年的更新中经历了无数次的微调与重构,直到今天才敢摘下“实验”的帽子。这恰恰印证了内核开发那句老话:“早发布,常发布,但绝不发布没准备好的代码。”
👇对于这件事,你怎么看?欢迎在评论区留下你的真知灼见。
别忘了点赞和在看,让更多人看到有价值的讨论。转发到朋友圈,更是对我们最大的支持!
💡创作声明:本文为人机共创内容。
引用链接
[1]Thomas Gleixner:https://www.phoronix.com/news/Linux-7.0-Sched-Fixes-Perf-Hang
[2]Bcachefs 1.37:https://www.phoronix.com/news/Bcachefs-1.37-Released
[3]Miguel Ojeda:https://www.phoronix.com/news/Linux-7.0-rc4-More-Rust