教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> Linux内核源代码的阅读和工具介绍

Linux内核源代码的阅读和工具介绍

上传者:网友
|
翻新时间:2013-12-18

Linux内核源代码的阅读和工具介绍

Linux内核源代码的阅读和工具介绍 Linux内核源代码的阅读和工具介绍 信息技术论文 更新:2006-4-8 阅读: Linux内核源代码的阅读和工具介绍Linux的内核源代码可以从很多途径得到。一般来讲,在安装的linux系统下,/usr/src/linux目录下的东西就是内核源代码。另外还可以从互连网上下载,解压缩后文件一般也都位于linux目录下。内核源代码有很多版本,目前最新的版本是2.2.14。

许多人对于阅读Linux内核有一种恐惧感,其实大可不必。当然,象Linux内核这样大而复杂的系统代码,阅读起来确实有很多困难,但是也不象想象的那么高不可攀。只要有恒心,困难都是可以克服的。任何事情做起来都需要有方法和工具。正确的方法可以指导工作,良好的工具可以事半功倍。对于Linux 内核源代码的阅读也同样如此。下面我就把自己阅读内核源代码的一点经验介绍一下,最后介绍Window平台下的一种阅读工具。

对于源代码的阅读,要想比较顺利,事先最好对源代码的知识背景有一定的了解。对于linux内核源代码来讲,基本要求是:⑴ 操作系统的基本知识;⑵ 对C语言比较熟悉,最好要有汇编语言的知识和GNU C对标准C的扩展的知识的了解。另外在阅读之前,还应该知道Linux内核源代码的整体分布情况。我们知道现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序、网络等组成。看一下Linux内核源代码就可看出,各个目录大致对应了这些方面。Linux内核源代码的组成如下(假设相对于linux目录):

arch 这个子目录包含了此核心源代码所支持的硬件体系结构相关的核心代码。如对于X86平台就是i386。

include 这个目录包括了核心的大多数include文件。另外对于每种支持的体系结构分别有一个子目录。

init 此目录包含核心启动代码。

mm 此目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下,如对应于X86的就是arch/i386/mm/fault.c 。

drivers 系统中所有的设备驱动都位于此目录中。它又进一步划分成几类设备驱动,每一种也有对应的子目录,如声卡的驱动对应于drivers/sound。

ipc 此目录包含了核心的进程间通讯代码。

modules 此目录包含已建好可动态加载的模块。

fs Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext2文件系统对应的就是ext2子目录。

kernel 主要核心代码。同时与处理器结构相关代码都放在arch/*/kernel目录下。

net 核心的网络部分代码。里面的每个子目录对应于网络的一个方面。

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

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

Documentation 此目录是一些文档,起参考作用。

清楚了源代码的结构组成后就可以着手阅读。对于阅读方法或者说顺序,有所谓的纵向与横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是分模块进行。这不是绝对的,而是经常结合在一起进行。对于Linux源代码来讲,启动的代码就可以顺着linux的启动顺序一步一步来,它的大致流程如下(以X86平台为例):

./larch/i386/boot/bootSect.S-->./larch/i386/boot/setup.S-->./larch/i386/kernel/head.S-->./init/main.c中的start_kernel()。而对于象内存管理等部分,则可以单独拿出来进行阅读分析。我的体会是:开始最好按顺序阅读启动代码,然后进行专题阅读,如进程部分,内存管理部分等。在每个功能函数内部应该一步步来。实际上这是一个反复的过程,不可能读一遍就理解。

俗话说:“工欲善其事,必先利其器”。 阅读象Linux核心代码这样的复杂程序令人望而生畏。它象一个越滚越大的雪球,阅读核心某个部分经常要用到好几个其他的相关文件,不久你将会忘记你原来在干什么。所以没有一个好的工具是不行的。由于大部分爱好者对于Window平台比较熟悉,并且还是常用Window系列平台,所以在此我介绍一个Window下的一个工具软件:Source Insight。这是一个有30天免费期的软件,可以从www.sourcedyn.com下载。安装非常简单,和别的安装一样,双击安装文件名,然后按提示进行就可以了。安装完成后,就可启动该程序。这个软件使用起来非常简单,是一个阅读源代码的好工具。它的使用简单介绍如下:先选择Project菜单下的new,新建一个工程,输入工程名,接着要求你把欲读的源代码加入(可以整个目录加)后,该软件就分析你所加的源代码。分析完后,就可以进行阅读了。对于打开的阅读文件,如果想看某一变量的定义,先把光标定位于该变量,然后点击工具条上的相应选项,该变量的定义就显示出来。对于函数的定义与实现也可以同样操作。别的功能在这里就不说了,有兴趣的朋友可以装一个Source Insight,那样你阅读源代码的效率会有很大提高的。怎么样,试试吧!

靳美 201400

上海市奉贤县解放一村19号103室

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

我和书
电脑的自述
学跆拳道
评选活动演讲稿
一次有趣的实验
我们的校园
如果遇上“狼”,怎么办?
魔国
美丽的校园
如果时间倒流
我的老师
一件感人的事
我那“叽喳”妈妈
课间十分钟
我和凡卡比童年
试论根据高职学生特点进行思想教育
关于中职学校学生思想教育工作带来的思考
关于思想政治教育描述论
试析网络时代下的儒家道德思想教育
试论阅读教学中渗透思想教育的途径
试论“90后”大学生思想教育工作
试论思想教育在学生管理工作中的作用
试论如何做好高校毕业生的思想教育工作
浅谈高校学生管理契约化视角下管理者的角色转换
试论加强高校网络思想教育的思考
关于正确引导学生使用手机对学生进行思想教育
试论真理尺度和价值尺度的辩证关系
关于化学教师教育中化学思想教育的探索
试论高校网络舆情分析与引导的机制构建
试析价值观多元化背景下大学生政治思想教育
《智取生辰纲》线索分析
《智取生辰纲》问题探究
《智取生辰纲》重点难点突破
《智取生辰纲》同步达纲训练
《智取生辰纲》学习要点及方法
《智取生辰纲》强化练习
《智取生辰纲》句段品味
《智取生辰纲》重点难点讲解
《智取生辰纲》课文背景知识
《智取生辰纲》审美鉴赏
《智取生辰纲》研读赏析
《智取生辰纲》同步达纲练习
《智取生辰纲》词语解释
《智取生辰纲》写作特色
《智取生辰纲》疑难解析