内核编译是一个非常生僻的领域,哪怕是做内核的童鞋也不一定关注过整个内核编译的流程,更不用说内核的门外汉了。
然而了解学习内核编译系统,可能会有你意想不到的收获。我在这个过程中从以下几个方面获得收益。
- 深入的理解makefile如何管理大型项目
- 编译出错了也不会那么慌张
- 多年后才明白究竟是哪个文件才是放在/boot/目录下的那个启动文件以及它和另一个很像的文件之间的差别
- 节省了编译时间,不会每次都用make all这种粗暴的方式了
- 传说的make -j8中,这8个进程是在什么条件下才能开启的
- 进一步的了解了整个内核的构造,而不是仅仅知道自己做的那一块了
- 了解了某些编译链接细节,帮助看懂内核启动时的一些操作
但是很多人,包括我自己在很长的一段时间内都没有相对仔细阅读和研究内核编译的过程。在此,我希望通过分享自己一点点的经验,帮助大家破除对内核编译系统的抵触,快速掌握内核编译系统的整体架构,为后续的深入研究开一个好头。
鉴于本人经验尚浅,或有不透彻甚至是错误的地方,还望大家包涵。如能告知,万分感谢。
先用起来
大多数人都是从最简单的开始的,我也不例外。首先你得有这么一个环境,能够编译内核,接下来你才有机会去修改去实验去探索内核编译的过程。
第一步先
由此小白们可以体会一下编译的过程,和使用自己编译的内核的快乐。也为后续我们做深入的实验做好准备。
在了解了基本的编译过程和步骤之后,我们再来看看那些