zImage:
gzip压缩的内核镜像文件,最大只能512KB
bzImage:
也是gzip压缩的内核镜像文件,但是没有zImage的512KB大小限制
这两种内核镜像都是用gzip压缩的,在镜像文件头部都带有解压代码
zImage和bzImage的不同:
1、内核镜像包含着实模式代码和保护模式代码,前者使用的是物理地址,后者使用虚拟地址,上电后默认工作在实模式,准备就绪后再进入保护模式
2、两种镜像的实模式代码都是加载到0x90000地址处
3、zImage的保护模式代码加载到0x1000地址处,这也是512KB大小限制的原因,再大就会覆盖到实模式代码了
4、bzImage的保护模式代码加载到0x100000地址处,1M以上的高端内存
uImage:
给uboot使用的内核镜像文件,在zImage前面增加了64字节的内容,这64字节内容主要有镜像文件大小、load address、entry point等信息
uboot中常碰到的地址:
bootm、load address、entry point
load address和entry point是在make uImage时指定的
entry point = load address + 0x40(64)
bootm是uboot的命令,即从此地址启动内核
当bootm地址和load address地址一致时直接跑到entry point处执行
当bootm地址和load address地址不一致时,会先将uImage memmove到load address处再跑到entry point处执行(此时注意不要覆盖到uImage)
当bootm地址处是zImage,那么就直接执行了
vmlinuz:
zImage或bzImage重命名后的文件,跟zImage、bzImage没有区别
vmlinux:
内核源码编译出来的原始文件(ELF)不可用于直接加载和启动