kenerl的分析与移植
这一章节我们来简单讲解一下内核启动的流程和移植过程。
1.1内核的架构
这是我们解压的内核子目录表,我们可以得到从上面这张图里知道每个目录里存放的内容,对于移植内核我们只需要改变一些arch里的板级文件以及include文件,drivers中的一些配置,其他的都不需要改变。
1.2 内核的makefile分析
在讲解makefile时候我们首先要从上而下的来分析,也就是来分析顶层makefile来了解他的功能,我们总结一下makefile的三大作用
1上层makefile决定这那些文件可以被编译进去,也就是决定下层的makefile的执行,对于顶层makefie决定内个根目录下哪些子目录会被编译进内核。
总结的来说就是上面所述的这些。
2我们在执行 make menuconfig或者其他的config的时候生成了两个配置文件,makefile会根据.config中保存的config内容来决定如何进行编译。y代表生成.o文件编译进内核,m代表生成.ko文件作为模块后面可以及时的加载到内核中去。
3那么如何连接这些文件,他们有什么顺序呢?
在顶层makefile和arch/arm/makefile中定义了6种类型的目录,每种.O文件按照类型存入这几个目录最后根据vmlinux的生成规则来进行编译,
最终和链接脚本文件结合生成了vmlinux,然后转换为uimage或zimage.
最后总结成图片上这个流程
1.3 内核的移植过程
本次移植使用的linux-2.6.22.6内核
见开发手册
1.4 内核的最终运行
下期录制
2018.1.31
刘朋
链接: https://pan.baidu.com/s/1HQDxK7xolUHprp4gpttfIg 密码: h3c9