2021SC@SUDSC
目录
Linux内核源码的目录结构
在进行Linux内核源码编译之前,我觉得有必要先了解一下内核源码相关的目录结构。
为了便于学习,我在linux官网上https://www.kernel.org/下载了未经编译的内核源码,内核版本为 linux-5.6.14,其目录结构如下图
arch
部分内核是体系结构和硬件特有的,被称为体系相关部分。而另一部分是可移植的,被称为体系无关部分。arch/目录下存放了一部分与体系结构相关的代码,另一部分被存放在include/ams-*/目录下。Linux支持的体系结构在arch目录下都有相应的子目录,而每个体系结构的子目录下一定包含三个子目录:
- kernel:存放支持相应体系结构特有特征的实现,比如信号量处理、SMP等等。
- lib:存放相应体系结构通用函数的实现,比如strlen、memcpy等等。
- mm:存放体系结构特有的内存管理程序的实现。
除了这三个目录之外,大部分体系结构还有一个boot目录,用来存放硬件平台上启动内核所使用的部分或全部平台特有的代码。