linux内核阅读

来源:互联网 发布:apache添加虚拟主机 编辑:程序博客网 时间:2024/04/29 22:46

class="msgheader">QUOTE: class="msgborder">Linux的源代码是很庞大的,如果没有一个好的方法是很难能够有一个比较高的效率的。所以我首先要写的就是我在阅读linux源代码的时候所采用的方法。希望会对大家有所帮助!


首先,我找了几本分析linux源代码的书。有一本关于linux源代码分析的书是必须的,因为没有人能在第一次阅读linux源代码的时候能够很好的理解他,甚至有了书籍也不一定能很好的理解他。我找到了《linux源代码完全注释》和《linux源代码情景分析》。其中,《linux源代码完全注释》是一个对早期的linux内核源代码的分析,而《linux源代码情景分析》是对2。4版的内核源代码进行了分析。实际上很长一段时间我只是在看这两本书。


接下来,我并没有直接去仔细的去研究这两本书,而是先花了一段时间通读了一遍。这样做的目的就是对linux有一个整体的认识。我在这一步里,大体上了解了 linux源代码中大多数文件的作用。这样做会对以后的阅读有很大的帮助。如果这一步做不好,你在以后的阅读中会感觉到很大的困难,这种困难可能会使你丧失阅读下去的信心。因为,你会发现你根本不知道他在讲些什么,即使有书籍的帮助。


然后,我们就可以开始我们的阅读源代码的激动人心的时刻了!但是应该注意的是,我们阅读源代码应该有一个固定的顺序。而不应该翻到那儿看到那儿!一般按照书上的顺序就可以了。但是很不幸,好像每本书的顺序都是不一样的!这样我们就应该按照我们自己的具体情况来选择一种。我的建议是:如果你的数据结构学的很好的话,你就先读那些内核数据结构,例如进程控制块等等。但是,如果很不幸数据结构学的不怎么样,甚至根本就是不怎么地,那么就以引导程序开始阅读,以系统的引导为主线一直读下去。读boot文件夹里的文件,应该注意的是,你应该有一定的汇编语言的知识,不然你很难能真正理解里面的内容。我读这儿的时候就专门补习的汇编语言的知识。然后是init里面的 main.c文件,这儿是一个汇聚点。这个文件就好像一栋大楼的大厅,我们要从这儿走到这栋楼的个个部分。我们下一步就是按照main中的顺序来阅读整个 linux内核的个个部分,这些部分包括了linux源代码的绝大部分内容。我就是按照后者来阅读的,因为我的数据结构基本上就是白板。很不幸,直到现在我还没有完全阅读完linux内核早期版本的源代码。也就是说,我对于linux内核源代码的阅读方法的经验就只有这些了。


最后,我还想说的是,如果你有时间的话,可以阅读一下近期的内核版本中的相应的文件,看看有什么变化,这样会加深对linux内核的理解!

 


原创粉丝点击