vmlinuz 和 bzImage 真的一样吗?

vmlinuz 和 bzImage 真的一样吗?

我只是偶然发现这一页,这表明 bzImage 和 vmlinuz 是相同的。

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

cp /usr/src/linux/arch/i386/linux/boot/bzImage /boot/vmlinuz

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

  • vmlinux:纯 Linux ELF 文件就像链接器创建的那样,包括符号和所有内容。
  • vmlinuz:gzip 压缩vmlinux文件,其中所有符号均被删除
  • zImage: bootsect.o + setup.o + Misc.o + piggy.o (piggy.o 包含piggy-backed vmlinuz)。zImage是可引导的,因为它可以解压缩并运行它包含的内核。
  • bzImage:与zImage其他相同,只是其构建方式略有不同,这使其能够承载更大的内核。

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

我知道这个堆栈交换答案,但它没有明确回答我的问题。然而,我隐隐地觉得它支持了我的理解。


奖金问题

上面的哪个文件包含uImage

答案1

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

相关内容