这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » LINUX LINUX源码看的累!谈谈我的读码感受

共2条 1/1 1 跳转至

LINUX LINUX源码看的累!谈谈我的读码感受

院士
2006-09-17 18:14:16     打赏
LINUX LINUX源码看的累!谈谈我的读码感受



关键词: LINUX     源码     看的     谈谈     我的     读码     感受    

院士
2006-12-22 22:43:00     打赏
2楼
问 不知不觉,看LINUX源码也有半年了.常常看的晕,函数一环套一环,象绕迷宫一样,好不容易松口气,就又进了另一个天地.没办法,它牵涉的东西实在是太多了,又是文件系统,又是中断管理,又是内寸管理,......,单就一个函数实现可能就要涉及好几个方面,所以往往就是一个套一个,真是错综复杂.从数据结构分析,又是吓死人,好多数据结构都是庞大的出奇.
往往分析源码的过程中,你会发现代码本身倒不是最难的,难的是代码本身所要实现的机制,及其实现机制所采用的数据结构处理发式!比如内寸管理的实现机制及其采用的各种数据结构.现在我基本上每天平均要花2到3个小时在上面,感觉到现在也只能领悟到不到一成.关键还是数据结构的整体处理没能整体理解.感觉进度比较慢,我本打算一年就要熟悉.我有两个多月在看Oreilly<<Understanding.The.Linux.Kernel.3nd.Edition>>,主要集中在我认为比较复杂的进程管理,内存管理上.中断大概看了看,觉得最终还是要落在读源码上,现在就不专注于看书了,变成以读源码为主,Oreilly的书变成了手头的参考书,等到读了源码不清楚时才去翻书,这样觉得比单读书要好.尽管有书在案,可是发现很多跟本书上都找不到,我看的是LINUX最新版(2.6.18).我感觉LINUX的难点就在于数据结构间的关系.如果能将数据结构间的关系理清楚,那么我想就基本理解了.有时在读代码的过程中,脑海中不断的在想象着所描述数据结构件的关连关系.后来我就想要是有什么软件能将这些数据间的关连关系图示出来,那就好了,可是我也知道,除非简单的链表,树等等可以图示,一但数据关系复杂起来,还真是没办法画出来的(有吗?).有时候实在没办法,就用一个最笨的方法,一张纸,一支笔,把代码的数据关联简单的画一画,这样就看着容易了.别说,还真管用. 1: 现在还请各位谈谈都是怎么学习的,大家探讨探讨 2: 源码还是看的好系统做到了一定水平和难度,系统出问题可能要对系统有比较深的理解才能解决的,比如死锁问题,linux确实不是那么容易搞,我也刚入门,不是高手 3: 楼主现在条件好多了,当年孙玉芳的硕士论文就是读懂UNIX除了上万行的代码没有任何资料,人家花了2年的时间写出了中国第一篇UNIX的分析论文。

当时这只是硕士论文,今天恐怕可以当博士论文啦。 4: 国外的资料很多可以参考 5: 多谢提醒"楼主现在条件好多了,当年孙玉芳的硕士论文就是读懂UNIX

除了上万行的代码没有任何资料,人家花了2年的时间写出了中国第一篇UNIX的分析论文。

当时这只是硕士论文,今天恐怕可以当博士论文啦。"


受教了! 6: 大力支持哎!路漫漫其修远兮,吾将上下而求索! 7: 其实你可以试着把你读到的绘成图示以让后来者更加易于理解阿,当然,这样的成果,可以成为一本教程之类的书籍了,加以改善,出版发表也无不可。 8: 路过 :) 9: 看书与看代码相结合比较好推荐看ULK 3rd, LKD linux kernel development 10: 看程序的经验之谈:以对数据结构的操作为核心不要完全按照程序的顺序去看,以某个数据结构的操作为主线去跳着看,这样你可以很快抓住实质。

比如讲关于进程管理,可以以进程表项为主线;外设管理以外设的数据交换缓冲区为主线。。。。 11: 再说说,哈哈,莱鸟继续灌。随便说说,还是觉得方法很重要,linux是个大家伙,可不是一天两天,一月两月搞得定的,涉及的面太多,硬件如cpu,bois,pci,USB,网络协议栈等等,软件如进程管理算法,内存管理算法等等都是随便一个都可以出论文的的东西,要啃下来不是那么简单。我等能力有限,没能奈仅看表象(仅看代码),抓实质(理解基本原理)。所以,这玩艺儿离了高人的点敲,你还真玩不转。
还是那句话,要站在巨人的肩膀上。
所以看代码真的很重要,但是还是觉得有几点非常重要,那样会事倍功半。
1.找一条主线.第一印象可能是从启动代码读起,但是从驱动读起却也不错.关键是找到自己适合的.
2.蚂蚁搬家,读代码尤其是这个大块头,真的这样.
3.Oreilly<<Understanding.The.Linux.Kernel.3nd.Edition>>的这本真得很不错,基本大部分linux代码背后所实现的基本原理都讲到了,不仅如此,核心算法的代码实现也竟逐条分析的相当透彻.很认可有人称其为巨著.
4.关注一两个国内国外BBS,有问题可以参加讨论。
5.狂搜linux 的mailist,一旦找到,这个讲的超级细致,因为是真的大牛写的FAQ.牛不仅在于他们的水平牛,而更重要的是人家回答问题的水平更高(是才),而且往往都很有耐心,这反映了他们对待问题的一丝不苟(这是修养吧,是德),并且能把问题给别人讲的非常清楚,(我们古人讲的德才兼备,他们却真的做到了)我想这才是真正的高手吧。
12: 岂是1,2个月就能肯下来的啊涉及的面太多, 13: 被称之为系统没有那么容易学的既然被称之为系统肯定不好学了,何况是一个操作系统.我看过UC/OS-II那个内核要小的多,当时已经看的头晕了.更不用说UCLINUX了,比uc/os-ii大多了. 14: 潜心修行吧!的确数据结构弄清楚之后就可以了解部分设计思想,但是我觉得看代码并不是为看代码咯 15: 都是高人路过,顶 16: 我们我们这儿随便拉个人都能分析linux 17: 请看侯捷的‘源码追踪经验谈‘很好的一篇心得。 18: 俺把USB部分源码读透了也只能说明白了代码怎么回事,但是自己写还是不行

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]