linux内核源码目录结构分析

前言

在查看Linux源码的时候,发现里面的代码都是按照目录整理好的。所以去查看了一下Linux源码的目录结构,主要转自知乎的一篇文章以及一篇别人的博客
Linux内核源码有几千万行,包含源文件和工程文件有48374个,这里顺便贴一下一个Linux在线源码
下面内核目录以linux-3.14内核作为讲解:
linux内核源码目录结构分析

结构分析

/arch arch是architecture的缩写。所有与体系结构相关的代码都在这个目录以include/asm-*/目录中。Linux支持的每种体系结构在arch目录下都有对应的目录,又进一步分解为boot,mm,kernel等子目录:
--arm arm及与之相兼容体系结构的子目录
--boot 引导程序,以及在这种硬件平台上启动内核所使用的内存管理程序的实现。
--compressed 内核解压缩
--tools 生成压缩内核映像的程序
--kernel: 存放支持体系结构特有的诸如信号量处理和SMP之类特征的实现。
--lib: 存放体系结构特有的对诸如strlen和memcpy之类的通用函数的实现。
--mm: 存放体系结构特有的内存管理程序的实现。
除了这3个子目录以外,大多数体系结构在必要的情况下还有一个boot子目录,包括了在这种硬件平台上启动内核所使用的内存管理程序的实现。
/block 块设备通用函数
/crypto 常见的加密算法的C语言实现代码,譬如crc32、md5、sha1等
/Documentation 提供文档帮助。关于内核的一些说明信息,在这个目录下会有帮助手册。
/drivers 内核中所有设备的驱动程序,其中的每一个子目录对应一种设备驱动
/firmware 固件代码
/fs Linux支持的文件系统代码,及各种类型的文件的操作代码。每个子目录都代表Linux支持的一种文件系统类型
/include 内核编译通用的头文件
/init 内核初始化的核心代码
/ipc 内核中进程间的通信代码
/kernel 内核的核心代码,此目录下实现了大多数Linux系统的内核函数。与处理器架构相关的内核代码在/kernel/$ARCH/kernel
/lib 内核共用的函数库,与处理器架构相关的库在/kernel/$ARCH/lib
/mm 内存管理代码,譬如页式存储管理内存的分配和释放等。与具体处理器架构相关的内存管理代码位于/arch/$ARCH/mm目录下
/net 网络通信相关代码
/samples 示例代码
/scripts 用于内核配置的脚本文件,用于实现内核配置的图形界面
/security 安全性相关的代码
/tools Linux中的常用工具
/usr 内核启动相关的代码
/virt 内核虚拟机相关的代码

linux内核源码目录结构分析

上一篇:Linux高级编程——fork进程控制


下一篇:ps linux