|
之前在這裡貼了一些自己trace linux kernel的一些筆記文,筆記式的1 ]/ R$ J- w8 @, F8 T
文章難免寫得比較瑣碎,閱讀起來應該比較不容易,尤其逐行trace,
7 x8 P/ U) U0 P$ V* {9 ]! B1 r應該會有人很排斥或是不認同這樣的一種方式,之前曾經看到一些文章
7 L# i' b4 z; P7 m/ O甚至會明白地提醒讀者切記不要逐行研究程式碼,要將其觀念記住才是& v: y& [, `* J
重點。
4 ?9 K/ q" j' _4 p2 O/ \6 b9 j6 ?
這邊想針對這樣的論點提一些想法給大家參考,目的不是要訂出一個好3 |) a P; K; H
與壞,其實我覺得兩種方法並不相衝突,而是大家在學習的階段,可以
# p4 O- T: e) y) h( h& b# E依照理解程度來做取捨。
3 P2 d4 w8 I) f0 x7 d3 r2 l% i5 H! g; U5 r n
以自己的經驗來說,以前一開始囫圇吞棗,試圖去理解書上提到的觀念,3 k* U" L' q3 Q+ t: D: X# H
似懂非懂的寄了許多東西,但是往往人家問我:6 E: J; @0 Y+ n7 V) ^
『你能夠自己寫出一個OS或是其中一部分功能嗎?』
. h7 j* h* a( R$ @& }似乎就變得很心虛,只能告訴對方『我知道它的實作原理』,但是說要4 C' `( i5 L( v, v, J' [
自己要寫,好像就是少了點什麼? 好像懂,但是要怎麼真正的寫出來,
2 D- q) \. a# j0 v- H3 p卻是不怎麼敢肯定。
" `( G# l% ]1 e& i/ o( E9 I# V$ y: w
面對這樣的狀況持續一段時間,讓人真正有自信能夠依樣畫葫蘆弄出個
) M& ^2 P6 ~' G8 L) R- i8 y什麼東西,卻是在花心思從很基本的instruction set開始K和逐行逐行/ E: Z5 Z$ l& f7 b Y7 k4 Z- S: q
了解之後,才覺得似乎概念和實作有了那麼一點連接。也由於這樣的基
4 d" T$ ]) V/ Z4 v" o, F0 }4 ?礎,有時候有助於資料不足的狀況下,還能夠經由看程式碼來補足資料9 S# f2 G# j/ Q$ e
不足的部份,甚至可以用來印證自己的想法。 |
|