Linux 7.2-rc4 发布了!缓存调度让数据库起飞、掌机耳机终于有声、strncpy 谢幕,AI 补丁成「新常态」
摘要:Linux 7.2-rc4 于 7 月 19 日发布,合并窗口的大批新功能已全部就位。缓存感知调度首次让内核"看懂" CPU 缓存拓扑,MongoDB 吞吐量直接翻倍;ROG Ally X 掌机的耳机和麦克风终于能用了;潜伏 6 年、累计 360+ 个补丁后,strncpy 彻底退出内核。Linus 更首次确认:AI 代理找 bug、报 bug、修 bug 已成「新常态」。
⏱ 阅读时长:约 10 分钟 | 🐧 适合:技术爱好者、开发者、掌机玩家
上周末,Linus Torvalds 照例签发了 Linux 7.2 的第四个候选版本(rc4)。他在发布说明里用了一个耐人寻味的词——"pretty normal"(相当正常),却特意打了引号。
为什么要加引号?因为现在的「正常」已经不是以前的「正常」了。
Linus 的原话大意是:AI 代理正在前所未有地承担起发现、报告和修复漏洞的工作,让每个候选版本的补丁提交量远超以往。相比过去依赖开发者逐个排查的时代,内核开发节奏已经被彻底改写。
这个「新常态」(the new normal)有多猛?rc1 到 rc4 短短三周,光是修复级变更就已经覆盖了缓存调度、内存管理、文件系统、音频驱动、安全加固等几乎所有子系统。合并窗口阶段攒下的那几个「大家伙」,越到后面越显出真章。
下面一个一个拆开看。
一、缓存感知调度(CAS):内核终于「看懂」CPU 缓存在哪
这是 7.2 最核心的架构级变化,没有之一。
在讲它是什么之前,先想一个问题:你的电脑可能是 8 核、16 核甚至更多,但并不是所有核心共享同一个 L3 缓存。现代 CPU(尤其是多 CCD 的 AMD 和大小核混合的 Intel)的缓存是分区的——核心 A 和核心 B 可能在同一个缓存组里,核心 C 在另一个组里,数据搬来搬去是有成本的。
Linux 之前的调度器 不知道这些缓存边界在哪里。它只知道"这个核心现在闲,把任务移过去",但从冷缓存重新加载工作集(working set)的代价它不考虑。
缓存感知调度(Cache Aware Scheduling,CAS)做的事情很简单:内核现在会追踪一个任务的「工作集」上次「住」在哪个 CPU 缓存分区里,未来调度时优先把它留在这个分区里的核心上执行。
听起来不起眼,但落实到 benchmark 上,效果是真实可测的:
| | |
|---|
| 最高 360% | |
| +30% | |
| 最高 +100% | |
| 最高 +444% | |
💡 简单理解:以前内核是瞎子,把任务在缓存组之间搬来搬去;现在它有了地图,知道搬一次代价多大,能不搬就不搬。
这个特性已经以 CONFIG_SCHED_CACHE 选项正式合入主线,经历了超过一年的社区审查。对 Ubuntu 用户来说,多 CCD 的 AMD 锐龙、Intel 大小核混合架构的笔记本,将是感知最明显的群体。
另外,与 CAS 同属 MM(内存管理)子系统的 MGLRU(多代 LRU)回收链路也被优化了脏页回写逻辑。简单说,以前在内存吃紧时,MongoDB 这种「数据集大于物理内存」的数据库频繁触发页面回收和磁盘 I/O;现在内核更「聪明」地判断哪些页面真的该回收、哪些可以缓缓,减少了不必要的磁盘读写。
搞数据库、跑容器、玩 NAS 的朋友,这波值得关注。
二、strncpy 正式退役:历时 6 年、360+ 个补丁的内核"除锈"工程
说到 strncpy,写过 C 的朋友可能已经下意识皱眉了。
这个函数的「坑」是出了名的:
- • 不保证 null 终止——如果源字符串长度 ≥ 目标缓冲区大小,它不会自动在末尾加
\0。后续用 strlen 或 printf("%s") 去读,轻则读到垃圾数据,重则直接越界崩溃。 - • 静默零填充剩余空间——如果源字符串比缓冲区短,它会把剩下的全部填 0。在小缓冲区场景下可以忽略,但在内核里动辄几百 KB 的缓冲区,这是实打实的 CPU 浪费。
从 2020 年起,内核社区就启动了"消灭 strncpy"的专项工程,用更安全的替代函数(主要是 strscpy(),它强制 null 终止、不做无意义零填充)逐个替换内核中的 strncpy 调用。
到 7.2 合并窗口关闭,这套补丁集历经 360+ 次提交、覆盖 6 年,终于宣告完成——内核树中再也找不到任何一个 strncpy() 调用。
这件事对��通用户完全无感,但对内核代码的健壮性和安全性来说,是不折不扣的历史性节点。
三、数据库/存储层的三重暴击
除了 CAS + MGLRU,7.2 在内核存储栈上还悄悄塞了三颗糖,颗颗都甜在 DBA 和运维人员的心坎上。
3.1 Btrfs 大页(Large Folios)默认开启
Btrfs 在 Linux 6.17 时引入了实验性的 large folios 支持,到了 7.2 正式"转正"——默认���启,不再需要手动挂载选项。
Folios 是内核用来替代传统内存页(page)的基本单位。一个 folio 可以包含多个连续的物理页,这样内核在管理文件缓存时就不需要逐页跟踪元数据,减少了大量"簿记"开销。对大文件读写(备份、媒体库、虚拟机镜像)和大量小文件的元数据操作,效果最明显。
不仅如此,7.2 还引入了实验性 huge folios(单 folio 最大 2MB):
用 Btrfs 做 RAID 或 NAS 存储池的用户,升到 7.2 内核后 fio 跑一轮顺序写大概率能看到肉眼可见的提升。
3.2 EXT4/XFS:两行代码消灭一个无用 memset
这是字节跳动工程师 Fengnan Chang 提交的一个 fix,典型的「代码越少、效果越强」案例。
在 Linux 的 VFS 层,iomap_iter() 是 EXT4 和 XFS 共用的文件映射迭代框架。旧代码在每次迭代结束后,会对 iomap 结构体做一个 memset 清零——初衷是"防御性编程",防止下次迭代读到脏数据。但问题是:调用者在迭代完成后直接丢弃了这个结构体,这次 memset 完全无用。
在 4K 随机读 + NVMe 轮询模式(通过 io_uring 提交)的高 IOPS 场景下,这个多余的 memset 消耗了大量内存写带宽。
修复方法:删掉这个 memset。两行代码。
两行代码,5% 的 IOPS 提升。这才是真正的「优化」。
3.3 EROFS 稀疏 AI 数据集优化
面向 AI 训练场景的 EROFS 只读文件系统,在 7.2 中优化了对大规模稀疏数据集(动辄 TB 级别的 AI 训练语料)的处理效率,I/O 更高效。
四、ROG Ally X 耳机终于有声了——Linux 掌机的里程碑
如果你有一台华硕 ROG Ally X 掌机,并且装了 Linux(Bazzite、ChimeraOS、或者直接用 Fedora/Ubuntu),你大概率遇到过这个问题:插上耳机没声,麦克风也没反应。
这个问题的根源出在 Realtek ALC289 声卡与 Linux 内核 ALSA 驱动的兼容性上——从 2026 年初起,相关用户报告就一直在积累。对于一台核心卖点是「便携游戏」的设备来说,音频残疾这个体验确实让人崩溃。
开发者 Matthew Schwartz 在 7.2-rc4 中提交了两条针对性修复:
ALSA: hda/realtek: Fix headphone output on ASUS ROG Ally X
ALSA: hda/realtek: Fix headset mic on ASUS ROG Ally X
📌 这两条补丁修复的是耳机输出无声 + 耳麦麦克风不收音两个独立问题。
当前怎么用上这个修复?
| | |
|---|
| 等正式版 | 等 7.2 稳定版(预计 8 月中下旬),你的发行版会在更新通道中自动推送 | |
| 尝鲜 | 切换到发行版的测试通道/滚动仓库(如 Arch testing),直接拉取含 rc4 补丁的内核 | |
| 硬核 | 手动拉取 Mainline 内核 7.2-rc4 源码编译安装 | |
🎮 重要信号:ROG Ally X 音频修复 + OneXPlayer 驱动 + sched_ext 重构 + AMDGPU HDMI 2.1 FRL——7.2 在「游戏/掌机」方向上的投入非常密集。如果你一直犹豫"Linux 能不能打游戏",答案正在变得越来越肯定。
五、Rust 悄悄吃掉更多内核代码:39,000 行 Zerocopy 进场
7.2 的 Rust 子模块新增了超过 40,000 行代码,是迄今为止 Rust 在内核中单次增量最大的一次。
核心主角是 zerocopy crate(约 39,000 行)——一个专注于"零成本、安全、编译期错误检测"的内存操作库。它的官方 slogan 你感受一下:
"Fast, safe, compile error. Pick two."
(快速、安全、编译报错。三选二。)
它的作用是在 Rust 代码中安全地进行字节序列和类型之间的转换(类似 C 中的 memcpy / reinterpret_cast),而不需要手写 unsafe 块。内核里很多地方需要把一段内存按不同布局解释——以前靠 unsafe,现在靠 zerocopy 的 FromBytes trait 和 transmute! 宏,编译器在编译期就能帮你检查是不是「合法转换」。
为什么关注这个?
- 1. 它是 Rust crate 生态中最广泛应用的基础库之一,连 Rust 编译器自己都在用
- 2. 引入后,内核中第一个收益者是 NVIDIA Nova 驱动——一处
unsafe impl 被直接删除,且 zerocopy 版本编译后无运行时开销、无 panic 路径 - 3. 标志着主线内核的 Rust 策略从「能不能用」进入「怎么更好用」阶段
与 zerocopy 同时落地的还有:
- • AutoFDO(自动反馈导向优化):Rust 内核代码也能利用编译期性能剖析数据自动优化,Rust Binder 实测约 +13% 性能提升
- • Rust KASAN 支持:软件标签版内核地址消毒器,找内存 bug 更方便
六、更多值得知道的"彩蛋"
以下内容篇幅原因不一展开,但每一条都可以单独写一篇文章。
| | |
|---|
| Apple M3 初步启动支持 | M3 设备终于能用主线内核 boot 了(概念验证阶段,暂非日用级别) | |
| Intel TDX 运行时更新 | | |
| IMA/EVM 后量子 ML-DSA 签名 | Linux 完整性验证体系支持抗量子攻击签名算法,防「量子计算机破解 RSA」的未来风险 | |
| KUnit 支持 JUnit XML 输出 | 内核自测框架输出标准 JUnit 格式,可直接接入 CI/CD 流水线 | |
| sched_ext 源码重构 | 被 Linus 点名批评代码风格「disgusting」后重写,可扩展调度器框架更干净了 | |
| OneXPlayer 掌机驱动 | | |
| USB4STREAM | | |
| 定时器 DoS 防护 | 内核主动防御针对定时器武装(timer arming)的拒绝服务攻击 | |
值得特别提一下的是 IMA/EVM 后量子签名——这不只是一个「安全补丁」。它的底层逻辑是:RSA 和 ECC 在量子计算机面前理论上可以被 Shor 算法破解,而 ML-DSA(FIPS-204)是 NIST 选定的后量子签名标准。内核现在能在证书和模块签名验证阶段就用上它,意味着整个 Linux 完整性链条开始向量子安全时代迁移。步子不大,但方向明确。
七、对 Ubuntu 用户意味着什么?
Ubuntu 26.10(代号"Stonking Stingray")已经确认将使用 Linux 7.2 作为默认内核(Canonical 5 月底在 Ubuntu Discourse 官宣)。发布时间线:
| |
|---|
| 2026 年 8 月中下旬 |
| |
| |
| Ubuntu 26.10 正式发布 | 2026 年 10 月 15 日 |
也就是说,现在追 7.2-rc4,你看到的就是 10 月份 Ubuntu 新版本的「内核预演」。
三种提前尝鲜姿势(风险递减排列):
# 姿势一:Mainline PPA(最直接)
sudo add-apt-repository ppa:cappelikan/ppa
sudo apt update
# 等 7.2 正式版进 PPA 后:
# sudo apt install linux-image-7.2.0-xxx-generic
# 姿势二:等 Ubuntu 26.10 Daily Build
# 下载每日构建 ISO → 虚拟机或闲置设备上体验
# https://cdimage.ubuntu.com/ubuntu/daily-live/current/
# 姿势三:源码编译(硬核玩家专属)
git clone --depth=1 -b v7.2-rc4 \
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux
make olddefconfig
make -j$(nproc) && sudo make modules_install && sudo make install
⚠️ rc 内核不是给生产环境用的。桌面折腾可以,服务器别碰。
八、一张图总结
| |
|---|
| 缓存感知调度(CAS),MySQL 最高 +360% |
| |
| Btrfs 大页默认开、EXT4/XFS 减 2 行 +5%、EROFS AI 优化 |
| strncpy 退役、后量子签名、定时器 DoS 防护、Intel TDX |
| ROG Ally X 音频修复、OneXPlayer 驱动、HDMI 2.1 FRL |
| Zerocopy 39,000 行进场、AutoFDO +13%、Nova 驱动减 unsafe |
| Linus 官宣"AI 发现+修复 bug 成新常态" |
| Apple M3 启动、USB4STREAM、Intel Xe Panther Lake |
7.2 这波内核更新,给我的体感是「全面」而非「单点突破」。调度器有了缓存智商、存储栈被批量打磨、Rust 不再是小打小闹、掌机生态肉眼可见地在变好——AI 更是在后台默默改写着内核开发的工作方式。
如果你用的是 Ubuntu 26.04 LTS,目前的内核还是 7.0(HWE 更新要等几个月),但 7.2 正式版一出来,Ubuntu 26.10 就会成为第一个默认搭载它的主流桌面发行版。到那时,这篇文章里提到的大多数「变化」,会直接变成你桌面体验的一部分。
不需要等到 10 月就可以开始期待。
💡 UbuntuNews | 资讯 · 工具 · 教程 · 社区
🐧 关注我们,获取更多 Ubuntu / Linux 技术干货
💬 加入 QQ 群 / 频道,与全国爱好者交流成长
❤️ 觉得有用?点个「在看」分享给更多人!