|
之前在這裡貼了一些自己trace linux kernel的一些筆記文,筆記式的
: t. U8 i: _& D( D1 F6 l$ h$ a文章難免寫得比較瑣碎,閱讀起來應該比較不容易,尤其逐行trace,8 M* t W8 b: g7 s/ K
應該會有人很排斥或是不認同這樣的一種方式,之前曾經看到一些文章3 x' T3 a4 [# Y& R, Y* t6 |7 T
甚至會明白地提醒讀者切記不要逐行研究程式碼,要將其觀念記住才是2 V7 p9 u7 H5 d* F0 |- H7 k: o
重點。2 b1 L6 ^6 D+ Y' q) Q4 G2 x; y2 S! f5 F
K, r1 l( Q1 z2 L: b
這邊想針對這樣的論點提一些想法給大家參考,目的不是要訂出一個好
, O( Y; g3 i0 e& s. j8 u* @與壞,其實我覺得兩種方法並不相衝突,而是大家在學習的階段,可以 ~6 \7 r. G* D" y
依照理解程度來做取捨。# _0 N+ j, `- l' Y
) I f' Y: g) l& x以自己的經驗來說,以前一開始囫圇吞棗,試圖去理解書上提到的觀念,
2 ? `0 k- f6 U8 ?0 k% }! q似懂非懂的寄了許多東西,但是往往人家問我:
2 `3 q$ Y, B& `' }: {0 ]『你能夠自己寫出一個OS或是其中一部分功能嗎?』* N# S: T* [) D" g) i" T. t1 y9 Y6 j
似乎就變得很心虛,只能告訴對方『我知道它的實作原理』,但是說要
: p5 c5 W9 A# D0 B/ i9 q5 L自己要寫,好像就是少了點什麼? 好像懂,但是要怎麼真正的寫出來,- }! C$ j5 R0 F& w# p% F
卻是不怎麼敢肯定。
* U# H$ k0 E" T% a4 s6 ^8 s, E6 f" z/ x& x+ [1 \; n' z, F, g$ D
面對這樣的狀況持續一段時間,讓人真正有自信能夠依樣畫葫蘆弄出個3 c) n+ w4 j# ~; t* M
什麼東西,卻是在花心思從很基本的instruction set開始K和逐行逐行
7 W0 I8 a0 J! I# c2 k' q$ | l了解之後,才覺得似乎概念和實作有了那麼一點連接。也由於這樣的基
' {2 k1 t! g# L3 P/ @, Z礎,有時候有助於資料不足的狀況下,還能夠經由看程式碼來補足資料 Z6 c0 W# m" I) C+ b# `- l
不足的部份,甚至可以用來印證自己的想法。 |
|