BSD愛好者樂園;V"rq5|Q今天零零散散看了一點兒代碼,遇到的困難很多,但也因此有了一些收獲!
]c?]M6z$|2@0ek0BSD愛好者樂園(_!vcB4lMsBSD愛好者樂園&M+K Gjiag‘G今天看的代碼都是圍繞 /sys/kern/init_main.c這個文件展開的,其實對這段代碼,無論是《FreeBSD設(shè)計與實現(xiàn)》還是《FreeBSD系統(tǒng)結(jié)構(gòu)手冊》電子文檔,都有所提到,文字的堆砌使這段代碼比較容易理解,但是這些代碼所涉獵的東西,卻不是很容易搞清楚,回想用到的知識,大約有如“古龍”所寫的《七種
武器》,每種武器都那么的平常,每種武器都是人性不可或缺,而且每種武器都是致命的。
BSD愛好者樂園bp^#A1YC FBSD愛好者樂園fUm6CmK bA*soF0這第一種武器,應(yīng)該是一個很好用,或者是比較熟悉的 ”
源代碼閱讀軟件“,有了它,就可以在源代碼中穿梭自如,我使用的是kscope,自認(rèn)為相當(dāng)不錯的源代碼閱讀軟件,除了穿梭于源代碼之間,還有一個非常貼心的功能,就是可以生成指定函數(shù)的模塊圖,包括哪些
函數(shù)調(diào)用了它,也包括指定的函數(shù)會調(diào)用哪些其他的函數(shù)。
BSD愛好者樂園{6zO\cIh‘]9ox8Oqt0I,yS,Kg0第二件武器是gnu c 的預(yù)處理擴展,很致命的一件武器,不了解它,幾乎是寸步難行,哪些眼花繚亂的 #define,##。。。,如果沒有掌握點gnu的擴展,那基本上就是看熱鬧。
BSD愛好者樂園$hiu4^b:JBSD愛好者樂園,f7_‘fxbMmw/D;Zhttp://www.yuanma.org/data/2006/0625/article_948.htm
i]+sl9KZ-PkQXV0‘U%NR?OCY-T&K0http://www.xxlinux.com/linux/article/development/soft/20070518/8471.html
F%cma‘wH0BSD愛好者樂園ikB5{b^2@BSD愛好者樂園},j;NYKxw第三件武器是 gnu c 的內(nèi)嵌匯編語言,如果有masm的基礎(chǔ),對理解AT&T格式的匯編代碼困難不大,但當(dāng)涉及到參數(shù)傳遞,My God,我只能希翼能有針對這個方面的中文手冊,所看到的,所收集的都是簡單帶過,太多的隔靴瘙癢了。
\$hnx2R"kb,ql0BSD愛好者樂園]7P;B`GBSD愛好者樂園*R@i.[6W第四件武器是眼力,這似乎和代碼無關(guān),但非常重要,我覺得如果要看大量的源代碼,必須訓(xùn)練自己擁有一雙C語言模式的鷹眼,可以快速識別源代碼中的C語言語法范式,否則,就要多多問候自己的那雙明亮的眼睛,花否?
#Q(yw2EH{2d0BSD愛好者樂園V"qW(Ns/Ds3iBSD愛好者樂園}4y*l{*I第五件武器是非常出色的理解typedef、
指針的能力,這或許也該說是C語言語法的一種能力,閱讀源代碼,千萬別因為能看懂那些顯式的數(shù)據(jù)類型而沾沾自喜,認(rèn)為掌握了C語言的精髓,而真正的競技場是typedef和指針的盤根錯節(jié),了解的人可能會非常喜歡它,如果還不夠了解或者不太熟練,那絕對是個靜候在暗處的殺手,隨時殺掉你好不容易建立起來的閱讀源代碼的興趣。
(Qw C\0kXJ/|A0BSD愛好者樂園dg8XiZ$?BSD愛好者樂園0R6fr)c?Yh Ss:X+U-Vg第六件武器,硬件體系結(jié)構(gòu)和操作系統(tǒng)原理,這個不消說,這把大刀從來就是越磨越亮!
BSD愛好者樂園l?6`,~"M/q2K?p8u6`:^&x#T\0BSD愛好者樂園A"@,Pq@Gl?第七件武器,我想也是最關(guān)鍵的,有如世上的各種”名劍“,都需要”玄鐵劍“般的沉穩(wěn),”殘劍”般破荊斬棘的勇氣,”冰魄劍“般的單純,還有”越女劍“以柔化剛的韌勁,如果沒有這幾樣品質(zhì),想成為風(fēng)流名劍,只能考慮”辟邪劍譜“了!
BSD愛好者樂園xJ,]5e2QvZXm5c^BSD愛好者樂園K c)ZY,m*h4bBSD愛好者樂園8B|][YO0w