經(jīng)典書籍
待到山花爛漫時,還是那些經(jīng)典在微笑。
有關(guān)內(nèi)核的書籍可以用汗牛充棟來形容,不過只有一些經(jīng)典的神作經(jīng)住了考驗。首先是5本久經(jīng)考驗的神作(個人概括為“2+1+2”,第一個2是指2本全面
講 解內(nèi)核的書,中間的1指1本講解驅(qū)動開發(fā)的書,后面的2則指2本有關(guān)內(nèi)核具體子系統(tǒng)的書,你是否想到了某某廣告里三個人突然站起單臂齊舉高呼“1比1
比 1”的場景?)。
《Linux內(nèi)核設(shè)計與實現(xiàn)》
簡稱LKD,從入門開始,介紹了諸如進(jìn)程管理、系統(tǒng)調(diào)用、中斷和中斷處理程序、內(nèi)核同步、時
間管理、內(nèi)存管理、地址空間、調(diào)試技術(shù)等方面,內(nèi)容比較淺顯易懂,個人認(rèn)為是內(nèi)核新人首先必
讀的書籍。新人得有此書,足矣!
《深入理解Linux內(nèi)核》
簡稱ULK,相比于LKD的內(nèi)容不夠深入、覆蓋面不廣,ULK要深入全面得多。
前面這兩本,一本提綱挈領(lǐng),一本全面深入。
《Linux設(shè)備驅(qū)動程序》
簡稱LDD,驅(qū)動開發(fā)者都要人手一本了。
《深入理解Linux虛擬內(nèi)存管理》
簡稱LVMM,是一本介紹Linux虛擬內(nèi)存管理機(jī)制的書。如果你希望深入的研究Linux的內(nèi)存管理
子系統(tǒng),仔細(xì)的研讀這本書無疑是最好的選擇。
《深入理解LINUX網(wǎng)絡(luò)內(nèi)幕》
一本講解網(wǎng)絡(luò)子系統(tǒng)實現(xiàn)的書,通過這本書,我們可以了解到Linux內(nèi)核是如何實現(xiàn)復(fù)雜的網(wǎng)絡(luò)功能的。(忘了聲明下,我這列出來的書名是中文的,但是并不代表我建議大家去看他們的中文版,其中有的翻譯的實在太??了,呵呵)
這5本書各有側(cè)重,正如下面的圖所展示的那樣,恰好代表了個人一直主張的內(nèi)核學(xué)習(xí)方法:首先通過LKD或ULK了解內(nèi)核的設(shè)計實現(xiàn)特點,對內(nèi)核有個整體
全局的認(rèn)識和理解,然后可分為兩個岔路,如果從事驅(qū)動開發(fā),則鉆研LDD,如果希望對內(nèi)核不是泛泛而談而是有更深入的理解,則可以選擇一個自己感興趣的子
系統(tǒng),仔細(xì)分析它的代碼,不懂的地方就通過社區(qū)、郵件列表或者直接發(fā)Email給maintainer請教等途徑弄懂,切勿得過且過,這樣分析下來,對同
步、中斷等等內(nèi)核的很多機(jī)制也同樣會非常了解,俗話說的一通則百通就是這個道理。當(dāng)然,如果你選擇研究的是內(nèi)存管理或者網(wǎng)絡(luò),則可以有上面的兩本書可以學(xué)習(xí),如果是其他子系統(tǒng)可能就沒有這么好的運氣了。
內(nèi)核社區(qū)
最近幾年,社區(qū)網(wǎng)站非常的熱火,不過此社區(qū)非彼社區(qū)。
Linux最大的一個優(yōu)勢就是它有一個緊密團(tuán)結(jié)了眾多使用者和開發(fā)者的社區(qū),它的目標(biāo)就是提供盡善盡美的內(nèi)核。內(nèi)核社區(qū)的中心是內(nèi)核郵件列表(Linux Kernel Mailing List,LKML),我們可以在http://vger.kernel.org/vger-lists.html#linux-kernel上面看到訂閱這個郵件列表的細(xì)節(jié)。
內(nèi)核郵件列表的流量很大,每天都有幾百條消息,這里是大牛們的戰(zhàn)場,小牛們的天堂,任何一個內(nèi)核開發(fā)者都可以從中受益非淺。除了LKML,大多數(shù)子系統(tǒng)也有自己獨立的郵件列表來協(xié)調(diào)各自的開發(fā)工作,比如USB子系統(tǒng)的郵件列表可以在http://www.linux-usb.org/mailing.html上面訂閱。
其他網(wǎng)絡(luò)資源
除了內(nèi)核郵件列表,還有很多其他的論壇或網(wǎng)站值得我們經(jīng)常關(guān)注。我們要知道,網(wǎng)絡(luò)上不僅有獸獸和鳳姐,也不僅有犀利哥和韓局長。http://www.kernel.org/ 可以通過這個網(wǎng)站上下載內(nèi)核的源代碼和補(bǔ)丁、跟蹤內(nèi)核bug等。http://kerneltrap.org Linux和BSD內(nèi)核的技術(shù)新聞。如果沒時間跟蹤LKML,那么經(jīng)常瀏覽kerneltrap是個好主意。http://lwn.net/ Linux weekly news,創(chuàng)建于1997年底的一個Linux新聞?wù)军c。http://zh-kernel.org/mailman/listinfo/linux-kernel 這是內(nèi)核開發(fā)的中文郵件列表,里面活躍著很多內(nèi)核開發(fā)領(lǐng)域的華人,比如Herbert Xu,、Mingming Cao、Bryan Wu等。