Linux内核剖析 之 Linux源代码组成
++++Linux:
++COPYING:有关公共许可证制度GPL的具体说明。
++README:Linux内核安装和使用的简要说明。
++Makefile:重构Linux内核可执行代码的make文件。用来组织内核的各模块,记录了个模块间的联系和依托关系,编译时使用;仔细阅读各子目录下的Makefile文件对弄清各个文件这间的联系和依托关系很有帮助。
++CREDITS:光荣榜,对Linux做出过很大贡献的一些人的信息。
++MAINTAINERS::维护人员列表,对当前版本的内核各部分都由谁负责。
++REPORTING-BUGS:有关报告Bug的一些内容。
++Documentation:有关Linux内核的文档。
++Arch:Arch是Architecture的缩写,内核中与具体CPU和系统相关的代码放在下一层的目录中,而.h文件分别放在include/asm中。
+Alpha:DEC 64位CPU。
+i386:包括x86系列中自80386后的所有32为CPU,也包括AMD K6等兼容系列。
+m68k:由Motorola开发的68000系列。
+MIPS:RISC CPU芯片。
+Sparc:RISC CPU芯片(sun)。
+S390:IBM生产的人工计算机。
+ia64:Intel IA-64结构64位CPU。
......
说明:每个CPU子目录又进一步分解为boot、mm、kernel等子目录,分别包含与系统引导、内存管理、系统调用等底层代码。
++Drivers:设备驱动程序,包括各类块设备和字符设备的驱动程序。
++Fs:文件系统,每个子目录分别对应一个特定的文件系统(VFS等)。
++Include:包含了所有.h文件,如Arch子树一样,在include中也是为各种CPU都专设一个子目录,还有通用目录Linux,net等。
++Init:Linux内核的main()和系统初始化过程,包含main.c等文件。
++Ipc:Linux内核的进程间通信,包括msg.c等文件。
++Kernel:进程管理和调度,包括sched.c、fork.c等文件。
++Lib:通用的工具性子程序,如对出错信息的处理等等。
++Mm:这个目录包括所有独立于CPU体系结构的内存管理代码,如页式存储管理内存的分配和释放等;而和体系结构相关的内存管理代码则位于arch/*/mm/,例如arch/i386/mm/fault.c。
++Net:核心与网络相关的代码。包含各种不同的网卡和网络规程的驱动程序。
++Scripts:用于系统配置的命令文件。