为什么以及如何压缩 Linux 内核映像?

为什么以及如何压缩 Linux 内核映像?

为什么以及如何压缩 Linux 内核映像?当图像在 RAM 中且必须(据我所知)未压缩时,压缩它不是毫无意义吗?怎么可能被压缩呢?当内存中不是二进制机器指令而是压缩混乱时,CPU 如何执行它?

另一件事,为什么压缩图像比未压缩图像更快?我读过/理解了这样的事情,这是真的还是假的?

答案1

内核映像被压缩以解决某些体系结构(例如 i386)中的限制。

特别是使内核适合早期启动期间的可用内存量。

如今,这些东西不再“需要”(由于 UEFI 和 64 位寻址),但是,是的,你是对的,它们可以提高启动速度。我的压缩内核映像约为 11MB,未压缩时会更大(甚至可能超过 20MB),并且加载时间会更长。通常,减压速度比驱动速度快。然而,如今对于 PCIe 4.0 NVME 驱动器来说,情况已不再如此。

可以提供一些可以回答您的问题的更多详细信息这里

至于如何使用,内核可以使用许多不同的压缩算法,古老的 gzip 就是其中之一,但它还支持 XZ、LZ4 和 Zstd。可能还有更多,但这就是我脑海中浮现的清单。

相关内容