LWN: 6.1 合并窗口第一部分!

关注了就能看到更多这么棒的文章哦~

The first half of the 6.1 merge window

By Jonathan Corbet
October 7, 2022
DeepL assisted translation
https://lwn.net/Articles/910312/

6.1 合并窗口正在顺利进行中:自从窗口打开以来,已经有 5,752 个 non-merge changeset 合入了 mainline 线仓库。大约是堆积在 linux-next 中的工作的一半,这也意味着是时候来看看到目前为止已经合并了些什么内容。一些期待已久的核心改动已经出现在下一个内核版本中了,但可能会有更多的重大改动还会出现。

到目前为止,已经合并的有趣的变化如下:

BPF

  • 增加了创建 destructive BPF program 的功能。最初提案中包括了一个 panic() 函数,但最终合并的是 crash_kexec() kfunc 这个替代方案。这是一个底层入口,不去做 panic() 试图会做的那些清理工作。

  • BPF 支持在 cgroup 中进行遍历了。这个功能还没有文档,可以先看看相关 commit 来了解一些信息。

  • 针对 BPF 的内存分配器,已经被合并了。

  • 新增了一个 "user ring buffer" BPF map type,用于在 BPF program 和用户空间之间快速传输数据。文档很少,但 merge message 中有 overview 信息。

  • BPF task iterator 现在可以遍历一个 thread 的资源了;相关的 merge message 是唯一对此进行描述的文档。

Core kernel

  • 对 Rust 编程语言的实验性支持已被合入 mainline。根据最近结束的内核维护者峰会上的决定,合入的是一个最小版本的 patch set,没有迄今为止已经在 Rust 中实现了的驱动。相关的 documentation commit 中包含了更多的信息,也有一些小的 sample module 可用了。

  • 对 a.out 可执行格式的支持在 5.18 版本中被禁用了。一直没有人抱怨过,所以现在相关支持已经从内核中完全移除。

Filesystems and block I/O

  • erofs 文件系统已经获得了跨文件系统来共享重复数据的功能

  • statx()系统调用现在可以返回信息来说明此文件是否可以支持 direct I/O,如果可以的话,相关的 alignment 要求是什么。man-page 的改动中描述了新 API,此外还可以在 changelog 中找到一些信息。

Hardware support

  • Graphics:联发科 mt8195 DisplayPort units。

  • Hardware monitoring:Microchip EMC2305 和兼容的 EMC2301/2/3 风扇控制器,Analog Devices MAX31760 风扇速度控制器,以及 TEXAS tps546d24 buck converter。

  • 杂项。Microchip PCI1XXXX 的 I2C 接口、联发科 MT6331 和 MT6332 电源管理 IC、Nuvoton NCT6116 GPIO 控制器、AMD 平台管理框架、联发科 MT6370 背光控制器、Broadcom STB 内存控制器和阿里巴巴 T-Head Yitian 710 DDR 子系统 Driveway 性能监测单元。

  • Networking:Wangxun GbE PCI Express 适配器,Microsemi Ocelot 控制器,以及 Analog Devices ADIN1110 MAC-PHYs。

  • Sound:德州仪器 SRC4XXX DIR/DIT 和 SRC 编解码器,Everest Semi ES8326 编解码器,恩智浦 i.MX8ULP 数字信号处理器,苹果 Silicon MCA 音频子系统,以及英特尔 SkyLake 和 KabyLake 音频处理器。

  • 一些用于在 BPF 中创建 human input device(HID)驱动程序的支持 patch 已被合并,但完整的机制看来还得等到下一个发布周期。

Miscellaneous

  • 内核 Documentation tree 的 top-level 内容已被大幅重写,从而简化寻找有用信息的过程,尤其是针对使用网络浏览器的场景。目前的效果可以在 linux-next 中看到,并将在 6.1-rc1 之后出现在最终生成的 mainline 文档中。

Networking

  • 移除了内核中对古老的 DECnet 协议的支持。用户空间的 API 定义仍然存在,因此支持 DECnet 的程序可以继续成功编译,但它们永远不会找到一个正常的 DECnet 网络了。

  • netlink 协议终于在内核源代码中被记录下来了。该手册的 HTML 版本可以在 kernel.org 上找到。

  • TCP 协议栈现在可以为 socket 使用一个单独的、per-namespace 的哈希表,从而提高了具有大量的繁忙网络 namespace 的系统的性能。这个表默认是禁用的;相关的 commit 中描述了如何配置。

Security-related

  • 基于 LLVM 的内核控制流程完整性机制(control-flow-integrity),之前是在 5.13 版本中被合并的,现在被一个新的实现所取代了,因为更适合内核的需求。

  • 新增了一个 secure-module hook 来控制创建用户 namespace 的能力;尽管 namespace 维护者强烈反对(讨论正在进行中),这个功能还是被合并了。

  • 增加了在 BPF 程序中执行 PKCS#7 签名验证的支持。文档显然已被推后到下一个开发周期了,但这个 merge message 中概述了这个特性存在的原因,以及它的工作原理。

Internal kernel changes

  • Thermal 相关的 devicetree 初始化的 API 有了很大的改动,驱动也已经更新从而能适应这个改动。新的 API 完全没有文档记录,但在相关 commit 中可以了解到一些信息。

截至目前,还有许多重要的 git 仓库尚未被合入 mainline,所以几乎可以肯定地说还有一些大的改动在等待合入。在合并窗口关闭后(几乎确定是在 10 月 16 日),我们将继续关注后半部分的修改总结。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

b7192c248cd05fd590b8ccf40ca9816e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值