|
之前在這裡貼了一些自己trace linux kernel的一些筆記文,筆記式的
; G% P; U! N- p8 |# R文章難免寫得比較瑣碎,閱讀起來應該比較不容易,尤其逐行trace,+ y& _! q; C& s$ r
應該會有人很排斥或是不認同這樣的一種方式,之前曾經看到一些文章* Y$ F' s+ L0 P" @9 l6 _
甚至會明白地提醒讀者切記不要逐行研究程式碼,要將其觀念記住才是$ ^6 U* }# ^7 [0 j/ [4 F) e
重點。" d5 J( b, @: f) Y/ \; w+ [4 ?
5 y- O: a7 X$ j; \- G這邊想針對這樣的論點提一些想法給大家參考,目的不是要訂出一個好) N# j) N1 F0 _7 K: U) p
與壞,其實我覺得兩種方法並不相衝突,而是大家在學習的階段,可以
$ F8 S" ?* M9 _( X' w依照理解程度來做取捨。
0 j" f* B! {) E' a, D; P4 ^# J+ q& W
以自己的經驗來說,以前一開始囫圇吞棗,試圖去理解書上提到的觀念,. i( _# _: X4 E) M
似懂非懂的寄了許多東西,但是往往人家問我:
7 o! `4 G! @* v『你能夠自己寫出一個OS或是其中一部分功能嗎?』
# B' A5 Q) _/ j( y d2 q似乎就變得很心虛,只能告訴對方『我知道它的實作原理』,但是說要: ~6 x; T+ l% d$ p# u' G
自己要寫,好像就是少了點什麼? 好像懂,但是要怎麼真正的寫出來,
{, o- P9 w4 p$ W/ D" ~卻是不怎麼敢肯定。- E3 h9 H1 `5 e2 a' O4 ~
+ B# O I# `. W2 x, g! R面對這樣的狀況持續一段時間,讓人真正有自信能夠依樣畫葫蘆弄出個
% n( C' h. n7 B/ `什麼東西,卻是在花心思從很基本的instruction set開始K和逐行逐行
) M) o$ s. ^! N了解之後,才覺得似乎概念和實作有了那麼一點連接。也由於這樣的基* F, B9 o0 Z8 t* f$ V) e
礎,有時候有助於資料不足的狀況下,還能夠經由看程式碼來補足資料
. o& [7 \* T$ _( X不足的部份,甚至可以用來印證自己的想法。 |
|