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。
待續...