Linux内核代码目录结构

Linux内核代码的目录结构,本文以5.11.11版本为例。

5.11.11版本目录结构

arch:包含了所有与体系结构相关的代码,每一个子目录都代表Linux支持的体系结构,如x86代表X86架构的CPU,台式机一般都基于这个目录。

block:包含块设备(以块作为单位来访问)管理的代码,SD卡、Namd、硬盘等都属于块设备。

certs:黑名单相关的代码。

crypto:这个目录存放了各种加密算法的C语言实现,例如MD5、SHA256、CRC32等。

Documentation:内核的说明文档。

drivers:包含系统所有的驱动程序,每个子目录分为一种设备的驱动,比如声卡驱动位与drivers/soundwire目录下。

fs:fs全称File System(文件系统),存放Linux支持的文件系统实现,如EXT4、FAT等。

include:公共(各种CPU架构)的头文件目录,与平台无关的头文件在include/linux子目录里面。

init:内核启动时的初始化代码,不是系统引导代码。

ipc:ipc全称Inter Process Commuication(进程间通信),包含支持的IPC的实现。

kernel:kernel即内核,这个目录里存放的是内核本身需要的一些代码。

lib:包含了核心的库代码。这里的库函数与C的库函数是不一样的,在内核编程中是不能使用C标准库的函数,lib目录下就是一些用来替代C标准库函数的实现。

LICENSES:开源协议、授权说明存放目录,如GPL、MIT等开源协议。

mm:全称Memory Management(内存管理),包含了所有的内存管理代码。

net:存放网络相关的代码,如TCP/IP协议栈的实现等。

samples:各种示例模块目录。

scripts:脚本目录,用于辅助编译内核。

security:存放安全方面的代码。

sound:包含音频处理相关的代码。

tools:Linux中用到的一些工具。

usr:存放初始化相关的文件。

virt:Linux内核虚拟机相关。

根目录下的一些文件

.mailmap:存放部分Linux内核开发者的邮件地址。

COPYING:版权说明。

CREDITS:名人堂,感谢对Linux内核做成贡献的人物。

Kbuild:这个是Linux特有的内核编译体系需要用到的文件。

Kconfig:内核配置文件。

MAINTAINERS:Linux内核维护者的信息。

Makefile:内核总构建文件,整个内核工程由这个来管理。

本文耗时:50分钟

Leave a Reply