- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十四章Linux核心资源.doc
第十四章 Linux核心资源
本章主要描叙寻找某个特殊核心函数时用到的Linux核心资源。
本书并不要求读者具有C编程语言的能力或者拥有Linux核心源代码来理解Linux核心工作原理。但是如果对核心源代码进行阅读将加深对Linux操作系统的理解。本章提供了一个核心源代码的综述。
从哪里得到Linux核心源码
所有主要Linux分发版本(如Craftworks,Debian,Slackware,Redhat)都包含了源码在内。通常安装在你的Linux系统核心就是从这些源码中构造出来的。由于一些显然的因素,这些源码都或多或少有点过期。 你可以在www-appendix一章中的那些WEB站点中得到最新的版本。这些站点包括ftp://ftp.cs.helsinki.fi 以及所有其他镜象站点中。helsinki的这个WEB站点上的Linux源码显然是最新的但是MIT和Sunsite中的也 不会差太远。
如果你无法访问这些WEB站点,有许多CD ROM厂商以非常合理的价格提供了这些WEB站点的镜象光盘。有些厂商还提供每季度甚至每个月更新的订购服务。另外你所在的本地Linux用户组也是一个很好的资源。
Linux核心代码的版本编号很简单。任何偶数编号的核心(如2.0.30)都是稳定的发行版而记数编号的核心(如2.1.42)都是正在开发的核心。本书基于稳定的2.0.30版本。开发版的核心具有所有最新的特征并支持最新的设备。尽管它们不是你所希望的那样稳定,但是对于Linux用户团体来说试用新核心是非常重要的。
因为他们将完成这些评测工作。当试用非发行版本核心时备份系统总是有好处的。
核心的修改以patch文件来分发。而patch实用程序被用来对一些核心源码进行编辑。例如如果现在你已经有了2.0.39的核心代码但是你想升级到2.0.30,那么你在取得2.0.30补丁文件后可以实用以下命令来修改 现存核心:
$ cd /usr/src/linux
$ patch -p1 patch-2.0.30
一个收集核心补丁的站点是。
核心源码的组织
核心源码的顶层是/usr/src/linux目录,在此目录下你可以看到大量子目录:
arch
这个子目录包含了所有体系结构相关的核心代码。它还包含每种支持的体系结构的子目录,如i386。
include
这个目录包括了用来重构核心的大多数include文件。对于每种支持的体系结构分别有一个子目录。
此目录中的asm子目录中是对应某种处理器的符号连接,如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脚本)。
从哪里入手阅读象Linux核心代码这样的复杂程序令人望而生畏。它象一个越滚越大的雪球。阅读核心某个部分经常要用到好几个其他的相关文件,不久你将会忘记你原来在干什么。本小节将给出一些提示。
系统启动与初始化
在基于intel的系统上,Linux可以通过loadlin.exe或者LILO将核心载入内存并将控制传递给它。这部分程序位于arch/i386/kerneld/head.S。此文件完成一些处理器相关操作并跳转到init/main.c中的main()例程。
内存管理
这部分代码主要位于mm目录中但其处理器结构相关部分被放在arch/*/mm中。页面出错处理代码位于mm下的memory.c文件中而内存映射与页面cache代码位于filemap.c中。buffer cache则在mm/b
您可能关注的文档
最近下载
- 治疗原则及用药注意事项.pptx VIP
- GP规范中文版2.2_原创精品文档.pdf VIP
- 安徽灿松工程技术有限公司招聘简章.PDF VIP
- 制粉系统外委维护技术协议..doc VIP
- 华东理工大学《化工设备设计》期末知识点复习习题(含答案).pdf VIP
- 儿童流行性感冒中西医结合诊疗指南(2024)解读 PPT课件.pptx VIP
- 华东理工大学《过程流体机械》期末复习资料.pdf VIP
- GB50236-2011 现场设备、工业管道焊接工程施工规范.docx VIP
- 比亚迪新能源汽车零部件选型手册V2.6.pdf
- 凯恩帝K1000Mi-A,K1000M4i-A说明书(连接调试篇).pdf
原创力文档


文档评论(0)