整理内核编译流程:uImage/zImage/Image/vmlinx之间关系

vmlinux是Linux内核的链接前对象,它的生成涉及Makefile、KBUILD_LDS、KBUILD_VMLINUX_OBJS和KBUILD_VMLINUX_LIBS。vmlinux通过objcopy转化为Image,然后经gzip压缩得到compressed/vmlinux,进一步转化为zImage。uImage则是在zImage前添加头部信息通过mkimage工具生成的,常用于嵌入式系统。
摘要由CSDN通过智能技术生成

vmlinux可执行文件是如何生成的?

1.在内核源码目录的顶层目录下打开Makefile文件,在命令行查找vmlinux

可知vmlinux文件的生成依赖于vmlinux-deps

2.继续查找vmlinux-deps

可知vmlinux-deps文件的生成依赖于KBUILD_LDS,KBUILD_VMLINUX_OBJS,KBUILD_VMLINUX_LIBS三个文件

KBUILD_LDS是一个链接文件

可知 KBUILD_VMLINUX_OBJS,KBUILD_VMLINUX_LIBS的依赖关系

对libs-y进行寻找,在顶层目录下的Makefile找不到head-y目标,在arch/arm/目录下的Makefile寻找到

 可知head-y的生成愈来愈MMUEXT

uImage/zImage/Image/vmlinx之间关系

1.Image和内核顶层目录下vmlinx关系

         vmlinux通过objcopy格式化转换为Image。

2.rch/arm/boot/compressedvmlinux文件和Image之间关系

        将Image镜像文件经过gzip压缩生成rch/arm/boot/compressed/vmlinx镜像文件

3.zImage和arch/arm/boot/compressed/vmlinux关系?

        zImage是通过vmlinux格式化转换为的文件

4.uImage和zImage之间关系?

        1)uImage使用在zImage使用mkimage工具得到的,uImage在zImage前添加64字节头部信息

        2)每次编译打印信息的内容就是编译到uImage中内容

得到结论:

        vmlinx--->objcopy--->Image--->gzip--->arch/arm/boot/compressed/vmlinx--->objcopy--->zImage--->mkimage--->uImage

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值