vmlinuz 和 bzImage 真的一样吗?

Mul*_*ync 10 boot u-boot

我偶然发现了这个页面,它说 bzImage 和 vmlinuz 是相同的。

然后使用 cp(即复制)命令将 bzImage 复制到 /boot 目录,并同时使用诸如以下命令重命名 vmlinuz

cp /usr/src/linux/arch/i386/linux/boot/bzImage /boot/vmlinuz
Run Code Online (Sandbox Code Playgroud)

这让我很担心,因为到目前为止我的理解如下:

  • vmlinux:纯 linux ELF 文件与链接器创建的方式一样,包括符号和所有内容。
  • vmlinuz: gzippedvmlinux文件,它的所有符号都被剥离了
  • zImage: bootsect.o + setup.o + misc.o + piggy.o(piggy.o 包含背驮vmlinuz)。zImage是可引导的,因为它可以解压并运行它包含的内核。
  • bzImage:zImage除了它的构建略有不同之外,它可以承载更大的内核。

你能告诉我谁是正确的吗?

我知道这个 Stack Exchange answer,但它没有明确回答我的问题。然而,隐含地,我觉得它支持我的理解。


奖金问题

上面的哪个文件uImage包含?

Gil*_*il' 10

“vmlinuz”作为格式名称的意思是“gzipped vmlinux 文件,它被剥离了所有符号”。但是,作为文件名,vmlinuz通常用于引导加载程序支持的任何压缩格式的内核映像,例如 zimage 格式或 bzimage 格式。该名称vmlinuz在 x86 发行版上很流行,无论文件的实际格式如何(通常是 bzimage)。该名称uImage通常表示另一种格式,由嵌入式系统上流行的U-Boot 引导加载程序使用;一个uImage文件包含一个 U-Boot 特定的标头,后跟一个可以采用多种格式的内核映像(有关更多信息,请参阅锯末在 Stack Overflow 上的回答)。