linux源代码,慢慢分析linux代码--启动部分(二)

分析/arch/arm/boot/compress/head.S。
这里有一篇文章,分析得很详细,可以参考http://hi.baidu.com/elindron/blog/item/3254252def80b2404ec22634.html。
由于我的宿主机是redhat9,linux2.4版本,而目标机是linux2.6.12版本。貌似使用kgdb调试的话都需要打补丁升级。所以这一部分代码就没有使用单步调试的去观察。但是大概流程是搞清楚了。首先进来的时候zImage被uboot拷贝到了0x30008000这个地址,然后zImage的文件头把内核代码解压,由于最后的运行地址是0x30008000,所以解压的时候会涉及到搬运解压代码自身的过程。解压完成之后,相当于是把vmlinux这个文件放在了0x30008000这个地址上了,然后调用call_kernel来跳转到0x30008000这个地址。
Tags:  linux启动 linux代码 linux源代码

延伸阅读

最新评论

发表评论