进入 C 代码部分 第一部分 准备 1。内核代码结构 核心从 / arch/kernel/head.s 跳转出来后,进如了 c 语言广阔的海洋。在浩如烟海的代码中有很多东西是" name="description" />
linux 读核装备
MILY: 宋体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Times New Roman'">进入C代码部分
第一部分 准备
1。内核代码结构
核心从/arch/kernel/head.s跳转出来后,进如了c语言广阔的海洋。在浩如烟海的代码中有很多东西是读核心可以放弃的。对于大部分windows菜鸟来说,还是使用source-insight来读代码吧,不过如果把所有的代码都加到source-insight里去(180M啊180M),速度太慢。在建立工程前先瘦身。
1,NET,(你想做一个过时的黑客吗?如果不想放弃吧)
2,sound,2。6的核心居然有这么个单独的目录,我都没有仔细看就把它放弃了。
3,drivers,如果想知道驱动怎么写,可以看看,linux device driver 2nd Edition,网上有英文版的,书店有中文版。没有必要乍在这里看成千上万行程序代码。
4,fs,里面有太多流浪狗没有见过的文件系统,最多留下ext2,ext3就可以了。当然fs/*.c还是要留下的。
5,如果是完整的代码,arch和include里还有很多别的体系结构的代码,我的CPU是Piii所以留下i386部分。里面还有些amd-cpu的东西,不过不太多可以留下。
6,其他还有几个小目录都可以留下,不过重要的是,kernel ,mm,ipc,init,include,arch,
7,打开source-insight如果觉得它字体不太适应,可以在options--preferences--syntax formatting--basics里勾上,use-only-color-formatting。其他的东西再慢慢熟悉把。
8,在source-insight工程里jump to definition 和回退的快捷键分别是“Ctrl+=”和“Alt+,”
9,完成如上准备后就可以开始旅行啦,yeah!!!
2。阅读核心的准备。
流浪狗也不知道阅读核心代码需要多少基础知识,不过我会列举一些我觉得会用到的知识和我喜欢的书。因为流浪狗是非计算机专业的门外汉,所以很多东西可能对计算机专业的高手不太适合。
0,必须会使用计算机!!!
1,C语言知识。
2,操作系统基础知识,我比较喜欢的书是《现代操作系统》。
3,和unix系统的一些基本知识。ext2文件结构,fork等。
4,X86的proctect-mode。可以到网上找
总之,基础知识是很重要的,如果没有积累,恐怕也不可能看懂核心。比如下面几个简单的东西。如果你还不明白,想看懂核心恐怕有点难。
“进程控制块,进程扇,进程链。down和up操作,生产者,消费者。。。,LRU”
下面是部分书和资源,还有和很多一时想不起来了。
OReilly - Understanding the Linux Kernel - 2nd Edition.chm(深入理解linux kernel),流浪狗看了一遍又一遍。
OReilly - linux device driver- 2nd Edition,补充对设备驱动的理解。
LINUX内核源代码情景分析(上,下),有的地方讲得比较详细,不过电子版(D版)很难看。说真的我很讨厌这本书的前言。
上google查找利索脚。
joyfire笔记,是个网站。经常在csdn上逢人便说欢迎访问http://joyfire.net/。
浙江大学的 linux分析报告 98 96,一个是研究生班,一个是本科班,如果有兴趣可以看看研究生是怎么毕业的 :-)
最NB的当然还是www.google.com了。
核心第一个c代码函数是start-kernel,位置在init/main.c,let's go!!!