我所知道的(如果我的理解是错误的,请改正):
vmlinuz:是一个压缩的、自解压缩的、可引导的Linux映像。一直都是ELF?怎么生成的?
zImage (或bzImage):是压缩、自解压缩、可引导的Linux映像.总是二进制的。由“make zImage”生成。
一些消息来源说,这实际上是相同的图像,如:这里和这里。
但看起来不是这样的。我已经构建了嵌入式Openwrt项目,并在执行"file vmlinuz“时获得了以下信息:
vmlinuz: ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1 (SYSV), statically linked, stripped可以看出,它是ELF格式,而不是像zImage那样的二进制文件。
更令人困惑的是,当我在我的ubuntu vmlinuz上读到它时,我知道它不是ELF文件。
发布于 2016-04-14 15:50:47
vmlinuz是一样的。
如果您曾经运行过make install,您会注意到这一点。zImage或bzImage是安装到/boot/vmlinuz-$VERSION上的。
看起来,有些体系结构将其封装为ELF (而有些则没有)。x86上的Linux可能由于与引导程序(如LILO、syslinux等)的兼容性而没有ELF,而且我不知道它们可能不喜欢GRUB如何加载ELF文件。在其他架构上,它可能会因为同样的原因而被ELF所困。注意,解压缩后的图像始终是ELF (参见例如:)。
https://unix.stackexchange.com/questions/276489
复制相似问题