linux 内核源码各目录的功能
1 arch
- arch 目录下主要存放用于支持不同体系结构的代码
- 不同的子目录存放对应平台的初始化代码,例如
1 | $ ls arch/ |
2 Documentation
- 内核参数、配置、特性的技术说明文档
3 firmware
- 固件相关的代码,比如 wifi、flash 等硬件的固件代码可能就存放于此
4 init
- 内核启动相关的代码
- 在 init/main.c 文件中,
start_kernel函数在汇编指令之后执行启动内核
5 security
- 安全相关的代码
6 block
- 块设备相关的代码
- 在 linux 内核中,块设备子系统是很重要的一部分
- 如果是做存储设备相关的开发,可能会比较关注这部分代码
7 driver
- 外部设备驱动相关的代码,比如 gpio、gpu、i2c、video 等
- 如果是做驱动开发,可能会比较关注这部分代码
8 fs
- 文件系统相关的代码
9 ipc
- 进程间通信相关的代码
10 kernel
- 进程管理、调度等核心代码
11 net
- 网络协议栈相关的代码
- 如果是做通讯设备开发,可能会比较关注这部分代码
12 sound
- 声卡相关的代码
13 crypto
- 加密、解密相关的代码
- linux 内核不能依赖于外部的 c 库,所以其封装了一些加、解密代码存放在此目录下
14 mm
- 内存管理相关的代码
15 include
- 内核头文件相关的代码
16 lib
- 内核的通用库,可被其他内核程序调用
17 scripts
- 内核编译脚本