linux内核目录结构

时间:2021-09-23 01:48:41

内核版本:2.6.32-504.el6.x86_64

linux内核目录结构

内核目录:

linux内核目录结构

各个目录的内容:

arch:包含所有与系统结构相关的代码

       |--x86  /*英特尔cpu及与之相兼容体系结构的子目录*/

  |  |--boot   /*引导程序*/

  |  |  |--compressed   /*内核解压缩*/

  |  |--tools   /*生成压缩内核映象的程序*/

  |  |--kernel   /*相关内核特性实现的方式,如信号处理、时钟处理*/

  |  |  |--lib   /*硬件相关工具函数*/

block:块设备驱动

crypto:内核本身所用的加密API,实现了常用的加密和散列算法

drivers:驱动代码,驱动是一个控制硬件的软件,是内核中最庞大的一个目录。例如显卡、网卡、SCSI适配器,PCI总线、USB总线和其他任何Linux支持的外围设备或总线的驱动程序都可以在这找到

firmware:包含了让计算机读取和理解从设备发来的信号的代码

fs:虚拟文件系统(VFS)的代码,和各个不同文件系统的代码都在这个目录中

  |  |--devpts  /* /dev/pts虚拟文件系统 */

  |  |--ext2  /* 第二扩展文件系统 */

  |  |--fat /* MS的fat32文件系统 */

  |  |--isofs  /* ISO9660光盘cd-rom上的文件系统 */

include:包含内核中大部分的头文件,要修改处理器结构只需编辑核心的Makefile并重新运行Linux核心配置程序

init:内核的初始代码,包括main.c,创建早期用户空间的代码及其他的初始代码

ipc:IPC进程间通信,包含了共享内存、信号量及其形式的IPC代码

kernel:内核中最核心部分,包括进城的调度以及进程的创建和撤销(fork.c和exit.c)和平台相关的另一部分核心代码在arch和kernel目录下

mm:包含了与体系无关的部分内存管理代码

net:核心的网络部分代码

  |  |--appletalk   /* 与苹果系统连网的协议 */

  |  |--802  /* 802无线通讯协议核心支持代码 */

  |  |--ax25  /* AX25无线INTERNET协议 */

  |  |--bridge  /* 桥接设备 */

  |  |--ipv4  /* IP协议族V4版32位寻址模式 */

  |  |--ipv6  /* IP协议族V6版 */

samples:一些内核编程的范例

script:无内核代码,只包含了用来配置内核的脚本文件,当运行make menuconfig或者mak xconfig之类的命令配置内核时,用户就是和位于这个目录的脚本进行交互的

security:主要是一个SELinux的模块

sound:声卡驱动以及其他声音相关的源码

tool:这个文件夹中包含了和内核交互的工具

usr:实现用于打包和压缩的GZIP等,其中的代码在内核编译完成后创建这个文件

virt:包含虚拟代码,他允许用户一次运行多个操作系统

Makefile:这个脚本是编译内核的主要文件

Kbuild:设置一些内核设定的脚本

CPOYING:许可和授权信息