以前常对一些数据结构和算法程序进行阅读和理解,加上acm代码提交时的单文件的规定,造成了喜欢单个文件从头到尾阅读的习惯,这样在有限的时间里,能够更加快速的在脑子里形成一个对文件的整体认识。
读linux kernel就不相同了,从刚开始以自上而下的方式阅读cfs进程调度开始,脑子里一直时混乱的,如何才能够一次性的阅读完整个源代码文本文件,如何能够在下次阅读代码的时候能够清晰的记得这次阅读的内容。
因此,选择了对代码进行注释的方法,在每次阅读代码之前,先看看以前阅读的总结,但是这样还是得花费大量的时间去记忆之前阅读的代码所表示的内容。有时页需要对当前.c文件所涉及到的.h文件进行阅读。前几天以从上至下的方式阅读了kobject.c,同时,也写了个东西出来,对比understanding linux kernel来看,可以说是惨不忍睹。没有一点条理性。让人阅读之后有种要崩溃的感觉。
这几天,尝试换用对关键函数以及相关联的函数进行阅读的方式阅读了内存页面的分配和释放。感觉阅读速度提高了,代码的理解力也上去了。很是不错的方法。
种方式首先需要阅读相关的书籍,毕竟你不可能从头到尾的阅读了,在基础知识方面有些欠缺,再是找到关键的代码。lxr.linux.no/source这个网站就起了很大的作用。接着通读整个函数,了解一些大概的东西,最后在按照函数的执行过程,从头到尾的对里面所涉及到的函数、宏、结构体进行具体的了解和阅读。
阅读(1604) | 评论(0) | 转发(0) |