基于arm的linux的启动分析

基于arm的linux的启动分析

ID:5439085

大小:180.50 KB

页数:13页

时间:2017-12-12

基于arm的linux的启动分析_第1页
基于arm的linux的启动分析_第2页
基于arm的linux的启动分析_第3页
基于arm的linux的启动分析_第4页
基于arm的linux的启动分析_第5页
资源描述:

《基于arm的linux的启动分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、蚁肈肈薁薇蚅膀莄蒃蚄节蕿螂螃羂莂蚈螂肄薈薄螁膇莁蒀螀荿膃袈螀聿葿螄蝿膁节蚀螈芃蒇薆螇羃芀蒂袆肅蒅螁基于ARM的Linux的启动分析说明:本文主要的分析基于ARM的linux-2.6.17内核启动过程分析。1、Linux内核的启动方案:由/arch/arm/Makefile的代码:definearchhelpecho'*zImage-Compressedkernelimage(arch/$(ARCH)/boot/zImage)'echo'Image-Uncompressedkernelimage(arch/$(ARC

2、H)/boot/Image)'echo'*xipImage-XIPkernelimage,ifconfigured(arch/$(ARCH)/boot/xipImage)'echo'bootpImage-CombinedzImageandinitialRAMdisk'echo'(supplyinitrdimageviamakevariableINITRD=)'echo'install-Installuncompressedkernel'echo'zinstall-Installcompressedker

3、nel'echo'Installusing(your)~/bin/installkernelor'echo'(distribution)/sbin/installkernelor'echo'installto$$(INSTALL_PATH)andrunlilo'endef可以看出,主要有三种启动方案,分别是:echo'*zImage-Compressedkernelimage(arch/$(ARCH)/boot/zImage)'echo'Image-Uncompressedkernelimage(arch/$(AR

4、CH)/boot/Image)'echo'bootpImage-CombinedzImageandinitialRAMdisk'echo'(supplyinitrdimageviamakevariableINITRD=)'。Linux内核有两种映像:一种是非压缩内核,叫Image,另一种是它的压缩版本,叫zImage。根据内核映像的不同,Linux内核的启动在开始阶段也有所不同。zImage是Image经过压缩形成的,所以它的大小比Image小。但为了能使用zImage,必须在它的开头加上解压缩的代码,

5、将zImage解压缩之后才能执行,因此它的执行速度比Image要慢。但考虑到嵌入式系统的存储空容量一般比较小,采用zImage可以占用较少的存储空间,因此牺牲一点性能上的代价也是值得的。所以一般的嵌入式系统均采用压缩内核的方式(另外bootpImage是编译包含zImage和initrd的映像,可以通过make变量INITRD=提供initrd映像)2.典型启动方案的代码结构:(1).Image启动方案的代码结构:#arch/arm/boot/Makefile:$(obj)/Image:vmlinuxF

6、ORCE$(callif_changed,objcopy)@echo'Kernel:$@isready'由此可见,Image由vmlinux二进制化得到的。Image的是由kernel/vmlinux构成的。(2).zImage启动方案的代码结构:在内核编译完成后会在arch/arm/boot/下生成zImage。#arch/arm/boot/Makefile:$(obj)/zImage:$(obj)/compressed/vmlinuxFORCE$(callif_changed,objcopy)@echo'Ker

7、nel:$@isready'由此可见,zImage由内核顶层目录下的arch/arm/boot/compressed/vmlinux二进制化得到的:#arch/armboot/compressed/Makefile:$(obj)/vmlinux:$(obj)/vmlinux.lds$(obj)/$(HEAD)$(obj)/piggy.o$(addprefix$(obj)/,$(OBJS))FORCE$(callif_changed,ld)@:$(obj)/piggy.gz:$(obj)/../ImageFORCE

8、$(callif_changed,gzip)$(obj)/piggy.o:$(obj)/piggy.gzFORCEzImage的组成,它是由一个压缩后的内核piggy.o,连接上一段初始化及解压功能的代码(head.omisc.o)组成的。(3)BootpImage启动方案的代码结构:#arch/arm/boot/Makefile:$(obj)/bootp/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。