學習 linux kernel的建議

來源:互聯網
上載者:User

是要有幾個階段的。 開始看ulk,
ulk最好的地方就是他所倡導的學習方法特別好。當你想學習某方面時,先看標頭檔,在沒把每個資料結構中的每個資料元素弄清楚之前不要看實現代碼。
讀完標頭檔,意味著其中的組織關係跟別的地方的聯絡就清楚了,這時候你去看實現的代碼你會發現他已經做的正是你所想的。
跟著ulk把這些基本的概念搞懂,至少當你看完某一章,下次在別的地方看到這個概念的時候你要知道是什麼。 相比較而言另歪的幾本書在這方面有所欠缺
第二遍就可以看代碼了。 在這很多人可能說拿來一兩本書狂翻了。 這樣是不對地。 要直接看代碼。
有了代碼就有了一切,你所要做的就是弄懂代碼。當然中間可能遇到不會不懂的地方,這時候才去查書。在linux方面,書只能是工具書,
當你需要的時候再去看。不想c++,java,有自己的思想在裡面,換句話說是比較簡單的,我們可以從書本上直接讀到。
linux的開發設計思想只能從代碼裡得到。 因為很深很難,很少有書本能夠從整體上領略。
事實上現在的linux除了linus等區區幾個核心開發人員能夠從整體上把握得了其他人都只是對某個方面比較熟悉而已。
 
你所說的這幾本書ulk的大約2/3的核心章節我對著代碼讀過3-4遍了。正在快速的瀏覽linux核心分析。情景分析我記得是2.4得把?
記不清了因為沒仔細看過。linux核心設計與實現是跟ulk一起對著看的。
還有一本深入理解虛擬記憶體管理。因為vm是最難的所以當時單獨買了本書看。  
看代碼的目的首先是要弄明白某個方面的實現。其次最關鍵的是要把各個地方的內容聯絡起來。 你可以查一下現在確實還沒有一本書這方面能夠講得很明白。
 所以我們要多讀代碼,自己去理解。 學linux是個循序漸進的過程,千萬不要急。 兩年,三年經驗僅僅算是入門。。。。在這要說一下:
兩年之前根本別妄想這寫代碼。
當你對基本概念都瞭解了,對常見的實現啊什麼的也都知道得差不多了,通過做些項目瞭解更深層的東西,比如如何用cache,lock,還有嘗試著去理解
recursion.  這些也就是嘗試著去理解設計了。
 
總而言之學linux是個艱苦的過程,沒有強烈的願望信心很容易失敗的。國內真正懂linux核心的人沒多少,大多數大多數所謂的資深工程師只能開發寫小
的device driver,更進一步的最多也就只能做移植. 這也是為什麼linux世界裡還看不到中國人做貢獻。  不像c++,
java,學上兩年三年就可以跟著團隊做東西了,需要做的就是熟悉理解這門語言。
kernel完全不一樣。需要你對整個的電腦系統都要有很全面很深入的瞭解。算一下從大約大二開始的課程:
組成原理,資料結構這是兩門大學裡最關鍵的課程也是學kernel的基礎, 離散數學裡面的樹圖這是學fs,device
driver需要的知識。彙編啊介面啊到處都能用到。作業系統肯定密切相關。編譯原理在調試的時候真的能用到很多。電腦網路的osi分層模型的設計思想
在fs裡到處都是。 所以電腦的基礎的課程都需要,都要熟悉理解。
我不知道你現在大幾,但如果你希望真正的做kernel的話還是多學學這些基礎知識吧。  他門會讓你受益終身的。
 
如果只是現在不是太確定要做這方面的東西,只是想學學linux的話,直接去看apue,把裡面的知識都動手寫代碼實踐一邊就差不多了。
 真的沒必要學kernel.  一年兩年的時候都僅僅是入門。  我現在跟motorola美國做東西。
90%以上的人都有10+的linux核心工作經驗,從他們身上我最直接的感觸就是他們從來都是站在一個大的核心背景上去思考某方面特定的實現。
 跟我們從底往上去嘗試猜測著做東西的思維模式是完全不同的。  這才是真正的linux開發。這些都需要時間。
--

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.