|
之前在這裡貼了一些自己trace linux kernel的一些筆記文,筆記式的
# d+ ]. u: Z$ H) Y; x4 V文章難免寫得比較瑣碎,閱讀起來應該比較不容易,尤其逐行trace,
* _( u! H; G' [- k% W應該會有人很排斥或是不認同這樣的一種方式,之前曾經看到一些文章" q9 G* s# t. ]
甚至會明白地提醒讀者切記不要逐行研究程式碼,要將其觀念記住才是
; c: i: X- R5 N8 T; S; X0 I& Q重點。$ H9 i9 d9 V4 r0 `
0 c ~' D* |; i c4 [7 i
這邊想針對這樣的論點提一些想法給大家參考,目的不是要訂出一個好" W$ S! Q* ]# h
與壞,其實我覺得兩種方法並不相衝突,而是大家在學習的階段,可以; s0 s; j+ j" ]5 J+ g5 U8 O1 R
依照理解程度來做取捨。7 H4 L* l/ {# Q2 i$ M
, I1 ~6 \8 R% ^# z$ r5 z
以自己的經驗來說,以前一開始囫圇吞棗,試圖去理解書上提到的觀念,
, w& K w: f: G6 m似懂非懂的寄了許多東西,但是往往人家問我:, w4 v4 ~" m" w+ h3 a
『你能夠自己寫出一個OS或是其中一部分功能嗎?』: z1 ?* e4 g5 l* k* {0 C
似乎就變得很心虛,只能告訴對方『我知道它的實作原理』,但是說要
3 U$ b2 B! _" b& e* k自己要寫,好像就是少了點什麼? 好像懂,但是要怎麼真正的寫出來,
! ^7 V& [7 j+ h! c9 i, E/ q卻是不怎麼敢肯定。) C% N# r+ G( M- }- c
7 `4 k5 u5 M2 t9 M. n/ x5 k面對這樣的狀況持續一段時間,讓人真正有自信能夠依樣畫葫蘆弄出個
/ Y# [* Y; e- |& i: w什麼東西,卻是在花心思從很基本的instruction set開始K和逐行逐行4 Z& T5 y; |7 `" X7 H, X6 e7 [' h
了解之後,才覺得似乎概念和實作有了那麼一點連接。也由於這樣的基
, X2 `! c5 h' ^( h9 V) v' n2 D礎,有時候有助於資料不足的狀況下,還能夠經由看程式碼來補足資料
- Q/ h; c- B, A4 r2 q* |不足的部份,甚至可以用來印證自己的想法。 |
|