① 麻烦大家推荐一本帮你看懂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内核提纲挈领,情景分析深入代码细节,互补。