2010年6月30日 星期三

Study Embedded Linux要從哪裡開始

指的當然不是怎麼用Linux,而是怎麼去快速了解Linux,抓到要點,在出現系統問題時,有方向去解決,通常碰到新領域(Ex. DSP),沒有人做經驗傳承,我都會這樣進行

一開始,先建立整體觀念,而不是一開始就找細節,就像你要去台灣,不是從北到南,每個鄉鎮都去走一遍,而是先抓大流程,大方向,關鍵點,以後有需要再從關鍵點去拓展細節,而大流程絕對不只一條,要找出自己認定的Key Path,接下來怎麼進行舊是個人的風格了

至於Linux, 他有一定的架構,每一層都有豐富的資源,可以從不同的應用找出很多大流程出來,但我覺得,今日Linux之所以占有一定的應用,主要還是他的網路功能,因此我認為要要了解Linux,挑網路的運作流程會是比較經典,而且,每一家port好Linux的SOC,幾乎都有網路功能,可以做不同的比較,看每一家SOC拿到Linux Kernel,是怎麼port到自家的platform,可以看到各式各樣的程式技巧,系統設計,當然Networking的Domain Knowledge也同時必須齊頭並進,如此理論與實做同時看得到摸得到,實用性也很高

建議參考書是Oreilly的 Understanding Linux Network Internals, Kernal Space還是應該先多花一些時間扎根,特別是流程機制的部分,當你從User Space下一道Command,要能推得出Kernel的運作,如果沒有ARM的板子,可以用QEMU先檔一下