Linux kernel 內核學習路線

看了下各位大神的推薦路線,總結以下:linux

 

0. 跟着項目走;編程

1. 學會用、熟練用linux系統;api

2. Linux Kernel Development.網絡

3. Understanding the Linux Kernel.架構

4. Linux Device Driver.學習

5. 找一個感興趣的子系統研究,認真研究代碼,這裏的建議是能夠看提交的每一個change。好比網絡子系統:Understanding linux network internels.操作系統

「嚴謹而細緻的仔細分析它的代碼,不懂的地方就經過社區、郵件列表或者直接發Email給maintainer請教等途徑弄懂,切勿得過且過」。.net

「經過Kconfig與Makefile定位目標代碼」。設計

6. 融入社區作貢獻……unix

堅持!堅持!!堅持!!!

參考:http://blog.csdn.net/fudan_abc/article/details/5403021

 

如下轉自:http://bbs.csdn.net/topics/390759060

1. 瞭解操做系統基本概念。若是不會,能夠學習《操做系統:設計與實現》Andrew S.Tanenbaum 寫的那本。以MINIX爲例子講解操做系統的概念。很是推薦。 2. 有了操做系統的基本概念之後,能夠了解Linux的機制了。推薦《Linux內核設計與實現》Robert Love 寫的。這本書從概念上講解了Linux有什麼,他們是怎麼運行的。這本書要反覆認真看透。 3. 有了Linux內核的瞭解,還須要具體研究Linux內核源碼。最經典的就是《深刻理解Linux內核》Daniel P. Bovet 寫的。學 習這本書的時候,要對着內核代碼看着學。這本書學起來至關費力了,那麼多多代碼要研究。不過這本書若是學明白了,恭喜你,Linux內核你已經很熟悉了。 4. 若是要開發設備驅動,能夠學習《linux設備驅動程序》O'Reilly出版社的。這本做爲驅動的入門是很好的資料。另外還有一本《精通 Linux 驅動程序開發》也是不錯的教材,能夠參考着看。學習驅動,免不了要學習一些硬件的協議和資料,研究哪一個就找到相應的硬件文檔,把硬件的工做原 理搞明白。這些就不細說了。 5. 網絡部分,學些Linux網絡部分就學習《深刻理解LINUX網絡技術內幕》。這本書把Linux的網絡部分講的很是清晰透徹。可是一般不作這方面的工做研究,也不用研究這麼深,畢竟如今國內相關職位較少。 6. 如今Linux相關的工做,多集中在一些嵌入式開發領域,arm,mips等,要學習如下這些體系架構的的資料,瞭解CPU的設計和工做方式。 ARM就看對應的芯片手冊,講的很細緻。MIPS就看 《see mips run》,有一二兩版,兩版內容有些差別,推薦都看。 7. 補充一點經驗。不要認爲Linux很龐大,很複雜,就覺的很難學。任何東西認真學下來都是能學會的,看你的恆心和毅力了。另外,不要走彎路,不要看 市面上講什麼Linux0.11的那些書,直接學你要學的東西。就像學C語言看什麼譚浩強同樣,彎路走了,力氣沒少花,還嚴重影響學習效果。 你問的內核,多給你說幾句應用編程,有時候常常會須要的: 1. 學習Linux應用編程,建議看《unix環境高級編程》,把裏面的例子都作一遍,會對整個Linux編程有系統都認識。 2. 針對Linux,有本 《Linux系統編程》,學完上一本,這本很快看一遍就懂了。主要是針對Linux具體懂一些內容,講的挺全了,很實用。 3. Linux網絡編程,系統的學習一下《unix網絡編程.卷1,套接字聯網api》,基本上網絡應用相關的程序就都沒問題了。 這些內容,你分幾年時間,分步計劃學習,就會成爲Linux高手了。

相關文章
相關標籤/搜索