linux内核如何启动?vmlinux文件又该如何压缩?下面一起来看看豆豆收集整理的zImage生成流程吧
zImage生成流程:
1. vmlinux 文件:
vmlinux 文件根据arch/arm/kernel/vmlinux.ld 生成, vmlinux属于未压缩,带调试信息、符号表的最初的内核。该文件大小约为4.3M。
2. Image文件:
将vmlinux中的调试信息、注释、符号表等内容去除后生成该文件,这是未经压缩的linux内核,该文件大小约为3.2M。
3. piggy.gz文件:
arch/arm/boot/Image用gzip-9 压缩生成arch/arm/boot/compressed/piggy.gz,该文件大小约为1.55M。
4. piggy.o:
编译arch/arm/boot/compressed/piggy.s 生成arch/arm/boot/compressed/piggy.o,piggy.s将piggy.gz 作为数据段包含进 piggy.o。
5. /compressed/vmlinux:
依据arch/arm/boot/compressed/vmlinux.lds 将arch/arm/boot/compressed/ 目录下的文件 head.o piggy.o misc.o 链接生成arch/arm/boot/compressed/vmlinux,这个vmlinux是经过压缩且含有自解压代码的内核,文件大小约为1.5M。
6. /compressed/zImage:
将arch/arm/boot/compressed/vmlinux 去除调试信息、注释、符号表等内容,生成arch/arm/boot/zImage,文件大小约为1.5M。