Linux内核源码包含多个目录,每个目录有不同的含义,以linux-4.9.253源码为例:
不同的Kernel版本源代码目录组织稍有不同,内核源码下载地址:
HTTP https://www.kernel.org/pub/
RSYNC http://rsync://rsync.kernel.org/pub/
下面介绍下主要的目录含义:
arch/:该目录包含与处理器相关的子目录,如:alpha/,arm/,mips/等。
block/:该目录包含块存储设备代码。
crypto/:该目录包含密码API和加密算法代码。
Documentation/:该目录包含不同内核框架和子系统所使用的API描述。
drivers/:该目录包含不同设备的驱动程序。
fs/:该目录包含内核支持的不同文件系统的实现,如:NTFS,FAT,ETX2/3/4,sysfs,procfs,NFS等。
include/:该目录包含内核头文件。
init/:该目录包含初始化和启动代码。
ipc/:该目录包含进程通信(IPC)机制的实现,如消息队列,信号量和共享内存。
kernel/:该目录包含基本内核与体系结构无关的部分。
lib/:该目录包含库函数和一些辅助函数,分别是通用内核对象(kobject)处理程序和循环冗余校验(CRC)计算函数等。
mm/:该目录包含内存管理相关代码。
net/:该目录包含网络(无论什么类型的网络)协议相关代码。
scripts/:该目录包含在内核开发过程中使用的脚本工具,还有其他有用的工具。
security/:该目录包含安全框架相关代码。
sound/:该目录包含音频子系统代码。
usr/:该目录包含initramfs的是实现。