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 內核的固件加載程序解壓縮。