uImage、zImage、bzImage、vmlinux区别

阅读数:189 评论数:0

跳转到新版页面

分类

Linux

正文

一、概述

在 Linux 系统中,内核映像有几种不同的格式,分别是 vmlinuxzImagebzImageuImage。每种格式都有其特定的用途和构建过程。

二、vmlinux

vmlinux 是未压缩的内核映像。它是编译过程中直接从源代码生成的,包含了完整的调试信息,因此文件大小比压缩后的版本要大得多。这个文件通常用于调试目的或者其他需要访问完整内核符号的场合。它是一个 ELF (Executable and Linkable Format) 文件,可以使用 GDB 等调试器直接分析。

vmlinuz是vmlinux的压缩文件,是bzImage/zImage文件的copy或是指向bzImage/zImage的链接。

三、zImage

zImage(“z”代表“zip”,即压缩的意思)是一个较早的压缩内核映像格式,适用于较小的系统,特别是早期的 x86 系统。zImage 文件小于 512KB,可以在系统的低端内存中解压。如果内核映像较大,zImage 可能无法使用,因为它可能不适合放在有限的内存空间中。

是ARM Linux常用的一种压缩映像文件。

四、bzImage

bzImage(“b”代表“big”或“boot”,而“z”依然代表“zip”)是一个更新的压缩内核映像格式,它允许内核映像更大(通常大于 512KB)。bzImage 通常用于现代的 x86 系统。它并不是使用 bzip2 压缩的;这个名字只是说明它支持“大”内核映像。bzImage 通常位于 /boot 目录下,并由引导加载器(如 GRUB)加载到内存中并执行。

五、uImage

是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的header,说明这个映像文件的类型、加载位置、生成时间、大小等信息。

六、initrd-x.x.x.img

    initial ramdisk,一般被用来临时引导硬件到实际内核vmlinuz能够接管并继续引导的状态。

 

 




相关推荐