Linux 5.19新動(dòng)作:合并龍芯CPU,終于接納Zstd壓縮固件
Linux 5.19 已合并龍芯 LoongArch CPU 架構(gòu)
Linus 已將龍芯 LoongArch CPU 架構(gòu)的內(nèi)核移植合并到 Linux 5.19。不過(guò)由于一些代碼尚未通過(guò)審查,雖然 LoongArch CPU 架構(gòu)代碼已經(jīng)被合并,但缺少一些關(guān)鍵的驅(qū)動(dòng)程序,因此 Linux 5.19 暫未支持在搭載 LoongArch CPU 的設(shè)備上啟動(dòng)。
上周我們報(bào)道了 LoongArch CPU 架構(gòu)內(nèi)核移植被合并的相關(guān)背景,當(dāng)時(shí)龍芯開(kāi)發(fā)者迫切希望 Linux 內(nèi)核能夠合并他們的代碼到主線 —— 即使缺少驅(qū)動(dòng)程序。這是為了能夠向 GNU C 庫(kù) (Glibc) 提交 LoongArch 的支持代碼。他們認(rèn)為,如需主線化 Glibc target,首先要有一個(gè)穩(wěn)定的用戶空間 ABI 來(lái)解決內(nèi)核支持。但由于 Glibc 2.38 預(yù)計(jì)在 8 月發(fā)布,LoongArch
需要先合并到 Linux 5.19,以便有足夠的時(shí)間在 7 月發(fā)布,并使 Glibc LoongArch 代碼在下一個(gè)版本完成。
此外,現(xiàn)在合并 LoongArch CPU 的支持代碼也減少了對(duì) Linux 5.20 中可能出現(xiàn)的任何主線樹(shù)變化的維護(hù)負(fù)擔(dān)。
據(jù)介紹,此次合并為 Linux 內(nèi)核增加了 21000 行代碼(未包括驅(qū)動(dòng)程序),到今年夏天晚些時(shí)候 Linux 5.20 內(nèi)核開(kāi)發(fā)周期時(shí),其余所需的驅(qū)動(dòng)程序支持將通過(guò)審查,產(chǎn)生一個(gè)可啟動(dòng)的 LoongArch 系統(tǒng)。
四年前,知名 Linux 內(nèi)核開(kāi)發(fā)者 Arnd Bergmann 曾預(yù)測(cè) C-SKY 將是 “我們最后一個(gè)添加到內(nèi)核的新 CPU 架構(gòu)”。C-SKY 是由中國(guó)開(kāi)發(fā)的 CPU 架構(gòu),當(dāng)時(shí)的想法是所有未來(lái)的 CPU 工作都擁抱 RISC-V。但現(xiàn)在看來(lái),LoongArch 也許將是最后一個(gè)添加到 Linux 內(nèi)核的新 CPU 架構(gòu)。
Linux 5.19 已支持使用 Zstd 壓縮固件
Linux 內(nèi)核維護(hù)者 Greg Kroah-Hartman 已經(jīng)開(kāi)始向 Linux 5.19 提交他所負(fù)責(zé)的多個(gè)模塊的重要特性 PR。隨著新版本內(nèi)核對(duì)驅(qū)動(dòng)程序進(jìn)行核心改動(dòng),現(xiàn)已支持使用流行的 Zstd 來(lái)壓縮固件文件。
該項(xiàng)功能支持將現(xiàn)有的 FW_LOADER_COMPRESS 拆分為通用 knob,將 XZ 固件壓縮移動(dòng)至新的 FW_LOADER_COMPRESS_XZ knob,同時(shí)添加 FW_LOADER_COMPRESS_ZSTD 以啟用此 Zstd 壓縮固件文件支持。當(dāng)啟用內(nèi)核支持并且固件文件以 .zst 結(jié)尾時(shí),將自動(dòng)加載 Zstd 壓縮的固件文件。
從透明文件系統(tǒng)壓縮到使用 Zstd 壓縮內(nèi)核鏡像,Linux 內(nèi)核開(kāi)始越來(lái)越多地使用 Zstd。談到對(duì)經(jīng) Zstd 壓縮過(guò)的固件的支持,使用 Zstd 壓縮 Linux 固件樹(shù)往往比使用現(xiàn)有的 XZ 稍大,但加載固件文件時(shí)的解壓縮速度要快得多。
多年來(lái),一直有人提議在 Linux 內(nèi)核的固件處理中增加對(duì) Zstd 壓縮的支持,以節(jié)省磁盤(pán)空間,同時(shí)提供快速的解壓縮速度,并作為現(xiàn)有 XZ 壓縮的替代方案。但這些補(bǔ)丁一直都沒(méi)有完成,而隨著 Linux 5.19 的推出,很快將會(huì)如愿提供。
對(duì)于想要使用 Zstandard 壓縮算法的開(kāi)發(fā)者。Zstd 壓縮固件除了可以節(jié)省磁盤(pán)空間,還會(huì)提供由內(nèi)核動(dòng)態(tài)完成的快速解壓縮。以 .zst 結(jié)尾的固件文件將由 Linux 內(nèi)核的固件加載程序解壓縮。