|
之前在這裡貼了一些自己trace linux kernel的一些筆記文,筆記式的9 b+ I+ P. C( Q4 \( P: n4 u
文章難免寫得比較瑣碎,閱讀起來應該比較不容易,尤其逐行trace,
4 _5 ~: S0 _/ G! J應該會有人很排斥或是不認同這樣的一種方式,之前曾經看到一些文章! ]7 ]3 \! X$ V0 a; O1 t; c
甚至會明白地提醒讀者切記不要逐行研究程式碼,要將其觀念記住才是& ]% [$ j/ V8 ]1 o4 @
重點。
1 R5 _0 ~/ P3 T% I
) V# k5 Y8 \( _2 u( j* J這邊想針對這樣的論點提一些想法給大家參考,目的不是要訂出一個好
' w; h. I) e5 ]; ~4 f0 p與壞,其實我覺得兩種方法並不相衝突,而是大家在學習的階段,可以
7 A. Q4 q* Q9 d$ u' H0 r依照理解程度來做取捨。* {' T* [" x0 U9 ~- a4 i* w
' c2 I# |" T$ f4 ]4 z! ]% R/ O8 O$ ]以自己的經驗來說,以前一開始囫圇吞棗,試圖去理解書上提到的觀念,
8 n3 w" J7 X/ g {似懂非懂的寄了許多東西,但是往往人家問我:
" n( k E, R3 R' \『你能夠自己寫出一個OS或是其中一部分功能嗎?』
% {3 i4 c+ W" T) C$ E3 @似乎就變得很心虛,只能告訴對方『我知道它的實作原理』,但是說要
s C( M1 p2 p/ `& b9 K. d自己要寫,好像就是少了點什麼? 好像懂,但是要怎麼真正的寫出來,1 S( ^, |' |5 k
卻是不怎麼敢肯定。
. Y, x% E0 `- X/ B4 z. a6 \, [& }* K, J0 N
面對這樣的狀況持續一段時間,讓人真正有自信能夠依樣畫葫蘆弄出個$ N2 S# s! i. v" y; Y
什麼東西,卻是在花心思從很基本的instruction set開始K和逐行逐行* A% M: z% `0 R+ @2 G* q- p8 t A( f
了解之後,才覺得似乎概念和實作有了那麼一點連接。也由於這樣的基
$ q0 q5 v/ H9 d2 @礎,有時候有助於資料不足的狀況下,還能夠經由看程式碼來補足資料
0 ~) @& ^4 ?: J' X9 B. O不足的部份,甚至可以用來印證自己的想法。 |
|