vmlinux Image, zImage uImage 的区别

Posted qlexcel

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vmlinux Image, zImage uImage 的区别相关的知识,希望对你有一定的参考价值。

来自正点原子《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》

vmlinux 是 ELF 格式的文件,但是在实际中我们不会使用 vmlinux,而是使用 zImage 或 uImage 这样的 Linux 内核镜像文件。那么vmlinux、 zImage、 uImage 他们之间有什么区别呢?

①、 vmlinux 是编译出来的最原始的内核文件,是未压缩的,比如正点原子提供的 Linux 源码编译出来的 vmlinux 差不多有 16MB

②、 Image 是 Linux 内核镜像文件,但是 Image 仅包含可执行的二进制数据。 Image 就是使用 objcopy 取消掉 vmlinux 中的一些其他信息,比如符号表什么的。但是 Image 是没有压缩过的, Image 保存在 arch/arm/boot 目录下,其大小大概在 12MB 左右

相比 vmlinux 的 16MB, Image 缩小到了 12MB。

③、 zImage 是经过 gzip 压缩后的 Image,经过压缩以后其大小大概在 6MB 左右

④、 uImage 是老版本 uboot 专用的镜像文件, uImag 是在 zImage 前面加了一个长度为 64字节的“头”,这个头信息描述了该镜像文件的类型、加载位置、生成时间、大小等信息。但是新的 uboot 已经支持了 zImage 启动!所以已经很少用到 uImage 了,除非你用的很古老的 uboot。

以上是关于vmlinux Image, zImage uImage 的区别的主要内容,如果未能解决你的问题,请参考以下文章

Linux内核镜像格式

linux 内核镜像格式

vmlinuz 文件解压缩(zImage|bzImage)

linux的uboot启动映像,zImage和uImage的区别

uImage是什么

linux 内核 镜像 工具 哪些 yocto