蓝点网 2024年12月09日
Linux Kernel EFI Zboot正在废弃大多数压缩选项 后续仅提供Gzip和Zstd压缩支持
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Linux内核的EFI Zboot代码将进行重大调整,原本支持的多种压缩选项将被精简,仅保留Gzip和Zstd两种。这一改变是出于兼容性和实际使用考虑,旨在简化EFI Zboot的实现并减少不必要的开销。Gzip以其出色的解压速度和广泛的兼容性被保留,而Zstd则因其高压缩率和接近Gzip的解压速度而入选。此举将使下游产品如QEMU和Kexec无需集成多种压缩库,同时也有助于缩减内核映像的体积。需要注意的是,此次变更仅影响EFI Zboot代码,不涉及内核其他部分的压缩选项。

🖥️ Linux内核的EFI Zboot代码将进行精简,原本支持的多种压缩选项将被废弃,仅保留Gzip和Zstd两种。

💡 开发者Ard Biesheuvel解释,此举是出于兼容性和实际使用考虑,EFI Zboot并非压缩库博物馆,实际使用中只有Gzip和Zstd较为有用。

🗜️ Gzip因其出色的解压速度和广泛的兼容性被保留,例如Fedora已在Arm64平台上使用Gzip的EFI Zboot内核,QEMU也支持直接启动Gzip压缩的内核。

⚡ Zstd则因其高压缩率和接近Gzip的解压速度而入选,减少压缩选项数量可以简化下游产品如QEMU和Kexec的实现。

📂 此举将使下游产品无需集成多种压缩库,同时也有助于缩减内核映像的体积,减少不必要的开销。

📌 此次变更仅影响EFI Zboot代码,不涉及内核其他部分的压缩选项,因此不会影响Linux Kernel的正常使用。

Linux Kernel EFI Zboot 代码用于以压缩形式承载 EFI 系统的 Linux 内核映像,原本支持的压缩支持非常多,包括但不限于 Gzip、LZ4、LZMA、LZO、XZ 和 Zstd 等。

不过基于兼容性和实际使用考虑,目前 Linux Kernel 开发者们正在废弃大多数压缩选项 / 算法,仅保留 Gzip 和 Zstd 两种压缩选项。

内核开发者 Ard Biesheuvel 解释为什么要弃用大多数压缩选项:

由于历史原因各个架构上的旧解压缩代码支持 7 种不同的压缩内核映像类型,但 EFI Zboot 并不是压缩库博物馆,在实际使用中可能有用的选项只有 Gzip 和 Zstd。

Gzip 经过尝试和测试当然是解压速度最快的选择之一,尽管压缩率不是很高;Fedora 已经为使用 Gzip 的 Arm64 提供 EFI Zboot 内核,并且 QEMU 在启动未加载固件的内核时实现了对 Gzip 的直接支持。

Zstd 具有非常高的压缩率 (但不是最高的),在解压时速度几乎和 Gzip 一样快。减少压缩选项数量使其他 EFI Zboot 格式的下游产品 (例如 QEMU 和 Kexec) 无需提供 7 种不同的压缩库即可完全支持。

这种做法应该不会产生什么负面影响,内核开发者的意思很明确,那就是提供这么多压缩选项也导致必须附带这么多压缩选项的开源库,但这是没有必要的。

所以后续仅提供 Gzip 和 Zstd 压缩选项后,只需要携带针对这两种压缩选项的开源库即可,这样也可以缩减体积减少其他浪费。

还需要强调的是这次变动仅影响 EFI Zboot 代码,Linux Kernel 其他区域的压缩和解压缩选项都不会改变,因此也不需要担心这会造成后续的正常使用问题。

最后这处改进预计会在未来几天内提交给 Linux Kernel 6.13 而不是等到 Linux Kernel 6.14,如果成功提交那么很快应该就会被合并到 Linux Kernel 6.13 版种。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Linux内核 EFI Zboot Gzip Zstd 压缩选项
相关文章