Linux源代码目录结构介绍
1.arch目录:存放不同平台的相关代码,每种平台用不同的目录来区分。
******Alpha平台
******Arm平台
******Arv32平台
******X86平台
2.drivers目录:存放驱动程序的目录,不同的驱动用不同的目录来加以区分。
******ftape:磁带驱动
******hfmodem:无线电设备驱动
******joystick:游戏杆驱动
******paride:从并口访问IDE设备的支持
******cdrom:光驱驱动
******char:字符设备驱动
******fc4:光纤设备驱动
******misc:杂项设备驱动
******net:网卡驱动
******PCI:PCI总线驱动
scsi:SCSI设备驱动
sound:音频设备驱动
usb:usb串行总线驱动
video:视频卡设备驱动
block:块设备驱动
3.fs目录:存放Linux所支持的所有文件系统的相关代码,不同的文件系统用不同的目录加以区分。
******ext2:Linux支持的Ext2文件系统
******nfs:一种网络文件系统
******proc:/proc文件系统
******ufs:Linux的一种文件系统
4.其他目录
1).include目录:存放了编译内核时所需要的大部分头文件,其中在include/linux目录中,存放的头文件是与平台无关的,与平台相关的存放在了相关平台的不同目录里了。
2).init目录:存放着内核的初始化代码,包含了系统启动的main()函数。
3).ipc目录:存放着进程间通信的相关代码
4).kernel目录:存放着最核心的代码,管理内核的相关代码,如进程调度,内存管理等。
5).lib目录:存放着库模块代码
6).mm目录:存放着独立于CPU的内存管理代码,对于不同平台的代码来说用不同的目录来区分。
7).net目录:存放各种网络协议的代码
8).scripts目录:存放着配置内核的相关脚本文件
9).security目录:一个SELinux(Linux内核的一个强制访问控制系统)模块
10).sound目录:常用的音频设备驱动程序
11).usr目录:一个cpio(cpio是用来建立、还原备份文件的工具程序,它可以加入、解开cpio或tar备份档内的文件。)
12).block目录:块设备驱动程序。
13).crypto目录:常用的加密和压缩算法。
14).Documentation目录:内核部分功能的解释文档。
15).COPYING文件:GPL版权声明文件。
16).CREDITS文件:内核开发者列表
17).Kbuild文件:用来编译内核的脚本
18).MAINTAINERS文件:维护人员列表
19).Makefile文件:第一个Makefile文件,用来组织内核的各个模块,记录了各个模块相互之间的联系,编译器根据这个文件来编译内核。
20).Readme文件:内核及编译方法的介绍
21).REPORTING-BUGS文件:关于bug的一些内容。