分享

4.1.2 内核源码目录介绍

 败败0619 2012-07-05

4.1.2 内核源码目录介绍

4.1.2  内核源码目录介绍

Linux内核代码以源码树的形式存放,如果在安装系统的时候已经安装了源码树,其源码树就在/usr/src/linux下,源码树结构如图4.2所示。

 
(点击查看大图)图4.2  Linux内核源码树结构

下面分别针对图4.2中各个部分进行介绍,各个目录的主要的功能分别如下。

1.arch目录

arch子目录包括了所有和体系结构相关的核心代码。它的每一个子目录都代表一种支持的体系结构,例如arm子目录是关于ARM平台下各种芯片兼容的代码。

2.include目录

include子目录包括内核编译时所需要的大部分头文件。与平台无关的头文件在include/linux子目录下,include/scsi目录则是有关scsi设备的头文件目录,与arm相关的头文件在include/asm-arm子目录下。

3.drivers目录

drivers子目录放置系统所有的设备驱动程序。有些驱动是与硬件无关的,而有些驱动是与硬件平台相关。例如,在USB驱动中,主机控制器有3种规格:

OHCI主要为非PC系统上及带有SiShe ALi芯片组的PC主板上的USB芯片,嵌入式系统一般使用该驱动。

UHCI大多为Intel和Via主板上的USB控制器芯片。相对OHCI而言UHCI的硬件电路比较简单,同时其成本也比较低,但驱动复杂,但它们都是在USB 1.1规范同时提出的。

EHCI由USB 2.0规范所提出,它兼容OHCI和UHCI。

4.fs目录

fs子目录列出了Linux支持的所有文件系统,目前Linux支持ext2、vfat、ntfs、yaffs2、ramfs、cramfs和romfs等多种文件系统。在嵌入式系统中常用的闪存设备的文件系统有cramfs、romfs、ramfs、jffs2、yaffs等文件系统。

5.init目录

init子目录包含核心的初始化代码(注意,不是系统的引导代码)。它包含两个文件main.c和version.c,这是研究核心如何工作的一个非常好的起点。

6.ipc目录

ipc子目录包含核心进程间的通信代码。Linux下进程间通信机制主要包括管道、信号、消息队列、共享内存、信号量、套接口。

7.kernel目录

kernel子目录包含内核管理的核心代码。与处理器结构相关代码都放在arch/*/kernel目录下。

8.net目录

net子目录里是核心的网络部分代码,其每个子目录存放一个具体的网络协议或者网络模型代码。

9.mm目录

mm子目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下。

10.scripts目录

scripts子目录包含用于配置核心的脚本文件。

11.lib目录

lib子目录包含了核心的库代码,与处理器结构相关的库代码被放在arch/*/lib/目录下。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多