分享

Linux内核源码的组织结构

 mrjbydd 2010-12-29
Linux内核作为一个特殊的程序,同样需要经过编译、链接之后才能运行,仅仅是它执行时拥有特殊的权限,位于特定的空间,并且不会也不可能信赖其他的软件罢了。

Linux发展至今,其内核的组织结构日渐清晰,层次日渐分明。一旦基本系统安装完毕,具有系统管理员权限的用户即可编译内核。一般来说,Linux系统内核的源码放置在/usr/src/linux目录下,它将依赖于体系结构的代码和独立于体系结构的代码分离开来(前者仅占5%,通常是一些汇编代码和局部的、针对于不同体系结构的局部处理细节,如时钟定时器频率)。

为了让读者更好地理清内核结构,下面列出了几个重要的源码目录:

arch目录 该目录的存放具体地依赖于体系结构实现的代码。在这个目录下,针对不同体系结构所移植的版本都有三个子目录:kernel、lib和mm。kernel子目录包含依赖于体系结构实现的一般内核功能,例如信号处理、时钟处理等。lib子目录包含库函数的本地实现,如果从依赖于体系结构的源码编译,则运行得更快。mm子目录包含存储管理实现的代码。

drivers目录 这个目录拥有50%以上的内核源码,所有的驱动程序源码均位于该目录之下。

fs目录 该目录存放所有的系统支持的文件系统的实现代码。

include目录 一些重要的头文件。

ipc目录 处理进程间通信的全部所需的代码都放在ipc目录下。

init目录 该目录存放所有系统的初始化代码,许多重要的文件,例如main.c就位于该目录下。该文件还包含了许多核心代码--比如实现fork()的代码和最常执行的代码--cpuidle()循环。

lib目录 该目录放置内核其他部分经常所需要的代码。例如,inflate.c就放在这里,它能够在引导时解压内核并装入内存,它也知道如何解压标准PKZIP 8位压缩算法。

kernel目录 许多最常调用的内核函数放在该目录下。调度器fork()和timer.c就放在这里。你还能在这个目录下找到printk.c。

mm目录 该目录包含所有Linux实现虚拟内存管理的源码。

net目录 所有提供网络支持的代码都放在这个目录下。

Document目录 该目录存放了大量的内核代码相关文档,以及用户开发和维护手册。

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多