经过两个多月的开发,Linux Kernel 5.19 终于来了,它引入了对 ZSTD 压缩固件文件的支持、对 AMD 的安全嵌套分页功能的支持、用于管理多路径 TCP (MPTCP) 流的新用户空间 API、初始支持龙芯“LoongArch”RISC ISA CPU架构,以及支持ARM Scalable Matrix Extension (SME)。
还新增了对主管模式基于页面的内存类型的支持,以及在 RISC-V 架构的 64 位系统上运行 32 位二进制文件的能力,支持 SMP 协处理器、KCSAN 和 Xtensa 架构的休眠,新的通用票证spinlock 类型以添加对各种架构(如 RISC-V、OpenRISC 和 C-SKY)中完整 qspinlock 实现的支持,并为 fanotify 机制添加一个 FAN_MARK_EVICTABLE 新标志,以避免将目标 inode 固定在 inode 缓存中。
Linux 5.19 还添加了一个新的英特尔“现场扫描”机制来检测英特尔 CPU 中的问题,一个基于 Android Goldfish 模拟器的 m68k 架构的虚拟机实现,以及支持使用任何给定的 inode 存储数十亿个扩展属性以及一个新的“记录属性重放”功能,允许在 XFS 文件系统中以原子方式同时修改多个扩展文件属性。
最重要的是,EROFS 只读文件系统已更新为使用 fscache 层来提高运行大量容器时的性能,一个新的 memory.reclaim 主动回收接口来触发内存 cgroup 上的内存回收,能够内核在使用 Zswap 时控制内存的使用,以及跟踪污染内核的模块的能力。
在安全方面,Linux 5.19 改进了锁定模式以防止特权进程在内核控制之外更改内核内存,增加了对 Landlock 安全模块中规则的支持以控制文件的重命名,增加了对 fs-verity 文件摘要的支持到完整性测量架构 (IMA),添加了 Clang 编译的结构随机化强化功能,并进一步改进了随机数生成器。
“就个人而言,这里最有趣的部分是我在 arm64 笔记本电脑上发布(并且正在写这篇文章),”Linus Torvalds 说。“这是我期待已久的事情,感谢朝日团队,它终于成为现实。很长一段时间以来,我们一直使用 arm64 硬件来运行 Linux,但直到现在它都没有真正用作开发平台。”
在其他更改中,Linux 内核 5.19 为 virtio-blk 驱动程序添加了轮询 I/O 支持,以将延迟提高多达 10%,添加了对处理 ID 映射到 OverlayFS 文件系统的挂载的支持,改进了 SLUB 内存的调试基础架构分配器,在 BPF 映射中存储类型化指针的能力,以及对 io_uring 子系统和 x86 拆分锁检测机制的各种改进。
当然,Linux Kernel 5.19 中还包含大量更新和新的驱动程序,以增加对新设备的支持,包括 Raspberry Pi Sense HAT 操纵杆、Mega World 控制器的力反馈、ThinkPad TrackPoint Keyboard II 和 Google Whiskers 触摸板。
此外,Linux 5.19 实现了一个新的“硬件时间戳引擎”子系统,以支持可以记录时间戳以响应事件的设备,例如 NVIDIA Tegra 194。
喜欢编译内核的人现在可以从kernel.org网站下载 Linux 5.19 的源代码压缩包。其他所有人都必须等待其发行版的维护者将内核升级到版本 5.19,然后再尝试将其安装更新到新的 Linux 内核系列。
随着 Linux Kernel 5.19 的推出,下一个内核版本(Linux Kernel 5.20)的合并窗口现已打开。然而,Linus Torvalds 似乎计划最终放弃 5.x 系列,转而使用 Linux 6.0。“我可能会称它为 6.0,因为我开始担心再次被大数字弄糊涂,” Torvalds 说。