LWN Weekly Edition - October 22, 2026

LWN Weekly Edition - October 22, 2026

10 篇文章 · 共 122 条评论
Generated by tanar · 2026-10-29 12:01

📰 本期概览

本期 LWN 周刊(2026 年 10 月 22 日)以 Linux Plumbers Conference 2026 和 Kangrejos 2026 两场会议的报告为主线,涵盖了内核安全、Rust for Linux 的深入讨论以及 Android 内核维护等核心话题。最值得关注的是 Gary Guo 在 Kangrejos 上提出的自引用数据结构安全方案(33 条评论引爆社区),以及 7.3 内核开发统计——这是 Linux 历史上最繁忙的开发周期,首次突破 20,000 次提交。此外,NFS 服务器的新特性、SUSE 全面禁用 setuid 的安全实践、以及 Nix flakes 的深入解析也各有亮点。

📊 共 10 篇文章 · 评论总数 122 · 评论最多:「Safe self-referential data structures in kernel Rust」(33 comments)

🔥 文章详情

Front page

本期封面导览,涵盖了九篇专题文章:Android 内核中的 vendor hooks 机制、可复现构建下的内核模块完整性校验、内核 Rust 中安全的自引用数据结构、NFS 服务器新特性、SUSE 禁用 setuid 的系统级安全实践、XArray 的 Rust 重写讨论、Rust 跨 crate 前向声明、7.3 内核开发统计,以及 Nix flakes 深入解读。

Kernel

Vendor hooks in the Android kernel 💬 4 · By Jonathan Corbet

Android 6.6 内核携带超过 3,100 个树外补丁,其中约 42%(1,306 个)是纯 Android 改动,而其中超过三分之一是 vendor hooks——本质上是一种特殊用途的 tracepoint。当厂商需要修改通用内核行为时,在相应位置插入 trace_android_vh_feature_name() 调用,设备加载专用模块即可挂钩。文章深入分析了这一机制如何让 Android 在维护大量厂商定制的同时与主线内核保持一定程度的兼容。

来自 LPC 2026 的报告,Jeff Layton 介绍了 Linux NFS 服务器的一系列新特性。LOCALIO 协议允许同主机上的客户端和服务器绕过大部分协议处理直接访问文件系统,显著提升容器化场景性能。异步远程复制操作现已默认启用。I/O 缓存控制大幅改善——历史上客户端和服务器对缓存策略缺乏协调,现在新增了更精细的控制机制。文章还展望了未来可能的功能改进方向。

Development statistics for the 7.3 kernel 💬 6 · By Jonathan Corbet

7.3 开发周期是 Linux 历史上最繁忙的一次:总提交首次突破 20,000,其中非合并提交 18,765 个,新增约 92 万行代码、移除约 27 万行,净增长 65 万行。贡献者人数达到 3,021 人,打破了 7.2 周期刚创下的 2,652 人纪录。按变更集计算最活跃的是 Christian Brauner(216 个)和 Bui Duc Phuc(206 个),按改动行数则是 Aurabindo Pillai 以 126,464 行居首。

Security

Thomas Weißschuh 在 LPC 2026 上介绍了如何在保持可复现构建的前提下实现内核模块完整性校验。可复现构建要求给定相同源码和环境,任何方都能逐位重建制品;而模块完整性校验(如哈希签名)通常与构建产物绑定,二者存在张力。他的补丁集经过多轮修订,提出了一种兼顾两者的方案,并讨论了进一步改进的可能性。

SUSE 杰出工程师 Thorsten Kukuk 在 All Systems Go! 2026 上介绍了他全面禁用 setuid 的工作。他利用 systemd 的 NoNewPrivileges=yes 配置为 PID 1 启用内核 no_new_privs 标志,从而阻止所有进程获得新权限。SUSE 安全团队已禁止包中包含未经审查的 setuid/setgid 二进制文件。Kukuk 的目标是完全消除 setuid 的使用,但仍需解决部分遗留兼容性障碍。

Development

Gary Guo 在 Kangrejos 2026 上展示了一种巧妙的方案,使内核 Rust 中的自引用数据结构无需 unsafe 代码。Rust 的生命周期规则让自引用结构几乎无法安全实现,而内核的 pin_init crate 用于创建不可移动数据结构(通常用于与 C 互操作)。Guo 的改动有望移除 Nova 驱动中大部分与生命周期相关的 unsafe 代码,并逐步推广到其他 Rust 组件。这是本期评论最热烈的文章(33 条),社区围绕类型论、子类型关系和实际可行性展开了深入讨论。

Discussing a rewrite of XArray 💬 15 · By Daroc Alden

Daniel Gomez 在 Kangrejos 2026 上发起讨论,探索用 Rust 重写 XArray 数据结构的可能性。起因是 XFS 在 2023 年暴露的文件系统损坏 bug——folios 支持引入的缺陷在内核中潜伏数年未被发现,因为用户依赖稳定内核。Gomez 认为 Rust 可能在安全性和性能上带来改善,但与会开发者对替换核心数据结构持谨慎态度,双方就可行性与风险展开了深入交流。

Jana Dönszelmann 在 Kangrejos 2026 上提出了一种新的 Rust 语言特性——跨 crate 前向声明,类似于 C 的弱符号链接机制。她还原型了新的编译器标志 -Coverflow-checks=report,为内核处理整数溢出提供更灵活的选择。目前 Rust 整数溢出只能在 panic 和静默回绕间二选一,新方案允许注册自定义处理函数,有望清理内核 Rust 代码中的溢出处理逻辑。

Distributions

Understanding Nix flakes 💬 4 · By Tyler Langlois

Nix flakes 是 Nix 包管理器的实验性功能,旨在以更自包含、可复现的方式构建项目。尽管仍处于实验阶段,flake.nix 文件已在开源项目中广泛流行,用于提供预定义的开发环境和构建自动化。文章介绍了 flakes 的核心价值——跨发行版的可靠构建——以及其复杂的历史和不确定的稳定化路径,为不熟悉 Nix 生态的开发者提供了入门指引。

💬 热点讨论

社区对 Gary Guo 的自引用数据结构安全方案反响热烈。讨论围绕 Rust 类型系统的子类型理论、pin_init 的实际语义、以及 Nova 驱动中 unsafe 代码移除的可行性展开,是本期最受关注的文章。

用 Rust 重写 XArray 的提议引发了关于核心数据结构迁移风险、XFS 稳定性以及 Rust 在文件系统层适用性的讨论。

全面禁用 setuid 的安全实践引发了关于兼容性、systemd 依赖以及替代方案(如 file capabilities)的讨论。

跨 crate 前向声明提案引发了关于 Rust 语言设计哲学、编译器复杂性以及内核实际需求的讨论。