關(guān)于內(nèi)核學(xué)習(xí)我建議不要上來(lái)就讀內(nèi)核而是先了解內(nèi)核的構(gòu)成和特性,然后通過(guò)思考發(fā)現(xiàn)疑問(wèn)這時(shí)再去讀內(nèi)核源碼。即先了解概貌在讀局部細(xì)節(jié)。
而且內(nèi)核分成好多部分,不要只是按照順序去讀,應(yīng)該針對(duì)某一部分比如內(nèi)存管理或進(jìn)程管理橫向讀幾本書(shū),這樣可以理解很全面。
linux Kernel 四庫(kù)全書(shū)? ? ? ? ?(推薦學(xué)習(xí):linux運(yùn)維)
1.《Linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》
本書(shū)重在原理。適合入門(mén)的最佳圖書(shū)。作者是為2.6內(nèi)核加入了搶占的人,對(duì)調(diào)度部分非常精通,而調(diào)度是整個(gè)系統(tǒng)的核心,因此本書(shū)是很權(quán)威的。
2.《深入理解Linux內(nèi)核》
此書(shū)比上一本多了些細(xì)節(jié)。是Linux內(nèi)核黑客在推薦圖書(shū)時(shí)的首選。寫(xiě)的比較簡(jiǎn)單易懂,適合剛剛接觸LINUX內(nèi)核的。
此書(shū)圖表很多,形象地給出了關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的定義,與《Linux內(nèi)核源代碼情景分析》相比,本書(shū)內(nèi)容緊湊,不會(huì)一個(gè)問(wèn)題講解動(dòng)輒上百頁(yè),有提綱挈領(lǐng)的功用,但是深度上要遜于《Linux內(nèi)核源代碼情景分析》。?
3.《LINUX設(shè)備驅(qū)動(dòng)程序(第3版)》
這書(shū)強(qiáng)調(diào)動(dòng)手實(shí)踐!但它是講解“設(shè)備驅(qū)動(dòng)”的,不是最核心的東西,而且有些東西沒(méi)硬件的話無(wú)法實(shí)踐,可能更適合驅(qū)動(dòng)開(kāi)發(fā)的程序員吧,其中關(guān)于同步與互斥、內(nèi)存分配的部分,感覺(jué)很不錯(cuò)。
4.《Linux內(nèi)核源代碼情景分析》
書(shū)很好,很經(jīng)典,是浙大教授毛德操寫(xiě)的,可惜成書(shū)于2001年之后一直沒(méi)有更新。分上下冊(cè)。
很多是基于2.4內(nèi)核講解的需要注意。如果學(xué)習(xí)的話也建議學(xué)習(xí)2.6,2.6跟2.4比發(fā)生了很多顯著改善,應(yīng)該學(xué)習(xí)的。
全書(shū)內(nèi)容博大精深,不是非常好懂,對(duì)細(xì)節(jié)問(wèn)題描述比較清晰。但是感覺(jué)對(duì)內(nèi)核的整體感覺(jué)不夠強(qiáng)。另外缺少網(wǎng)絡(luò)部分的分析。覺(jué)得不是很適合初學(xué)者。
上冊(cè)講解內(nèi)存管理、中斷、異常與系統(tǒng)調(diào)用、進(jìn)程控制、文件系統(tǒng)與傳統(tǒng)unix?IPC;下冊(cè)講解socket、設(shè)備驅(qū)動(dòng)、SMP和引導(dǎo)。
本書(shū)基于Intel?IA32體系,由于厚度大,很多體系上的知識(shí)都捎帶講解了,所以如果你想深入了解內(nèi)核的工作機(jī)制而又不非常熟悉Intel?CPU的體系構(gòu)造,本書(shū)是最合適的。