學(xué)完C語言之后,最終是要應(yīng)用到某個領(lǐng)域的,比如后端開發(fā),應(yīng)用開發(fā)或者Linux內(nèi)核開發(fā)等。本文將介紹一下Linux內(nèi)核相關(guān)的內(nèi)容,Linux內(nèi)核開發(fā)是相對比較難的領(lǐng)域,主要是門檻相對較高。雖然門檻較高,但有它的好處,一方面是難度大,因此競爭力就高,另外一方面本操作系統(tǒng)內(nèi)核的知識半衰期長,不需要頻繁的學(xué)習(xí)新東西。因此,本號以為進行Linux內(nèi)核開發(fā)是IT領(lǐng)域一個相對還可以的選擇。但肯定不是最好的,Linux內(nèi)核開發(fā)也有其缺點。
學(xué)習(xí)Linux內(nèi)核開發(fā)應(yīng)該本著由具體到抽象,有使用到深入理解的過程。我們在學(xué)習(xí)的過程中可以先學(xué)會基本的使用,然后在深入理解這個特性的底層實現(xiàn)原理。通過這種方式逐步提升能力。
Linux內(nèi)核入門必讀
這里推薦幾本適合入門的Linux經(jīng)典圖書。首先必須推薦的是《Linux設(shè)備驅(qū)動程序》,目前最新的是第3版。這本書非常適合入門使用,它非常詳細的介紹了內(nèi)核接口及基本功能的使用,并且最大的特點是通過實例講解,讓你親身感受如何進行內(nèi)核開發(fā)。
另外一本值得推薦的是《Linux內(nèi)核設(shè)計與實現(xiàn)》,雖然名稱上來看好像是講解具體實現(xiàn)的圖書,但實際上有很大的篇幅講解如何使用內(nèi)核中的機制。比如多線程、自旋鎖、信號量和后半部等等內(nèi)容。書本身不想其它經(jīng)典那樣大部頭,這本書是為數(shù)不多的比較薄,但內(nèi)容有很詳實的經(jīng)典。
Linux內(nèi)核深入理解
有了上面的基礎(chǔ),再配合一些實際的操練,相信對Linux內(nèi)核編程會有不錯的掌握。但Linux內(nèi)核開發(fā)最大特點是內(nèi)核各個模塊間有一定的耦合,要寫真正掌握Linux內(nèi)核開發(fā),必須熟悉內(nèi)核中各個模塊的實現(xiàn)。比如Linux內(nèi)核中的文件系統(tǒng),它與內(nèi)存管理、頁緩存和塊設(shè)備等都有比較密切的聯(lián)系,因此,如果想對某個領(lǐng)域精通,其它領(lǐng)域也有熟悉才行。下面本文介紹基本對Linux內(nèi)核整體介紹比較詳細的圖書。
這本《深入Linux內(nèi)核架構(gòu)》是必須要讀的經(jīng)典中的經(jīng)典,它深入淺出的介紹了Linux內(nèi)核的各個子系統(tǒng),從線程調(diào)度到內(nèi)存管理,從磁盤到文件系統(tǒng),基本上面面俱到。
下面這邊也不同多說了,介紹的內(nèi)容與上一本基本類似,可以作為上一本交叉參考。相信做內(nèi)核開發(fā)的人沒有不知道這本書的。
Linux內(nèi)核完全精通
雖然上面的經(jīng)典對Linux內(nèi)核的方方面面進行了介紹,介紹的比較全面,但深度和細節(jié)相對欠缺。因為現(xiàn)在Linux內(nèi)核有千萬行代碼,深入細節(jié)閱讀根本不可能。如果想了解Linux內(nèi)核和操作系統(tǒng)的最為原始的細節(jié),一定要讀一下下面這幾本書。
趙炯老師的《Linux內(nèi)核完全剖析》是非常不錯的一本這方面的書,它以Linux 0.12版本為底本進行介紹,這個版本的Linux內(nèi)核代碼量不足萬行,因此這本書幾乎介紹了代碼的每一行。雖然當(dāng)前版本已經(jīng)發(fā)生了翻天覆地的變化,但操作系統(tǒng)的本質(zhì)并沒有變化。熟悉這個版本的代碼之后,再閱讀最新版本的代碼就會變得輕車熟路。
等你熟悉Linux操作系統(tǒng)的各種細節(jié)之后,可能有從頭開發(fā)一個操作系統(tǒng)的沖動,這本書正好可以滿足你的愿望。本書從開發(fā)環(huán)境開始,并以一個只有幾百行的代碼最為原型,帶你逐步深入操作系統(tǒng)的開發(fā)。
下面這邊也是一本類似的圖書,從原理到實踐,步步深入。
相信大家如果能夠認真的閱讀本號推薦的這些圖書,并結(jié)合實踐,一定能夠在Linux內(nèi)核領(lǐng)域有所建樹。如果覺得有用請幫忙轉(zhuǎn)發(fā)一下,讓更多的人獲得幫助。

如下是電子書的下載地址:
點擊這里轉(zhuǎn)到下載路徑