Linux源文件的组织结构-转

源文件的树形目录如图所示。

  下面详细介绍内核源文件的结构,以内核2.4.x为例。内核源程序的文件按树形结构进行组织,Linux-2.4.x最上层会看到这样一些目录:

  (1)arch:arch子目录包括了所有和体系结构相关的核心代码。它的每一个子目录都代表一种被支持的体系结构,如NOMMU/下就是关于ARM的内核代码。

  图 Linux源文件的树形目录

  (2)include:include子目录包括编译核心所需要的大部分头文件。与平台无关的头文件在include/Linux子目录下,与ARM 相关的头文件在include/asm-ammommu子目录下。

  (3)init:这个目录包含核心的初始化代码(注:不是的引导代码,而是kernel内核的启动代码),包含malns和versis两个文件,这是研究初始化和内核如何工作的起点。

  (4)mm:这个目录包括所有独立于体系结构的管理代码,如页式存储管理的分配和释放等,而和体系结构相关的内存管理代码则位于arch/$(ARCH)/mm/,例如arch/armnoΠunu/mmlfault.c。

  (5)kernel:主要的核心代码,此目录下的文件实现了大多数Linux系统的内核函数,其中最重要的文件当属sched.c,和体系结构相关的代码在arch/$(ARCH)Acernel中。

  (6)drivers:系统所有的设各驱动程序,每种驱动程序又各占用一个子目录,如block/目录下为块设各驱动程序,比如IDE(ide.c)。如果希望查看所有可能包含文件系统的设备是如何初始化的,可以查看drivers/block/genhd.c中的 setup()。它不仅初始化,也初始化网络,因为安装此文件系统时需要网络。

  (7)其他如lib放置核心的库代码;net放置核心与网络相关的代码;lpc这个目录包含核心的进程间通信的代码;fs为所有的文件系统代码和各种类型的文件操作代码,它的每一个子目录支持一个文件系统,例如fat和ext2;scnpts目录包含用于配置核心的脚本文件等。

61人参与, 0条评论 登录后显示评论回复

你需要登录后才能评论 登录/ 注册