标题: Linux Kernel核心中文手册 [打印本页] 作者: sam 时间: 2007-7-18 22:58 标题: Linux Kernel核心中文手册 Linux Kernel核心中文手册 来自:蓝森林自由软件
Chapter 13 The Linux Kernel Sources ( Linux 核心源程序)
本章描述了你应该在 Linux 核心源程序的什么地方开始查看特定的核心功能。
本书不依赖‘ C ’语言的知识或要求你有 Linux 核心源程序才能理解 Linux 核心如何工作。而是说,练习查看核心源程序能够对于 Linux 操作系统有一个深入地理解。本章给出核心源程序的概览:它们如何组织,你应该从哪里开始查找特定的代码。
Where to Get The Linux Kernel Sources (从哪里得到 Linux 核心源程序)
所有的主要的 Linux 分发( Craftworks , Debian , Slackware , RedHat 等等)中间都有核心源程序。通常 L 安装在你的 Linux 系统上的 Linux 核心都是用这些源程序建立的。实际上这些源程序显得有些过时,所以你可能希望得到附录 C 提到的 web 站点得到最新的源程序。它们放在 ftp://ftp.cs.helsinki.fi 和其它所有的镜像的 web 站点。 Helsinki 的 web 站点最新,但是其它站点例如 MIT 和 Sunsite 也不会太落后。
如果你无法访问 web ,还有许多 CDROM 厂家用非常合理的费用提供世界主要 web 站点的块找。一些甚至提供预订服务,按季或月进行更新。你的本地的 Linux 用户组也是一个源程序的好的来源。
Linux 核心源程序有一个非常简单的编号系统。任何偶数的核心(例如 2.0.30 )都是一个稳定的发行的核心,而任何奇数的核心(例如 2.1.42 )都是一个开发中的核心。本书基于稳定的 2.0.30 源代码。开发版的核心具有所有的最新特点和所有最新的设备的支持,但是它们可能不稳定,可能不是你所要的,但是让 Linux 社团测试最新核心是很重要的。这样可以让整个社团都进行测试。记住,即使你测试非生产用核心,最好也要备份你的系统。
Include include 子目录包括编译核心所需要的大部分 include 文件。它也有更深的子目录,每一个支持的体系结构一个。 Include/asm 是这个体系结构所需要的真实的 include 目录的软链接,例如 include/asm-i386 。为了改变体系结构,你需要编辑核心的 makefile ,重新运行 Linux 的核心配置程序
Init 这个目录包含核心的初始化代码,这时研究核心如何工作的一个非常好的起点。
Mm 这个目录包括所有的内存管理代码。和体系结构相关的内存管理代码位于 arch/*/mm/ ,例如 arch/i386/mm/fault.c
Drivers 系统所有的设备驱动程序在这个目录。它们被划分成设备驱动程序类,例如 block 。
Ipc 这个目录包含核心的进程间通讯的代码
Modules 这只是一个用来存放建立好的模块的目录
Fs 所有的文件系统代码。被划分成子目录,每一个支持的文件系统一个,例如 vfat 和 ext2
Kernel 主要的核心代码。同样,和体系相关的核心代码放在 arch/*/kernel
Net 核心的网络代码
Lib 这个目录放置核心的库代码。和体系结构相关的库代码在 arch/*/lib/
Scripts 这个目录包含脚本(例如 awk 和 tk 脚本),用于配置核心
Where to Start Looking (从哪里开始看)
看像 Linux 核心这么巨大复杂的程序相当困难。它就像一个巨大的线球,显示不出终点。看核心的一部分代码通常会引到查看其它几个相关的文件,不就你就会忘记你看了什么。下一节给你一个提示,对于一个给定的主题,最好看源程序树的那个地方。