一般桌面Linux 安装后,在/usr/src/Linux-*.*.*(版本号,比如2.4.18)目录下有内核源代码,内核代码非常庞大,包括驱动程序在内有几百兆字节。 下面介绍内核的目录结构。
①arch 目录包括了所有与体系结构相关的核心代码。 它下面的每一个子目录都代表一种Linux 支持的体系结构:
•i386:IBM 的PC 体系结构。
•arm:基于ARM 处理器的体系结构。
•alpha:康柏的Alpha 体系结构。
•s390:IBM 的System/390 体系结构。
•sparc:Sun 的SPARC 体系结构。
•sparc64:Sun 的Ultra-SPARC 体系结构。
•mips:SGI 的MIPS 体系结构。
•ppc:Freescale-IBM 的基于PowerPC 的体系结构。
•m68k:Freescale 的基于MC680x0 的体系结构。
•kernel:内核核心部分。
•mm:内存管理。
•boot:引导程序。
•compressed:压缩内核处理。
•tools:生成压缩内核映像的程序。
•lib:硬件相关工具函数。
②include 目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。
③init 目录包含核心的初始化代码(不是系统的引导代码),有main. c 和version. c 两个文件。
④drivers 目录中是系统中所有的设备驱动程序。 它又进一步划分成几类设备驱动,每种有对应的子目录,如声卡的驱动对应于drivers/sound。
⑤ipc 目录包含了核心进程间的通信代码。
⑥modules 目录存放了已建好的、可动态加载的模块。
⑦fs 目录存放Linux 支持的文件系统代码。 不同的文件系统有不同的子目录对应,如eX13 文件系统对应的就是ext3 子目录。
•proc/proc:虚拟文件系统。
•devpts /dev/pts:虚拟文件系统。
•ext2 Linux:本地的Ext2 文件系统。
•isofs:ISO 9660 文件系统(CD-ROM)。
•nfs:网络文件系统(NFS)。(www.xing528.com)
•nfsd:集成的网络文件系统服务器。
•fat:基于FAT 的文件系统的通用代码。
•msdos:微软的MS-DOS 文件系统。
•vfat:微软的Windows 文件系统(VFAT)。
•nls:本地语言支持。
•ntfs:微软的Windows NT 文件系统。
•smbfs:微软的Windows 服务器消息块(SMB)文件系统。
•umsdos:UMSDOS 文件系统。
•minix:MINIX 文件系统。
•hpfs:IBM 的OS/2 文件系统。
•sysv:System V、SCO、Xenix、Coherent 和Version7 文件系统。
•ncpfs:Novell 的Netware 核心协议(NCP0)。
•ufs:UnixBSD、SunOs、FreeBSD、NetBSD、OpenBSD 和NeXTStep 文件系统。
•affs:Amiga 的快速文件系统(FFS)。
•coda:Coda 网络文件系统。
•hfs:苹果的Macintosh 文件系统。
•adfs:Acorn 磁盘填充文件系统。
•efs:SGI IRIX 的EFS 文件系统。
•qnx4:QNX4 OS 使用的文件系统。
•romfs:只读小文件系统。
•autofs:目录自动装载程序的支持。
•lockd:远程文件锁定的支持。
⑧Kernel 内核管理的核心代码放在这里,同时与处理器结构相关代码都放在arch/*/kernel 目录下。
⑨net 目录里是核心的网络部分代码,其每个子目录对应于网络的一个方面。
⑩lib 目录包含了核心的库代码,不过与处理器结构相关的库代码被放在arch/*/lib/目录下。
scripts 目录包含用于配置核心的脚本文件。
documentation 目录下是一些文档,是对每个目录作用的具体说明。
另外,一般在每个目录下都有一个.depend 文件和一个Makefile 文件,这两个文件都是编译时使用的辅助文件。 仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助,目录下还可能有Readme 文件,它是对该目录下文件的一些说明。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。