linux 2.6内核源代码目录树简介

来源:互联网 发布:霍尼韦尔监控软件 编辑:程序博客网 时间:2024/04/28 05:17

linux 2.6内核具有O(1)调度算法、改进的NPTL线程模型、内核态抢占等特性,以及良好的响应能力。
可以把内核源代码目录树分为系统最核心组件和系统次核心组件:
其中,系统最核心组件包括:
scripts
目录
该目录中不包含任何核心代码,该目录下存放了用来配置内核的脚本和应用程序源码。
lib
目录
该目录主要包含两部分内容:gnuzip解压缩算法,用于在系统启动过程中将压缩的内核镜像解压缩;剩余的文件用于实现一个C库的子集,主要包括字符串和内存操作等相关函数。
mm
目录
该目录包含了体系结构无关的内存管理代码,包括通用的分页模型的框架、伙伴算法的实现和对象缓冲器slab的实现代码。
include
目录
这个目录包含了Linux源代码目录树中绝大部分头文件,每个体系架构都在该目录下对应一个子目录,该子目录中包含了给定体系结构所必需的宏定义和内联函数。
init
目录
该目录中存放的是系统核心初始化代码,内核初始化入口函数start_kernel就是在该目录中的文件main.c内实现的。
kernel
目录
该目录中存放的是Linux内核的最核心的代码,用于实现系统的核心模块,这些模块包括:进程管理、进程调度器、中断处理、系统时钟管理、同步机制等。
arch
目录
该目录中的每个子目录中都与某种体系结构相对应,用于存放体系结构相关代码,向平台无关的系统核心模块提供所需的功能接口。每个体系结构对应的子目录下通常至少包含以下几个子目录:kernel子目录、lib子目录、mm子目录、boot子目录。
系统次核心组件包括:
block
目录:用于实现块设备的基本框架和块设备的I/O调度算法。
usr
目录:该目录中的代码为内核尚未完全启动时执行用户空间代码提供了支持。
ipc
目录:该目录中的文件用于实现System V的进程间通信模块。
driver
目录:用于存放各类设备的驱动程序。
sound
目录:存放了声音系统架构,如Open Sound System(OSS)Advanced Linux Sound Architecture(ALSA)的相关代码和具体声卡的设备驱动程序。
security
目录:存放了Security-Enhanced Linux(SELinux)安全框架的实现代码。
crypto
目录:该目录中存放了相关的加密算法的代码。
Documentation
目录:存放了与内核相关的文档。
net
fs目录:包含linux内核支持的众多网络协议和文件系统。