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