LWN Weekly Edition - August 6, 2026

LWN Weekly Edition - August 6, 2026

8 篇文章 · 共 101 条评论
Generated by tanar · 2026-08-13 12:01

📰 本期概览

本期 LWN 周刊(2026 年 8 月 6 日)的核心话题围绕 2026 Linux Storage, Filesystem, Memory Management, and BPF Summit(萨格勒布)的多场讨论展开,涵盖 FUSE io_uring 缓冲区优化、BPF 跨网络命名空间操作、FUSE 子系统维护现状以及 BPF 库生态的未来演进。此外,内核社区还在探索两项重要的进程/文件系统 API 改进:一个替代传统 fork()/exec() 的进程构建器 API 概念验证,以及围绕 O_CREAT|O_DIRECTORY 的系统调用语义重新设计。发行版方面,Fedora 委员会正在推进利益冲突政策的制定。

📊 共 8 篇文章 · 评论总数 101 · 评论最多:「Reconsidering O_CREAT|O_DIRECTORY」(35 posted)

🔥 文章详情

Kernel — 进程与文件系统 API

The beginning of a process-builder API 💬 26 · By Jonathan Corbet

Chen 提出了一个"spawn templates"概念验证补丁,试图替代经典的 fork()/exec() 进程创建模式。其核心思路是通过 pidfd_open(0, PIDFD_EMPTY) 创建一个空壳进程,然后逐步填充其资源(文件描述符、命名空间等),最后执行目标程序。这避免了 fork() 先复制父进程大量状态、再由 exec() 丢弃的浪费。虽然 posix_spawn() 已尝试解决类似问题,但新方案提供了更灵活的 pidfd 原生接口,社区讨论热烈。

Reconsidering O_CREAT|O_DIRECTORY 💬 35 · By Jonathan Corbet

本文讨论了如何在单个系统调用中原子地创建并打开目录,避免 mkdir()+open() 之间的 TOCTOU 竞态。Koolstra 最初提交了 mkdirat_fd()/mkdirat2() 新系统调用,但 Christian Brauner 认为更好的方案是修改现有 open() 对 O_CREAT|O_DIRECTORY 标志组合的处理语义。讨论涉及向后兼容性(历史上该组合行为未定义且各平台不一致)、安全防御编程的实际需求等,是本期评论最多的文章。

LSFMM+BPF Summit — 文件系统

Buffer sizes for FUSE io_uring 💬 4 · By Jake Edge

Bernd Schubert 在峰会文件系统专题中讨论了 FUSE io_uring 的内存浪费问题。当前 libfuse 每个 ring 设置 8 个条目,每个默认为最大 payload 大小(8MB),但元数据请求(如 stat()、目录列举)通常只需 16KB-128KB。他希望实现多种缓冲区大小以避免为小 I/O 分配过大内存,同时不干扰流式 I/O 的吞吐。讨论聚焦于如何在保持高带宽的同时高效服务小请求。

FUSE status and plans 💬 2 · By Jake Edge

FUSE 维护者 Miklos Szeredi 在 BoF 环节坦言自己"不是一个好的维护者"——擅长把关质量但不善于接纳新特性,并公开寻求 co-maintainer(暂无人应征)。待合入的特性包括 Darrick Wong 的 iomap-based 用户空间 API(代码量增加 30%+)和 John Groves 的 famfs 补丁。Szeredi 还计划推出新的 FUSE API,社区活跃度明显提升。

LSFMM+BPF Summit — BPF

Jordan Rife(Cilium/Kubernetes 网络方向)希望让 BPF 程序能够枚举"外部"网络命名空间中的 socket,以改进 socket-lb 功能。当前 socket-lb 通过 cgroup hook 直接在客户端设备上做负载均衡以避免 NAT 额外跳数,但存在后端下线时流量继续发送等限制。与会的 BPF 开发者快速提出了多种替代方案,讨论了跨命名空间访问的权限模型和安全边界。

The future of libraries in BPF 💬 2 · By Daroc Alden

Song Liu 分享了对 BPF 库生态未来的思考。目前 BPF 几乎没有包管理器,现有库大多是小型 header-only 或仅处理用户空间加载逻辑。原因包括:缺乏标准分发方式、BPF 程序能否链接取决于验证器行为、以及尾调用/全局变量等机制的限制。他预测 Rust BPF 包生态将快速发展,但没有提出具体的维护者层面行动建议,更多是引发社区前瞻性讨论。

Distributions

Fedora 委员会正在为 FESCo、SIG 等决策机构制定利益冲突(COI)政策。起因是约 18 个月前 FESCo 对 Peter Robinson 撤销 proven packager 身份的争议性决定。草案要求决策者在可能存在利益冲突时主动披露并回避,但目前不适用于委员会自身。公开讨论于 7 月 23 日启动,预计 8 月 13 日会议上做进一步讨论。对于 Fedora 这样制度完善的项目来说,缺少 COI 政策确实是个意外的空白。

💬 热点讨论

以下为评论数超过 25 的文章,反映社区当前最关注的话题:

社区对系统调用语义变更高度敏感——新增系统调用 vs 复用已有标志组合的路线之争引发大量讨论,向后兼容性和跨平台一致性是核心分歧点。

替代 fork()/exec() 是 Unix 世界的老话题,pidfd_open(PIDFD_EMPTY) 方案引起广泛兴趣,讨论涉及安全性、与容器/沙箱集成等方面。