01-Linux内核_不同的视角
第4章 Linux内核:不同的视角
本章内容
- 背景知识
- Linux内核构造
- 内核构建系统
- 内核配置
- 内核文档
- 获得定制的Linux内核
- 小结
如果你想了解内核的内部原理,市面上有很多关于内核设计和运作的优秀书籍可供参考。我们会在本节以及其他一些章节中提到其中部分书籍。然而,很少有书籍从项目的角度去考察内核的组织和结构。如果你想添加一些代码,并且要得到内核的支持,在哪儿添加比较合适呢?怎样知道哪些文件对于你的架构重要?
乍看上去,理解Linux内核并针对某个具体的平台或应用配置Linux几乎不可能。在最近的Linux内核版本中,Linux内核源码树中包含了28 000[1]多个文件,代码行数在1000万至1100万[2]之间,具体数目取决于你如何计算实际的代码行数[3]。而且这仅仅是个开始。你还需要一些工具程序(显然,其中最重要的是编译器)和一个根文件系统(包含很多Linux应用程序)才能构建出一个有用的系统。
[1] 有趣的是,这比本书第1版出版期间多出了8000多个文件。
[2] 这比本书第1版出版期间的代码行数多出了400万行。
[3] 大体上包括头文件、C语言源文件、汇编语言源文件、makefile和Kconfig文件的行数;脚本文件不包含在内。
这一章首先介绍Linux内核及其源码的组织结构。接着,我们考察内核镜像的各个组成部分,并讨论内核源码树的规划布局。之后,我们会深入研究内核构建系统的细节,并介绍内核配置及构建系统中的一些重要文件。本章的最后部分会讨论一个完整的嵌入式Linux系统所需的组件。