Linux内核启动第一部分
作者:LLX
linux内核版本4.6
个人兴趣爱号,分析内核源码实现
大家有问题可以提出来,对应的代码以及文章到时候会在gitee上面开放给大家
1、代码过程分析
从最开始的bzImage构成来看,第一部分先执行setup.bin这个文件,这个文件由setup.elf文件构成,那么看看对应的setup.elf文件由哪些构成
linux内核编译链接脚本
在产生这个文件的时候用的连接脚本是setup.ld,连接对应的很多.o文件
现在来看看对应的setup.ld文件的具体内容:
linux内核链接脚本内容
这个可以看到对应的入口点是_start函数,这个_start函数在head.s文件里面
那么什么时候调用这个head.s,这个是由bios程序调用的
在开机加电的时候,ram里面是没有代码的,那么这个代码从哪里来,这个代码在rom里面,这个是在kernel2版本之前的内存布局(引用3):