|
之前在這裡貼了一些自己trace linux kernel的一些筆記文,筆記式的" A0 |3 o; \( b, U- R, @4 S5 @. p) b+ s
文章難免寫得比較瑣碎,閱讀起來應該比較不容易,尤其逐行trace,
: ]/ t5 j0 n W; S/ c應該會有人很排斥或是不認同這樣的一種方式,之前曾經看到一些文章
( Q$ N3 j8 N+ h7 T' F甚至會明白地提醒讀者切記不要逐行研究程式碼,要將其觀念記住才是
- c* i; V6 x1 B6 R重點。
) I2 F- m3 P# v' A. w2 |( V v
n6 Z4 R6 e( |/ ^' `這邊想針對這樣的論點提一些想法給大家參考,目的不是要訂出一個好
/ @( n4 M# @5 I1 ~) q與壞,其實我覺得兩種方法並不相衝突,而是大家在學習的階段,可以- ]3 i& G& f2 _* L; k9 K/ G0 n
依照理解程度來做取捨。
" Y' M' {1 U% x
, j5 L4 }4 X! [# _2 q! Q# y以自己的經驗來說,以前一開始囫圇吞棗,試圖去理解書上提到的觀念,; l0 A6 w' u! w3 B& n- u0 J. Q
似懂非懂的寄了許多東西,但是往往人家問我:
. `6 {5 L6 S8 l Y5 G" {/ e『你能夠自己寫出一個OS或是其中一部分功能嗎?』- |9 l- ^; e; e) t' `5 @: b9 @+ c
似乎就變得很心虛,只能告訴對方『我知道它的實作原理』,但是說要/ |2 c: R' \" g* w5 R
自己要寫,好像就是少了點什麼? 好像懂,但是要怎麼真正的寫出來,
* i: o6 ?6 p2 s! P卻是不怎麼敢肯定。4 B/ m! W' V: k) r
P7 z* {; t5 H v/ d1 ^( f5 |% ~
面對這樣的狀況持續一段時間,讓人真正有自信能夠依樣畫葫蘆弄出個
! M$ E. J# b. y% B- S: k- G什麼東西,卻是在花心思從很基本的instruction set開始K和逐行逐行
+ B/ o- K9 y$ r5 W$ g, W了解之後,才覺得似乎概念和實作有了那麼一點連接。也由於這樣的基
7 }5 \ O( U7 ?; V0 U' D礎,有時候有助於資料不足的狀況下,還能夠經由看程式碼來補足資料$ b6 e" J$ S' @; R B+ N& X
不足的部份,甚至可以用來印證自己的想法。 |
|