LWN Weekly Edition - September 10, 2026
📰 本期概览
本期 LWN 周刊(2026年9月10日)涵盖 7 篇文章,话题跨度颇广:从 Rust "never type" 历时两年终获稳定,到 CERN 从 CentOS 迁移至 Debian 的大规模基础设施转型;从内核内存分层(memory tiering)的热页提升机制,到 Python 多线程确定性测试工具 blanket;再到 TCMalloc 因 RSEQ API 变化导致的性能回退修复,以及排版系统 Typst 0.15 带来的可变字体与 MathML 支持。整体来看,本期兼顾了编程语言演进、内核子系统优化和科学计算基础设施实践,技术深度较高。
📊 共 7 篇文章 · 评论总数 130 · 评论最多:「Welcome to the LWN.net Weekly Edition for September 10, 2026」与「Stabilizing Rust's never type」(各 42 posted)
🔥 文章详情
Front page
本期周刊导览页,概述了各篇文章的主题:Rust never type 稳定化、CERN 从 CentOS 到 Debian 的迁移路径、内存分层热页检测新提案、Python 多线程确定性测试(blanket 项目)、TCMalloc RSEQ 回归修复、Typst 0.15 新特性(可变字体、MathML 等),以及常规的社区简讯与公告。导览本身未提供额外深度内容,主要作为当期文章索引。
Development
Rust 的 "never" 类型(用感叹号 ! 表示)用于标记永不返回的函数和不可能出现值的位置。经过两年多的开发,贡献者 waffle 于 8 月 24 日将其稳定化。之所以耗时如此之久,是因为该改动涉及对先前 Rust 版本的小幅破坏性变更,编译器维护者需要确认其影响面足够小。never 类型的存在既有实践意义(让泛型代码更高效,例如 FromStr trait),也有类型论层面的哲学考量。值得注意的是,Rust 同时用感叹号表示宏调用,但语法上两者不会产生歧义。
在 PyCon US 上,Larry Hastings 介绍了他的 blanket 项目,旨在为多线程 Python 代码提供确定性测试机制。Python 的 free-threaded 版本(去除 GIL)让多线程编程更实用,但线程调度顺序由宿主系统决定,引入了非确定性,导致竞态条件难以复现和调试。blanket 提供了一种机制来控制线程执行顺序,使开发者能够在测试中重现特定的线程交错模式,从而可靠地发现和修复竞态条件。
排版系统 Typst 发布 0.15 版本,带来多项重要特性:可变字体(variable fonts)支持,允许在单个文件中包含多种字重和样式变体;MathML 输出支持;多文献引用功能等。Typst 用 Rust 编写,Apache-2.0 许可,擅长处理技术文档,被视为 LaTeX 的潜在继任者。可变字体通过设置"轴"值来控制字形变化,既节省空间又赋予设计者更大灵活性。新版本还改进了 HTML 输出(仍在进行中)和对字体离散特征的细粒度控制。
Distributions
在 MiniDebConf Winterthur 2026 上,CERN 员工 Federico Vaga 和 Nikos Tsipinakis 介绍了 CERN 将部分系统从 CentOS Linux 迁移到 Debian 的计划。CERN 运行着世界上最大、能量最高的粒子加速器——大型强子对撞机(LHC),其计算环境极为独特。演讲涵盖了迁移的技术路径、CERN 的 FOSS 贡献实践,以及控制加速器系统的 Debian 部署细节。对于面临 CentOS 生命周期终结的大型科研机构,CERN 的经验具有很高的参考价值。
Kernel
内核内存分层中,"降级"(demotion)将页面从快层移至慢层,"提升"(promotion)则相反。降级决策相对简单(类似 swap),但检测慢层中的热页以触发提升一直是个难题——内核要么把热页留在慢层,要么提升后才发现页面并不热,两者都导致性能下降。Bharata B Rao 提交的补丁系列围绕多数据源热页检测构建:内核可通过标记页面不可访问并跟踪缺页中断来收集活动数据。文章探讨了该提案的设计合理性与实际效果。
TCMalloc 利用 restartable-sequences(RSEQ)API 中的 cpu_id_start 字段来检测线程迁移——它向该只读字段写入哨兵值,通过内核重置来感知中断。但 6.19 内核的一项优化取消了无条件设置该字段,破坏了这一技巧。此前的 workaround 是检测旧版 RSEQ 用户并保留旧行为,代价是代码复杂度和性能损耗。Olivier Dion 提出了新的补丁来正确修复这一回归,使其与 CPU 热插拔等特性兼容,同时恢复 TCMalloc 的性能表现。
💬 热点讨论
本期有两篇文章评论数达到 42,远超其他文章,社区关注度最高:
本期导览页,评论区讨论活跃,可能涉及对当期各篇文章的综合讨论。
Rust never type 稳定化引发大量讨论,社区围绕破坏性变更的容忍度、类型系统设计哲学和宏语法兼容性展开热议。
虽未达 30 条门槛,但 CERN 迁移话题关注度较高,读者对大型科研机构的 Linux 发行版选择颇感兴趣。
评论