内核源码很复杂,包含多级目录,形成一个庞大的树状结构,通常称为Linux源码目录树。
| 序号 | 目录 | 内容 |
|---|---|---|
| 1 | arch/ |
包含各体系结构特定的代码,如 arm、x86、ia64、mips等,在每个体系结构目录下通常都有:(1) /boot:内核需要的 特定平台代码(2) /kernel:体系结构特有的代码(3) /lib:通用函数在特定体系结构的实现(4) /math-emu:模拟FPU的代码,在ARM中,使用/math-xxx代替(5) /mm:特定体系结构的内存管理实现(6) /include:特定体系的头文件 |
| 2 | block/ |
存放块设备相关代码 |
| 3 | crypto/ |
存放加密、压缩、CRC校验等算法相关代码 |
| 4 | Documentation/ |
存放相关说明文档,很多 实用文档,包括 驱动编写等 |
| 5 | drivers/ |
存放 Linux 内核设备驱动程序源码。驱动源码在 Linux 内核源码中站了很大比例,常见外设几乎都有 可参考源码,对驱动开发而言,该目录非常重要。 该目录包含 众多驱动,目录按照 设备类别 进行分类,如char、block、input、i2c、spi、pci、usb等 |
| 6 | firmware/ |
存放处理器相关的一些特殊固件 |
| 7 | fs/ |
存放所有文件系统代码,如fat、ext2、ext3、ext4、ubifs、nfs、sysfs等 |
| 8 | include/ |
存放内核所需、与平台无关的头文件,与平台相关的头文件已经被移动到arch平台的include |

本文深入剖析Linux内核源码结构,详细介绍了各主要目录的功能及内容,如arch、drivers、fs等,强调了驱动在内核中的重要地位,为嵌入式Linux开发人员提供了一条快速定位和修改驱动源码的有效途径。
589

被折叠的 条评论
为什么被折叠?



