Linux 5.19新动作:合并龙芯CPU,终于接纳Zstd压缩固件
Linux 5.19 已合并龙芯 LoongArch CPU 架构
Linus 已将龙芯 LoongArch CPU 架构的内核移植合并到 Linux 5.19。不过由于一些代码尚未通过审查,虽然 LoongArch CPU 架构代码已经被合并,但缺少一些关键的驱动程序,因此 Linux 5.19 暂未支持在搭载 LoongArch CPU 的设备上启动。
上周我们报道了 LoongArch CPU 架构内核移植被合并的相关背景,当时龙芯开发者迫切希望 Linux 内核能够合并他们的代码到主线 —— 即使缺少驱动程序。这是为了能够向 GNU C 库 (Glibc) 提交 LoongArch 的支持代码。他们认为,如需主线化 Glibc target,首先要有一个稳定的用户空间 ABI 来解决内核支持。但由于 Glibc 2.38 预计在 8 月发布,LoongArch
需要先合并到 Linux 5.19,以便有足够的时间在 7 月发布,并使 Glibc LoongArch 代码在下一个版本完成。
此外,现在合并 LoongArch CPU 的支持代码也减少了对 Linux 5.20 中可能出现的任何主线树变化的维护负担。
据介绍,此次合并为 Linux 内核增加了 21000 行代码(未包括驱动程序),到今年夏天晚些时候 Linux 5.20 内核开发周期时,其余所需的驱动程序支持将通过审查,产生一个可启动的 LoongArch 系统。
四年前,知名 Linux 内核开发者 Arnd Bergmann 曾预测 C-SKY 将是 “我们最后一个添加到内核的新 CPU 架构”。C-SKY 是由中国开发的 CPU 架构,当时的想法是所有未来的 CPU 工作都拥抱 RISC-V。但现在看来,LoongArch 也许将是最后一个添加到 Linux 内核的新 CPU 架构。
Linux 5.19 已支持使用 Zstd 压缩固件
Linux 内核维护者 Greg Kroah-Hartman 已经开始向 Linux 5.19 提交他所负责的多个模块的重要特性 PR。随着新版本内核对驱动程序进行核心改动,现已支持使用流行的 Zstd 来压缩固件文件。
该项功能支持将现有的 FW_LOADER_COMPRESS 拆分为通用 knob,将 XZ 固件压缩移动至新的 FW_LOADER_COMPRESS_XZ knob,同时添加 FW_LOADER_COMPRESS_ZSTD 以启用此 Zstd 压缩固件文件支持。当启用内核支持并且固件文件以 .zst 结尾时,将自动加载 Zstd 压缩的固件文件。
从透明文件系统压缩到使用 Zstd 压缩内核镜像,Linux 内核开始越来越多地使用 Zstd。谈到对经 Zstd 压缩过的固件的支持,使用 Zstd 压缩 Linux 固件树往往比使用现有的 XZ 稍大,但加载固件文件时的解压缩速度要快得多。
多年来,一直有人提议在 Linux 内核的固件处理中增加对 Zstd 压缩的支持,以节省磁盘空间,同时提供快速的解压缩速度,并作为现有 XZ 压缩的替代方案。但这些补丁一直都没有完成,而随着 Linux 5.19 的推出,很快将会如愿提供。
对于想要使用 Zstandard 压缩算法的开发者。Zstd 压缩固件除了可以节省磁盘空间,还会提供由内核动态完成的快速解压缩。以 .zst 结尾的固件文件将由 Linux 内核的固件加载程序解压缩。