① 麻煩大家推薦一本幫你看懂linux源代碼的書
《linux內核情景分析》還不錯
② 有沒有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比發生了很多顯著改善,應該學習的。
全書內容博大精深,不是非常好懂,對細節問題描述比較清晰。但是感覺對內核的整體感覺不夠強。另外缺少網路部分的分析。覺得不是很適合初學者。
5.《Linux內核源代碼分析》
點評:面對中高級,這本書很好,對了解操作系統是一本不可多得的好書。
6. 《LINUXKERNEL技術手冊》
參考手冊,很薄,值得一看。
7.《深入Linux內核架構》
這本書針對的是比較新的內核版本2.6.24;內容比較全面,深入淺出。
如果沒有對Linux內核的初步結構的認識,那麼會看得比較吃力。建議可以一邊去翻在國內已經聞名已經久的四本Linux內核著作(《Linux內核原代碼情景分析》、《Linux內核設計與實現》、《深入理解Linux內核》、《Linux設備驅動程序》),再一邊看這本書,把這本書當作一個補充或者當作一個內核框架圖譜說明書來閱讀,收效會更好。
8.《Linux內核完全注釋》
主要描述和注釋了Linux0.11內核全部源代碼。對於初學Linux內核操作系統的人來講,該書能夠引領讀者快速入門,並且能全面了解一個簡單操作系統的工作機理。對於進一步學習現在的Linux內核具有非常大的指導作用。對於學習嵌入式應用的技術人員來講,通過《完全注釋》一書的學習也能迅速融入嵌入式應用領域。
9.《Orange S:一個操作系統的實現》
從只有二十行的引導扇區代碼出發,一步一步地向讀者呈現一個操作系統框架的完成過程。
③ 有沒有哪本書具體講linux內核啟動過程的,詳細點的(最好具體到實際代碼),最好內核針對於2.6以後的
我個人感覺毛德操先生的書linux內核情景分析,分析的很透徹的,對整個Linux內核的講解很不錯.具體到啟動過程,這個啟動過程很泛的,你只需要知道整體的啟動過程,其他的細節,還得看內核源碼講解,所以,推薦你看點博客了解下啟動大體過程,具體到每個細節,看linux內核情景分析吧.
④ Linux內核應該怎麼去學習
1 學習一些操作系統的理論知識,一些概念。比如:進程,內存管理,文件系統等等。關於這一方面的書籍太多了,自己找一本就行了
2 學習x86匯編,雖然linux用的是AT&T匯編,但二者只是格式不同而已。而且學習x86匯編有助於了解x86系統結構。書籍推薦王爽的《匯編語言》 ,我學的時候用的不是這個,後面看到這本書,才覺得自己做了「苦功了」。學完大部分匯編指令時,找些匯編程序讀讀,熟悉這些指令的用法。不需要有寫匯編程序的能力,能讀就行了,當然會寫更好
3 趙炯的《Linux內核0.11完全注釋》。這個linux內核版本低,作者也講得很詳細。不過關於x86體系的那一部分,作者講得很繁瑣,這一部分一定要大體看懂,那後面章節的內容就沒有多大的問題了。我先把書通看了一遍,用了1個月的時間。後來,再返回來一個一個研究,用了2個月。
之所以看這本書,是讓自己對內核有個實質的感受,不僅僅只是理論上的東西。
4 毛德操的《linux內核情景分析》。linux內核版本2.4.0,這本書很厚,上下兩冊。我通讀一遍,用了2個月時間。後來,再返回來一個一個研究,現在已用了2個月,正在研究中。。。。就我個人覺得,linux內核最難的是內存管理,這2個月我就只大體搞清內存頁面的周轉,但搞清了這個,就會對內核的整體結構有個大致的了解,因為你已經清楚了用戶進程和內核的其它部分是怎樣使用內存頁面的。
5 學習linux內核最需要的是堅持和思考。這是一個很長的過程,也許你會發現學了linux內核,並不會給你帶來什麼,我現在就是這樣覺得的,感覺自己什麼都不會做,真希望有人能我一些建議!不過學習學習也是有好處的,比如看了趙炯的《Linux內核0.11完全注釋》後,你再去看UCOS-II,會感覺那太容易了!也許學習linux內核會對將來的工作有所幫助吧!
⑤ 學習linux內核應該看什麼書籍 初級的
學習內核不是件容易事,前面有很多前續課程要讀。
1.C語言,推薦 The programmgin c language被稱為聖經的書,不過沒有中文版,不過C語言不太難,而且讀內核也不需要你對C有多深了解。學習到指針和結構體就夠你用了。
2.數據結構,不懂這個想學是不可能的,推薦《數據結構》C語言版本。
3.操作系統,任何一個大學的教科書都可以。一定要看,雖然是純理論。但不看這個,想看懂內核,那是不可能的。
4.微機原理,內核和底層相關,不知道微機原理是不行的。我學的時候書上是以INTEL 8086為藍本,非常簡單。後來看內核時候,補充了 80386以後出現的保護模式,非常復雜。但還是先看下老版的微機原理,先從簡單的下手。
5.linux系統管理,推薦《linux系統管理手冊》,被linux的作者推薦的系統管理書籍。
6,終於到內核了,我看的是《Linux內核代碼情景分析》雖然有點老。但結合新的源代碼,在了解機制後,代碼實現上差距不大。
是不是有點恐怖,要這么多前需知識,其實如果你是計算機專業的,那麼除了5和6外,其它的課程你應該在學校裡面學過了。
⑥ Linux學習書籍求推薦
Linux學習書籍求推薦
1、《Linux與Unix Shell 編程指南》
C語言基礎
1、《C Primer Plus,5th Edition》【美】Stephen Prata著
2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)著
3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)
4、《嵌入式Linux應用程序開發詳解》
Linux內核
1、《深入理解Linux內核》(第三版)
2、《Linux內核源代碼情景分析》毛德操 胡希明著
研發方向
1、《UNIX Network Programming》(UNP)
2、《TCP/IP詳解》
3、《Linux內核編程》
4、《Linux設備驅動開發》(LDD)
硬體基礎
1、《ARM體系結構與編程》杜春雷著
2、S3C2410 Datasheet
英語基礎
1、《計算機與通信專業英語》
系統教程
1、《嵌入式系統――體系結構、編程與設計》
2、《嵌入式系統――採用公開源代碼和StrongARM/Xscale處理器》毛德操 胡希明著
3、《Building Embedded Linux Systems》
理論基礎
1、《演算法導論》
2、《數據結構(C語言版)》
3、《計算機組織與體系結構?性能分析》
4、《深入理解計算機系統》【美】Randal E. Bryant David O』Hallaron著
5、《操作系統:精髓與設計原理》
6、《編譯原理》
7、《數據通信與計算機網路》
8、《數據壓縮原理與應用》
入門篇
《LINUX權威指南》書不錯,寫的很全面也比較廣,涉及的不深,做為入門書籍不錯,可以比較全面的了解linux 。另外比較熱門的也可以看看《鳥哥的私房菜》等書,偏管理類的書。如果想做server方向的可以找來看看。
驅動 篇
《LINUX設備驅動程序 》就是網上說的「LDD」,經典之作,必備書籍。國產經典《Linux驅動詳細解》也是一本非常不錯的書,很實用,書中源代碼分析比較多,基於2440的,對linux外圍驅動有很全面的講解
內核篇
浙江大學的《LINUX內核源代碼情景分析》,外國鬼子的《萊昂氏UNIX源代碼分析》還有《深入理解linux內核》都是出名的經典巨作。另外趙 炯的《LINUX內核完全剖析–基於0.12內核》也非常不錯,對內核代碼進行了詳細的注釋,非常有助於對內核的理解和代碼的分析。
shell篇
《LINUX與UNIX Shell編程指南》
應用 編程
不用說了肯定是《unix環境高級編程》被稱為unix編程的聖經。
TCP/IP篇
《TCP/IP詳解》作者W.Richard Stevens也是《unix環境高級編程》的作者,牛人出的書沒有一本不是經典的。但是英年早逝,默哀一下。
c語言
《The C Programming Language》正是作者造出來的c語言,書能垃圾就怪了
《c和指針》和《c缺陷和陷阱》兩本必備。包含了c語言最容易出錯的地方,加深c語言功力的好材料。
關於演算法
《演算法導論》
1 熟悉linux基本環境 >>> 《鳥哥的私訪菜》《unix初級教程》 《linux編程寶典》(市面上無,圖書館有), 等等。
2 熟悉操作系統的基礎知識 >>> 《現代操作系統》 《操作系統概念》
3 熟悉系統編程 >>> 《unix環境高級編程第二版》《unix操作系統設計與實現》
4 內核 按先後順序: 《 linux內核設計與實現》 《linux設備驅動程序》 《深入理解 linux內核》 《linux內核源代碼情景分析》 《深入理解linux虛擬內存系統》
5 其他一些書籍: 《freebsd操作系統設計與實現》 《solaris內核結構》 《unix高級教程:系統技術內幕》 《現代體系結構的unix系統:內核程序員的smp與cache技術》 《保護方式下的80386及其編程》 (後3本市面上沒了,大學圖書館里一般都有》 《Intel64 and IA-32 Arichitectures Software Developer』s Manual》
6 其實內核玩深了,體系和編譯也要學好 《計算機體系結構:量化研究方法》 《編譯原理》(龍書)
Linux編程推薦書籍一覽表
shell 編程
《LINUX與UNIX SHELL編程指南》
BASH寶典:
Advanced Bash Scripting Guide (如果你使用的是 GNU/Debian 系統,可以用 apt-get install abs-guide 安裝該文檔)
BASH Programming – Introction HOW-TO
Bash Man
用戶級編程書籍:
Advanced Programming in the UNIX Environment(中文版《UNIX環境高級編程》第二版) 作者 W.Richard
Stevens/尤晉元等
GNU/Linux編程指南 作者 Kurt Wall
Linux 程序設計權威指南 作者 於明儉、陳向陽、方漢
《The Art of Unix Programming》作者 E.S.R
Computer Systems A Programmer』s Perspective
(中文名)《深入理解計算機系統(修訂版)》
《Unix Systems Programming》(中文版《UNIX系統編程》)作者: (美)KAY
A.ROBBINS, STEVE ROBBINS 譯者:陳涓 趙振平
網路編程:
Unix Network Programming V1 & V2,Unix網路編程卷1、2 作者 W.Richard Stevens
《unix網路編程》
XWindow編程
Definitive Guides to the X WindowSystem 作者 Dan Heller, Paula M. Ferguson
內核源代碼閱讀(結合源代碼)和編程
(入門)
《邊干邊學Linux內核指導》
(高級)
《Linux Kernel Development》
《Linux內核源代碼情景分析》
《深入分析Linux內核源代碼》 陳莉君
《 Understanding Linux Network Internals 》即《 深入理解Linux網路內幕(英文影印版)》Christian Benvenuti
內核模塊編程
《The Linux Kernel Mole Programming Guide》
Linux設備驅動編程
Linux設備驅動程序/Linux Device
Drivers 作者 Alessandro Ruibini
多線程編程
《多線程編程指南》
⑦ 如何讀《深入理解linux內核》和《情景分析》
怎麼讀《深入理解linux內核》和《情景分析》
有同感的人回帖。
------解決方案--------------------------------------------------------
沒有基礎看著兩本書是相當吃力的!
------解決方案--------------------------------------------------------
得有相當的軟硬體知識積累才行
要是能隨便一天讀懂一章,那這個世界就沒什麼值得積累的技術了
我的建議是先看 Robert Love的Linux Kernel Develop 2nd,作者說那是《深入理解linux內核》的導讀,等到你看LKD都很輕松的時候就好看經典了
另外,我覺得先學好驅動開發,再分析內核才是正途。做驅動需要經常用到內核中的數據結構和函數(相當於內核api),難度卻比分析內核要低。等到驅動練得熟練了,等於內核的結構有了大致把握,然後就可以分析內核函數的具體實現了,也方便做實驗驗證。
我也是初學者,目前只是看LKD比較輕松的階段
------解決方案--------------------------------------------------------
有誤
是譯者建議先看《深入理解linux內核》再看UND和LDD
驅動難度卻比分析內核要低
--------
僅考慮軟體部分也許還行,但實際跟硬體交互總有復雜的問題需要解決
------解決方案--------------------------------------------------------
是譯者建議先看Linux Kernel Develop 2nd 再看《深入理解linux內核》和LDD
晚上有點不清醒
------解決方案--------------------------------------------------------
我是跳著看過..
------解決方案--------------------------------------------------------
不能太急:)
------解決方案--------------------------------------------------------
都看不懂~
------解決方案--------------------------------------------------------
其實 Robert Love 的Linux Kernel Develop 2nd也比較難懂。
這幾本書的中文版都是陳麗君翻譯的,她自己寫的一本《Linux操作系統原理與應用》比較易懂,可以做這幾本書的鋪墊!
------解決方案--------------------------------------------------------
建議:
lkd+ulk+源代碼,
情景分析中講的太細,沒有ULK的基礎很容易一猛子扎進去出不來,迷在代碼中
建議lkd先看一遍,這個半月就差不多了
然後ULK結合源碼,這可是個慢功夫,一般ULK看一半就感覺前邊看的什麼都沒有了
這時候在看lkd中對應的ULK已經看過的章節
等ULK中重要的章節基本看完,再分塊看
例如:
進程管理+中斷,內存管理等幾塊
情景分析的話等ULK看了1-2遍(隨時結合代碼),需要深入的章節而你自己看源碼又有些地方不理解,可以參考情景分析相應的章節,沒必要全部看完
另外,推薦一本新書《Professional Linux Kernel Architecture》,個人認為這本比ULK寫的更好
ULK更多是教你內核里有什麼,而這本書教的是內核有什麼,為什麼這樣。讓你知其然又知其所以然。當然雖然本書很厚,1300多頁,由於涉及太多,深度的話跟ULK差不多,甚至稍微淺一點。
本人的一點感想,不一定適合LZ,LZ看情況而定吧
------解決方案--------------------------------------------------------
個人感覺《深入理解linux內核》也就是ULK沒有個一年功夫就別想讀懂,這東西欲速則不達。
------解決方案--------------------------------------------------------
看了好幾本, 沒有一本看完的
------解決方案--------------------------------------------------------
樓主心態有問題,速戰速決要分情況滴
------解決方案--------------------------------------------------------
其實 Robert Love 的Linux Kernel Develop 2nd也比較難懂。
這個我以前聽說是比較入門的,但是我看了兩遍後還是希里糊塗的。
⑧ <<深入理解Linux內核>>與<<Linux內核情景分析>>這兩本書的區別在哪
深入理解Linux內核提綱挈領,情景分析深入代碼細節,互補。