關於核心學習我建議不要上來就讀核心而是先了解核心的構成和特性,然後透過思考發現疑問這時再去讀核心原始碼。即先了解概貌在讀局部細節。
而且核心分成核心分成部分,不要只是按照順序去讀,應該針對某一部分例如記憶體管理或行程管理好多橫向讀幾本書,這樣可以理解很全面。
Linux Kernel 四庫全書 (建議學習:linux維)
1.《Linux核心設計與實作》
本書重在原理。適合入門的最佳書籍。作者是為2.6內核加入了搶佔的人,對調度部分非常精通,而調度是整個系統的核心,因此本書是很權威的。
2.《深入理解Linux核心》
此書比上一本多了些細節。是Linux內核駭客在推薦圖書時的首選。寫的比較簡單易懂,適合剛接觸LINUX核心的。
這本書圖表很多,形像地給了關鍵資料結構的定義,與《Linux核心原始碼情境分析》相比,本書內容緊湊,不會一個問題講解動輒上百頁,有提綱挈領的功用,但是深度上要遜於《Linux核心原始碼情境分析》。
3.《LINUX裝置驅動程式(第3版)》
這本書強調動手實作!但它是講解「設備驅動」的,不是最核心的東西,而且有些東西沒硬體的話無法實踐,可能更適合驅動開發的程式設計師吧,其中關於同步與互斥、記憶體分配的部分,感覺很不錯。
4.《Linux核心原始碼情境分析》
書很好,很經典,是浙大教授毛德操寫的,可惜成書於2001年後一直沒有更新。分上下冊。
很多是基於2.4內核講解的需要注意。如果學習的話也建議學習2.6,2.6跟2.4比發生了很多顯著改善,應該學習的。
全書內容博大精深,不是非常好懂,對細節問題描述比較清晰。但是感覺對內核的整體感覺不夠強。另外缺少網路部分的分析。覺得不是很適合初學者。
上冊講解記憶體管理、中斷、異常與系統呼叫、進程控制、檔案系統與傳統Unix IPC;下冊講解socket、裝置驅動、SMP和引導。
本書是基於Intel IA32體系,由於厚度大,許多體系上的知識都捎帶講解了,所以如果你想深入了解核心的工作機製而又不非常熟悉Intel CPU的體系構造,本書是最合適的。
以上是怎麼學linux內核的詳細內容。更多資訊請關注PHP中文網其他相關文章!