|
之前在這裡貼了一些自己trace linux kernel的一些筆記文,筆記式的8 x4 q8 c! }: d. h( t; s
文章難免寫得比較瑣碎,閱讀起來應該比較不容易,尤其逐行trace,
5 s4 O9 V/ q% n# d應該會有人很排斥或是不認同這樣的一種方式,之前曾經看到一些文章
7 z$ v" n3 `% Z( Y甚至會明白地提醒讀者切記不要逐行研究程式碼,要將其觀念記住才是
4 { o1 J5 G9 G3 s* R: d0 a: a重點。
1 A! d( ], l3 U2 [/ p
8 w D1 F) o/ p; |7 y. y6 j6 v這邊想針對這樣的論點提一些想法給大家參考,目的不是要訂出一個好
$ \$ J9 s' L* u' S/ F' Q0 W與壞,其實我覺得兩種方法並不相衝突,而是大家在學習的階段,可以
2 s% @/ z, q4 }# n依照理解程度來做取捨。
: w) U' P* v6 L' D0 n; Q" ?! L8 y
以自己的經驗來說,以前一開始囫圇吞棗,試圖去理解書上提到的觀念,
2 R$ N1 j. ~/ [6 ~& r! W) n似懂非懂的寄了許多東西,但是往往人家問我:
% `. ]6 G9 y' s; ^" g; L『你能夠自己寫出一個OS或是其中一部分功能嗎?』
& Y: A7 @5 `, j6 b似乎就變得很心虛,只能告訴對方『我知道它的實作原理』,但是說要
' [' _) a& F) O自己要寫,好像就是少了點什麼? 好像懂,但是要怎麼真正的寫出來,0 r8 R: Z7 p% [4 t3 ^' ]
卻是不怎麼敢肯定。" ?/ l' F2 ]8 q$ e" a- y
+ I2 t; ?: ]4 n& u4 j/ O7 b面對這樣的狀況持續一段時間,讓人真正有自信能夠依樣畫葫蘆弄出個3 Y, Y% d8 X: c& p5 {
什麼東西,卻是在花心思從很基本的instruction set開始K和逐行逐行
( R# @; F4 q/ W. Y了解之後,才覺得似乎概念和實作有了那麼一點連接。也由於這樣的基
, I+ {5 H0 c* l5 p3 A7 W" w礎,有時候有助於資料不足的狀況下,還能夠經由看程式碼來補足資料
: P: M6 i- t3 D8 O* f1 N; K# C不足的部份,甚至可以用來印證自己的想法。 |
|