Linux內(nèi)核學(xué)習(xí)全書
關(guān)于內(nèi)核學(xué)習(xí)我建議不要上來就讀內(nèi)核而是先了解內(nèi)核的構(gòu)成和特性,然后通過思考發(fā)現(xiàn)疑問這時(shí)再去讀內(nèi)核源碼。即先了解概貌在讀局部細(xì)節(jié)。而且內(nèi)核分成好多部分,不要只是按照順序去讀,應(yīng)該針對某一部分比如內(nèi)存管理或進(jìn)程管理橫向讀幾本書,這樣可以理解很全面。
Linux Kernel 全書
1. Linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn) Edition 2? ?
2. Linux設(shè)備驅(qū)動 Edition 3? ?
3. Linux內(nèi)核源代碼情景分析? ?
4. 深入理解Linux內(nèi)核(第三版)
1.《Linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》
本書重在原理。適合入門的最佳圖書。作者是為2.6內(nèi)核加入了搶占的人,對調(diào)度部分非常精通,而調(diào)度是整個(gè)系統(tǒng)的核心,因此本書是很權(quán)威的。
?
2.《深入理解Linux內(nèi)核》
此書比上一本多了些細(xì)節(jié)。是Linux內(nèi)核黑客在推薦圖書時(shí)的首選。寫的比較簡單易懂,適合剛剛接觸LINUX內(nèi)核的。
此書圖表很多,形象地給出了關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的定義,與《Linux內(nèi)核源代碼情景分析》相比,本書內(nèi)容緊湊,不會一個(gè)問題講解動輒上百頁,有提綱挈領(lǐng)的功用,但是深度上要遜于《Linux內(nèi)核源代碼情景分析》。?
?
3.《LINUX設(shè)備驅(qū)動程序(第3版)》
?
這書強(qiáng)調(diào)動手實(shí)踐!但它是講解“設(shè)備驅(qū)動”的,不是最核心的東西,而且有些東西沒硬件的話無法實(shí)踐,可能更適合驅(qū)動開發(fā)的程序員吧
?其中關(guān)于同步與互斥、內(nèi)存分配的部分,感覺很不錯(cuò)。?
?
4.《Linux內(nèi)核源代碼情景分析》
書很好,很經(jīng)典,是浙大教授毛德操寫的,可惜成書于2001年之后一直沒有更新。分上下冊。
很多是基于2.4內(nèi)核講解的需要注意。如果學(xué)習(xí)的話也建議學(xué)習(xí)2.6,2.6跟2.4比發(fā)生了很多顯著改善,應(yīng)該學(xué)習(xí)的。
全書內(nèi)容博大精深,不是非常好懂,對細(xì)節(jié)問題描述比較清晰。但是感覺對內(nèi)核的整體感覺不夠強(qiáng)。另外缺少網(wǎng)絡(luò)部分的分析。覺得不是很適合初學(xué)者。
上冊講解內(nèi)存管理、中斷、異常與系統(tǒng)調(diào)用、進(jìn)程控制、文件系統(tǒng)與傳統(tǒng)Unix?IPC;下冊講解socket、設(shè)備驅(qū)動、SMP和引導(dǎo)。
本書基于Intel?IA32體系,由于厚度大,很多體系上的知識都捎帶講解了,所以如果你想深入了解內(nèi)核的工作機(jī)制而又不非常熟悉Intel?CPU的體系構(gòu)造,本書是最合適的。
?
這本書可以結(jié)合陳莉君老師的《深入分析Linux內(nèi)核源代碼》,這本書也是2.4內(nèi)核的,網(wǎng)上可以下載
作者: 陳莉君
出版社: 人民郵電出版社
出版年: 2002-8
頁數(shù): 531
ISBN: 9787115105257
說明:陳老師是上述《深入理解Linux內(nèi)核》和《Linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》的作者,曾通讀過linux的所有代碼。
?
?
==================擴(kuò)充閱讀==================
5.《Linux內(nèi)核源代碼分析》
作者: (美)Scott Maxwell
譯者: 馮銳/邢飛/等
出版社: 機(jī)械工業(yè)出版社
出版年: 2000-06
頁數(shù): 633
ISBN: 9787111080923
點(diǎn)評:面對中高級,這本書很好,對了解操作系統(tǒng)是一本不可多得的好書。
6. 《LINUX KERNEL技術(shù)手冊》
參考手冊,很薄,值得一看。
?
7.《深入Linux內(nèi)核架構(gòu)》
這本書針對的是比較新的內(nèi)核版本2.6.24;內(nèi)容比較全面,深入淺出。
如果沒有對Linux內(nèi)核的初步結(jié)構(gòu)的認(rèn)識,那么會看得比較吃力。 建議可以一邊去翻在國內(nèi)已經(jīng)聞名已經(jīng)久的四本Linux內(nèi)核著作(《Linux內(nèi)核原代碼情景分析》、《Linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》、《深入理解Linux內(nèi)核》、《Linux設(shè)備驅(qū)動程序》),再一邊看這本書,把這本書當(dāng)作一個(gè)補(bǔ)充或者當(dāng)作一個(gè)內(nèi)核框架圖譜說明書來閱讀,收效會更好。
?
8.《Linux內(nèi)核完全注釋》
此書出自同濟(jì)一個(gè)博士--趙炯。
本書作者趙炯談《Linux內(nèi)核完全注釋》和《Linux內(nèi)核源代碼情景分析》..
主要描述和注釋了Linux?0.11內(nèi)核全部源代碼。對于初學(xué)Linux內(nèi)核操作系統(tǒng)的人來講,該書能夠引領(lǐng)讀者快速入門,并且能全面了解一個(gè)簡單操作系統(tǒng)的工作機(jī)理。對于進(jìn)一步學(xué)習(xí)現(xiàn)在的Linux內(nèi)核具有非常大的指導(dǎo)作用。對于學(xué)習(xí)嵌入式應(yīng)用的技術(shù)人員來講,通過《完全注釋》一書的學(xué)習(xí)也能迅速融入嵌入式應(yīng)用領(lǐng)域。同樣,該書也能作為閱讀現(xiàn)代Linux內(nèi)核源代碼的一本參考手冊使用。由于該書是對代碼逐條進(jìn)行注釋的,因此也能作為深入學(xué)習(xí)C語言編程的參考書。另外,該書不僅配備有完整的Linux?0.11系統(tǒng)試驗(yàn)環(huán)境,而且本人還在一年前就在網(wǎng)上專門建立了一個(gè)針對該書的網(wǎng)站“www.oldlinux.org”,專門開辟了一個(gè)討論該書所涉及的Linux內(nèi)核實(shí)現(xiàn)的論壇。目前該網(wǎng)站的內(nèi)容已經(jīng)被權(quán)威Linux內(nèi)核發(fā)布網(wǎng)站www.kernel.org全部作了鏡像(mirrors.kernel.org)。
http://oldlinux.org/index_cn.html
網(wǎng)站宗旨:
收集Linux從醞釀到開發(fā)初始版本有關(guān)的所有資料和信息(1991-1995);?
重新建立起最古老的Linux可運(yùn)行系統(tǒng),這些系統(tǒng)在其它地方很難再找到了;?
為初學(xué)者提供一個(gè)學(xué)習(xí)Linux內(nèi)核基本工作原理的最簡單方法。
?
本書新版:《Linux內(nèi)核完全剖析--基于0.12內(nèi)核》
2009年出的,很厚。
===============自制操作系統(tǒng)系列==================
9.《Orange S:一個(gè)操作系統(tǒng)的實(shí)現(xiàn)》
作者:于淵
出版社:?電子工業(yè)出版社; 第1版 (2009年6月1日)
本書第一版2005年出版,這是第二版。
從只有二十行的引導(dǎo)扇區(qū)代碼出發(fā),一步一步地向讀者呈現(xiàn)一個(gè)操作系統(tǒng)框架的完成過程。
?
10.《30天自制操作系統(tǒng)》
作者: (日)川合秀實(shí)??? [作譯者介紹]
譯者: 周自恒 李黎明 曾祥江 張文旭
叢書名: 圖靈程序設(shè)計(jì)叢書
出版社:人民郵電出版社
ISBN:9787115287960
點(diǎn)評:小日本寫的,不過確實(shí)寫的內(nèi)容很好,講怎么自己一步步寫操作系統(tǒng),從匯編到C都有涉及。
_________________________________________________________________________
unix是Linux的基礎(chǔ),學(xué)習(xí)linux也要看unix
Unix的絕版好書
UNIX操作系統(tǒng)設(shè)計(jì)
??? 原書名:The Design of the UNIX Operating System
??? 作者: (美)Maurice J.Bach? ?
??? 譯者: 陳葆鈺 王旭 柳純錄 馮雪山
??? 叢書名: 計(jì)算機(jī)科學(xué)叢書
??? 出版社:機(jī)械工業(yè)出版社
??? ISBN:9787111373971
點(diǎn)評:當(dāng)年linux之父參考過,非常經(jīng)典,無需多言
----------------------------------------------------------
UNIX編程環(huán)境
??? 原書名:The UNIX Programming Environment
??? 作者: Brianw.Kernighan? ?
??? 譯者: 陳向群
??? 叢書名: 計(jì)算機(jī)科學(xué)叢書
??? 出版社:機(jī)械工業(yè)出版社?
點(diǎn)評:非常好的入門書.書中絕無生僻的角落,對于入門來說沒有什么難以理解的。但是字里行間浸透了作者設(shè)計(jì)unix的指導(dǎo)思想,這一點(diǎn)是別的入門書無法企及的。
書中提及的點(diǎn)滴都是實(shí)用的方法和準(zhǔn)則,而這些充斥著在unix上一整天的工作,即使是有經(jīng)驗(yàn)的用戶學(xué)過此書后工作效率也會提升。
UNIX高級教程系統(tǒng)技術(shù)內(nèi)幕
作者: (美)Uresh Vahalia?
譯者: 聊鴻斌/等?
出版社:?清華大學(xué)出版社
出版年:?1999-05
點(diǎn)評:老書,有電子版。linux/unix的頂級寶貝!
===============================
?
本人寫的另外系列,配合一起看效果更好,因?yàn)镃語言是語言,還需要到實(shí)際環(huán)境Linux中去用,而Linux環(huán)境下網(wǎng)絡(luò)編程自然需要TCP/IP的知識:
C語言經(jīng)典著作導(dǎo)讀 Linux網(wǎng)絡(luò)編程必看書籍推薦?(TCP/IP與Unix環(huán)境Unix網(wǎng)絡(luò))