Linux内核镜像格式

【小比较】

Image zImage
内核映像文件 映像压缩文件
大约4MB 不到2MB

常用Linux 内核镜像格式

  • Linux内核有多种格式的镜像,包括vmlinux,Image,zImage,bzImage,uImage, xipImage,bootpImage等。

kernel镜像格式:vmlinux

  • vmlinux是可引导的、未压缩、可压缩的内核镜像,vm代表Virtual Memory.(表示Linux支持虚拟内存)由用户对内核源码编译得到,实质是elf格式的文件;vmlinux是最原始的内核文件

    Linux内核镜像格式

    • elf 格式文件
      • ELF(Executable and Linkable Format)可执行可链接格式,是UNIX实验室作为二进制接口发布的;
      • 在elf格式的文件中,除过二进制代码代码,还包含可执行文件的某些信息,比如符号表等。

kernel 镜像模式:Image

  • Image 是经过objcopy处理的只包含二进制数据的内核代码,它已经不是elf格式了,但还没有经过压缩。
    • objcopy:
      • 拷贝一个目标文件的内容到另一个目标文件(将一种目标格式的文件转换成另外一种格式的目标文件);
      • 通过使用binary作为输出目标(-o binary),可以产生一个原始的二进制文件,实质是将所有的符号信息和重定位信息删除,只剩下二进制数据。

kernel 镜像格式:zImage

  • zImage 是ARM Linux常用的一种压缩镜像文件,它是由vmlinux经过obicopy,生成Image,然后由二进制数据加上解压代码经gzip压缩而成;
  • 这种格式的Linux镜像文件多存放在NAND上,适用于小内核的情况;

Linux内核镜像格式

kernel镜像模式:bzImage

  • bz表示big zImage,其格式与zImage类似,但采用了不同的压缩算法,注意,bzImage的压缩率更高 ,是压缩的内核映像

  • zImage/bzImage:它们不仅是一个压缩文件,而且在这两个文件的开头部分内嵌有解压缩代码。两者的不同之处在于,老的zImage解压缩内核到低端内存(第一个 640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么可以采用zImage或bzImage之一,两种方式引导的系统运行时是相同的。大的内核采用bzImage,不能采用zImage。

kernel 镜像模式:uImage

  • uImage是uboot专用的镜像文件,它是在 zImage 之前加上一个长度为0x40的头信息(tag)(也就是说uImage 是一个二进制文件),在头信息内说明了该镜像文件的类型、加载 位置、生成时间、大小等信息.换句话说,若直接从uImage的0x40位置开始执行,则zImage和uImage没有任何区别.命令格式是#make uImage.这种格式的Linux镜像文件多存放在NAND上.

    Linux内核镜像格式

kernel镜像格式:xipImage

  • 这种格式的Linux镜像文件多存放在NorFlash上,且运行时不需要拷贝到内存SDRAM中,可以直接在NorFlash中运行.

参考

  • https://www.cnblogs.com/big-devil/p/7625880.html

相关文章:

  • 2021-12-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
  • 2022-02-07
  • 2022-02-15
猜你喜欢
  • 2021-11-01
  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
  • 2021-11-19
相关资源
相似解决方案