Linux kernel 文件夹说明

Linux 内核代码的目录结构

arch:  包含和硬件体系相关的的代码,每种硬件平台占一个相应的目录,如i386,arm, arm64, powerpc,mips等。
block: 块设备驱动程序I/O调度。
crypto: 常用的加密和散列算法,还有一些压缩和CRC校验算法。
documentation:内核各部分的通用解释和注释。
drivers:设备驱动程序,各个不同的驱动占用一个子目录。
fs: 所支持的各种文件系统。
include:头文件,与系统相关的头文件位置放在include/linux子目录下。
init:内核初始化代码,著名的start_kernel()就位于init/main.c文件中。
ipc: 进程间通信的代码。
kernel:内核最核心的部分,包括进程调度,定时器等,和平台相关的一部分代码放在arch/*/kernel 下。
lib: 库文件代码。
mm: 内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下。
net:网络相关的代码,实现各种常见的网络协议。
scripts:用于配置内核的脚本文件。
security: 主要是一个SELLinux模块。
sound: ALSA.OSS  音频设备的驱动核心代码和常用驱动设备。
usr: 实现用于打包和压缩的cpio等。
include: 内核API级别头文件。

内核一般要做到drivers和arch的软件架构分离,驱动中不包含扳级信息,让驱动跨平台,同时kernel中通用的部分(如kernel,fs,net,ipc等)则与具体的硬件(arch和drivers)剥离。
原文地址:https://www.cnblogs.com/chenfulin5/p/6172149.html