关注了就能看到更多这么棒的文章哦~
The rest of the 6.3 merge window
By Jonathan Corbet
March 6, 2023
DeepL assisted translation
https://lwn.net/Articles/924384/
Linus Torvalds 于 3 月 5 日发布了 6.3-rc1,按时关闭了 6.3 合并窗口。那时已经有 12717 个 non-merge commit(和 848 个 merge)进入了 mainline 内核;其中近 7000 个提交是在前半部分合并窗口总结写完后才合并的。因此,6.3 合并窗口的后半段是相当繁忙,有很多的新功能进入了 mainline.
在这段时间内合并的一些最重要的改动是:
Architecture-specific
RISC-V 内核可以使用 "ZBB" 这个 bit 操作扩展了。如果 CPU 里包含了这个扩展,就可以加速字符串操作。
User-mode Linux(在 x86-64 系统上)现在支持用 Rust 编写的代码。
LoongArch 支持了内核重定位(relocation)、内核地址空间布局随机化(kernel address-space layout randomization)、硬件 breakpoint 和 watchpoint 以及 kprobe。
Core kernel
现在可以创建一个无执行权限的 memfd,并阻止后续启用执行权限。
DAMOS 内存管理接口有了新的 "filters" 选项;在相关 commit 中包含了一些文档说明。
新增 PR_SET_MDWE prctl() 操作,会让任何试图在目标进程的内存上同时启用写入权限和执行权限的行为都被拒绝掉;更多信息请参见相关 commit 信息。
Filesystems and block I/O
NFS 文件系统(客户端和服务器端)已经支持了基于 AES-SHA2 加密。
用户空间中的文件系统(FUSE)子系统新增了一个 request extension 机制,可以用来在 request 中添加额外的信息。第一个使用位置就是在一个文件系统 request 中添加 supplementary group。
Christian Brauner 被添加为虚拟文件系统(VFS)层的共同维护者。
Hardware support
时钟: 联发科 MT7981 基本时钟、高通 SM6350 摄像头时钟控制器、高通 SM8550 TCSR 时钟控制器、高通 SM8550 显示时钟控制器、高通 SA8775 和 QDU1000/QRU1000 全局时钟控制器,以及恩智浦 BBNSM 实时时钟。
图形: Orise Technology ota5601a RGB/SPI 面板,Visionox VTDR6130 1080x2400 AMOLED DSI 面板,HIMAX HX8394 MIPI-DSI LCD 面板,Intel "多功能处理单元 "推理加速器,以及 AUO A030JTN01 320x480 3.0 "面板。另外,几个古老的驱动程序(i810、MGA、R128、SAVAGE、SIS、TDFX 和 VIA)已经被删除;它们都被标记为在 2016 年被淘汰了。
工业 I/O: TI TMAG5273 低功耗线性 3D 霍尔效应传感器,TI LMP92064 和 ADS7924 模数转换器,Maxim MAX5522 数模转换器,以及 NXP IMX93 模数转换器。
媒体: OmniVision OV8858 图像传感器和索尼 IMX296 和 IMX415 传感器。
杂项: Unisoc UFS SCSI 主机控制器,带有 PMCI 的英特尔 MAX 10 板管理控制器,Kinetic KTZ8866 背光控制器,基于 Microchip 8250 的串行端口,Ultrasoc 系统内存缓冲器,CoreSight 跟踪、分析和诊断监视器,高通 SDM670 和 SA8775P 互连,飞思卡尔 i. MX6/7/8 端点模式的 PCIe 控制器、Richtek RT9471 和 RT9467 电池充电器、Loongson LS2X I2C 适配器、GXP I2C 接口、Xilinx DMA/Bridge 子系统 DMA 引擎、StarFive JH71XX 电源管理单元、Renesas RZ/V2M 外部电源序列控制器、Allwinner D1 PPU 电源域控制器、MediaTek SoC 稳压器耦合器、Qualcomm 斜坡控制器和 Qualcomm PMIC GLINK 接口。
USB: 瑞萨 RZ/N1 USB 功能控制器、瑞萨 USB3.1 DRD 控制器、高通 SNPS eUSB2 PHYs 和高通 SNPS eUSB2 中继器。
另外:有一个新的 pata_parport 驱动,可以管理通过并口方式连接的 IDE 驱动器。有了这个驱动,大部分工作都由 ATA 层完成,旧的 PARIDE 驱动已经被移除。在这个新的世界里,不再可能在端口上同时放置驱动器和打印机;相关 commit 有更多的信息。
(如果你对并口和 IDE 驱动器不熟悉,可以问问你的父母)。
Miscellaneous
Nolibc 库已经支持了 s390 架构和 Arm Thumb1 指令集。
新的 hwnoise 工具可以测量由硬件引起的 timing jitter;相关 commit 包含了一个描述操作方式的 man page。
perf 工具有了一些改进;相关合并信息中有详细说明。
内核现在可以使用内置的 Dhrystone 基准测试。
Virtualization and containers
x86 的 KVM 已经支持 Hyper-V extended hypercalls。这些调用底层实现是需要传递给 host 端的用户空间。
同样在 x86 上的 KVM 可以更容易地限制 guest 可用的 performance-measurement-unit event;相关 commit 有更多信息。
Internal kernel changes
内部使用的 __GFP_ATOMIC 内存分配标志已被删除。应该几乎没有人会注意到这个变动。
移除了(默认的)V=0 make 选项。V=1 (verbose mode) 和 V=2 (提供每个 target 被 rebuild 的原因) 现在可以作为 V=12 一起选择。
对开发者的 certificate of origin 做了一个小改动,以明确使用昵称(nickname)提交的 patch 也是可以接受的。
capability 的内部的表示方式已经改为直接用 u64 值。之前的数组表示方式是为了在未来能支持更多的 capability,但正如 Torvalds 在 changelog 中所指出的,"我们最不想做的事情就是进一步扩充 capability 集合"。
对使用英特尔 ICC 编译器构建的支持已被删除。它似乎有一段时间无法正常使用了,但没有人注意到。
接下来的七、八周会让这些新代码继续稳定,为 6.3 版本发布做准备,该版本应该在 4 月 23 日或 30 日发布。
全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。
欢迎分享、转载及基于现有协议再创作~
长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~