linux内核目录结构学习笔记
目录结构
linux内核源代码采用树形结构进行组织,非常合理地把功能相关的文件都放在同一个子目录下,使得程序更具可读性。
目录结构(展示)
arch目录
arch目录是architecture的缩写,内核所支持的每种CPU体系,在该目录下都有对应的子目录,每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别包含控制系统引导,内存管理,系统调用等。
block目录
部分块设备驱动程序
crypto目录
加密、压缩、crc校验算法
documentation
内核的文档
drivers目录
设备驱动程序
fs目录
存放各种文件系统的实现代码,每个子目录对应一种文件系统的实现,公用的源程序用于实现虚拟文件系统vfs
||--devpts /*dev/pts虚拟文件系统*/
||--ext2/*第二扩展文件系统*/
||--fat/*ms的fat32文件系统*/
||--isofs/*iso9660光盘cd-rom上的文件系统*/
include目录
内核所需要的头文件。与平台无关的头文件在include/linux子目录下,与平台相关的头文件则放在相应的子目录中。
lib目录
库文件代码
mm目录
mm目录中的文件用于实现内存管理中与体系结构无关的部分(与体系结构相关的部分在哪里实现?arch中)
net目录
网络协议的实现代码
||--802 /*802无线通讯协议核心支持代码*/
||--appletalk /*与苹果体系联网的协议*/
||--ax25 /*ax25无线INTERNET协议*/
||--bridge /*桥接设备*/
||--ipv4 /*IP 协议族v4版32位寻址模式*/
||--ipv6 /*IP 协议族v6版*/
samples
一些内核编程的范例
scripts
配置内核的脚本
security
SElinux的模块
sound
音频设备的驱动程序
usr
cpio命令实现
virt
内核虚拟机
在进行内核改造的是arch和drives目录文件,其他的目录文件只需要了解就可以了