Linux 内核学习的经典书籍及途径

时间:2022-02-04 15:50:31

from:http://www.zhihu.com/question/19606660 知乎

Linux 内核学习的经典书籍及途径?修改

 
按票数排序按时间排序

18 个回答

赞同78 反对,不会显示你的姓名
说说我们以前的培训经验。先看Unix内核相关的书籍,了解内核的经典实现方法,然后再结合源码去研究Linux内核。这样做的原因是避免从一开始就陷入细节。
内核重点关注这几个部分:进程管理及调度,内存管理,文件及文件系统,Cache,I/O,SMP(多CPU)。
Unix内核推荐很老的一本书《UNIX操作系统设计》,英文原版的叫做《The Design of The UNIX Operating System》。重点关注这些章节(我手上拿的是英文版的):
进程管理及调度:
  • The Structure of Processes
  • Process Control
  • Precess Scheduling and Time

内存管理:

  • Memory Management Policies

文件及文件系统:

  • The Buffer Cache
  • Internal Representation of Files
  • System Calls for the File System

Linux内核就看那本经典的基于2.6版写的书《深入理解Linux内核》。这本书相当的枯燥,最好结合实际的代码看,可以了解它们是如何实现的。给几个建议先:

  • 细看的时候,不用按章节的顺序去看,而是最好是从点到面,先了解一些基本的实现方法,再去结合代码把这些点穿起来。重点关注这些:进程(包括管理和调度),地址空间,内存管理,文件及VFS,Page Cache(页高速缓存),PFRA,I/O及设备驱动等等。
  • 积极的去探索一些书上没有详细说明,但是内核中又实现了的;或者是那些内核代码已经有很大改变的部分。例如:电梯算法(CFQ,红黑树),通用Block层的I/O请求队列和调度,基于VFS之上的具体文件系统的实现(如ext2/3,YAFFS),页从分配到回收的整个过程,设备驱动的具体实现(如USB,存储设备)等等。
  • 自己画图、作笔记,把重要知识点用自己能理解的方式全部记录下来,因为如果你不用,也许半年之后就忘的都差不多了。有一些简单的图片和笔记往往能快速的回忆起来。

这几本书作为辅助也相当的棒:《Linux设备驱动程序》,《深入理解计算机系统》,《Professional Linux Kernel Architecture》,还有相当经典的fudan_abc写的那一套Linux内核代码分析。
不过在做所有的这些之前,请把C语言学好,并且去了解一些简单的Shell的语法。推荐一本Shell的书籍:《UNIX Shells by Example, 4th Edition》。 

赞同9 反对,不会显示你的姓名

Linux 内核学习的经典书籍及途径Tuxify故书不厌百回读

收起

书籍可以选择《Linux内核设计与实现》、《Linux内核源代码情景分析》、《深入理解Linux内核》等,使用Source Navigator或者其它内核阅读工具读内核代码,尝试自己编译内核。
参考:关于Linux内核学习的误区以及相关书籍介绍 http://www.hzlitai.com.cn/article/ARM9-article/system/1605.html
赞同2 反对,不会显示你的姓名

Linux 内核学习的经典书籍及途径党志明~!@#$%^&*()

收起

args譚珂 赞同
0.Kernighan的<<UNIX编程环境>>和他的<<C程序设计语言>> 1.莱昂氏的<<莱昂氏UNIX源代码分析>>,巴赫的<<UNIX操作系统设计>> 2. 国内出的分析早期内核的<<Linux内核完全剖析>> 3. 内核源码树里列了大部分比较经典的内核和驱动的书
赞同5 反对,不会显示你的姓名
我是根据楼上的帖子,然后迅速买了一本Robert love的《linux内核设计与实现》。觉得这本用来入门真的是很不错,比较通俗易懂。不像深入理解linux内核,直接看可能会觉得枯燥和有点难懂(俺看得心都碎了!),然后配合源码和自己改写,相信会好很多。    而且,我发现结合着lkd这本书看,然后再弄源码,会很有效果。要不只见树木不见森林。鸟哥那本私房菜固然好,但是是教你怎么用linux系统的。我拿来当工具书用:)    这个问题是个好帖子,我受益很多,先谢谢啦~   ----------------------------------------------------------------------------------------------   分享一本书《深入分析linux内核源码》http://www.eefocus.com/html/09-06/415503100652pERV.shtml
赞同10 反对,不会显示你的姓名

Linux 内核学习的经典书籍及途径刘晓翔存储行业,iSCSI/网络/网卡驱动,研发工…

收起

1.抛弃翻译教材。 2.linux源码树中的Documentation文件夹 3.最好先看深入理解计算机系统(CSAPP) 4.C语言过硬 5.从驱动入手。自己编译内核,动态加载驱动。linux device driver 第三版 6.Understanding linux kernel(这本有点老了) 7.Robert Love的两本书。。一个讲api的,一本linux kernel development第三版 
赞同2 反对,不会显示你的姓名

Linux 内核学习的经典书籍及途径朱勇内核新手

收起

王真知刘志达 赞同
推荐《追踪Linxu TCP IP代码运行》这本书,从实践出发;从tcp/ip逐渐扩展到虚拟文件系统,进程管理,内核启动等。
目前正在研究这块,有兴趣的可以一起交流: http://blog.chinaunix.net/space.php?uid=22359610
赞同2 反对,不会显示你的姓名

Linux 内核学习的经典书籍及途径思维在发酵半退休中

收起

甄志坚刘晓翔 赞同
Kernel是好多年前看的了,印象最深刻的还是Robert Love的Linux Kernel Development。思路条理十分清楚,讲得非常到点,体现出作者功力不俗。看过这本开窍后,自己翻代码或者看其他材料都清晰很多。 
赞同1 反对,不会显示你的姓名

Linux 内核学习的经典书籍及途径冯东Adobe 程序员

收起

atomd 赞同
Understand the Linux Kernel, 但是建议阅读之前自己仔细研究kernel的build系统,以及EFL文件格式。 
赞同0 反对,不会显示你的姓名
其实CSAPP这本书也很不错,以linux为例,可以作为学习操作系统、软硬件基本原理的通识书。
赞同2 反对,不会显示你的姓名

Linux 内核学习的经典书籍及途径李凯分布式存储工程师

收起

赵亚东王小龙 赞同
不要看中文版的 《深入理解linux内核》 
赞同1 反对,不会显示你的姓名

Linux 内核学习的经典书籍及途径彭实君编程,数学

收起

黄帝诏曰 赞同
楼主是想说如何比较无痛上手吗?  
实成的避免陷入细节建议非常好:)

说说我们以前的培训经验。先看Unix内核相关的书籍,了解内核的经典实现方法,然后再结合源码去研究Linux内核。这样做的原因是避免从一开始就陷入细节。

国内的书,我还没见到有像《自己动手写操作系统》那样的快速上手的宝贝。 
书楼上都很多了,建议先把C和汇编学好点(-:

赞同1 反对,不会显示你的姓名

Linux 内核学习的经典书籍及途径周子隐algorithm\kernel\network\nginx

收起

杨通 赞同
我补充下: 学习操作系统理论的话, Andrew S.Tanenbaum的《操作系统设计与实现》,结合minix源码学,也不错。因为这是linus设计linux时参考的书。Tanenbaum就是linus的老师
赞同1 反对,不会显示你的姓名

Linux 内核学习的经典书籍及途径alogfansLinux 爱好者,研究网络中

收起

杨通 赞同
就入门而言我推荐先研究一下mit的xv6系统也就是6.828课程课件,把它的源码好好读,并完成实验。过了这关你c语言,x86架构,汇编,操作系统核心理论啥的都可以了,之后开始看lkd吧。
赞同1 反对,不会显示你的姓名

Linux 内核学习的经典书籍及途径夕-_-夕今天晚上吃什么好呢?

收起

留侯 赞同
深入Linux内核架构》和Linux内核源代码包里的文档。
赞同4 反对,不会显示你的姓名

Linux 内核学习的经典书籍及途径樊天宇今天也想敲代码

收起

关键词 赵炯;Linux内核完全剖析;0.11;
简介 网上有很多他这本PDF著作,当然啦,最推荐买一本,说实话,大学里这么多本书,这本是我觉得拿起来和放下都觉得有收获的一本;话说我们做坑爹操作系统多半靠这本大书了;
歪评 参加工作了研究内核机会很少,编译、升级内核机会倒是很多。。常用系统命令掌握了似乎也够了 至于鸟哥嘛,大家都推荐,一开始看他的网站觉得他挺厉害的,可能是书的语言偏*风、内容也有点旧吧,可能不如内核完全剖析吸引人,看一段懂一段来得痛快。咳嗽,纯个人意见。
赞同0 反对,不会显示你的姓名
收起

匿名用户

 
现代操作系统 算法导论 intel的manual linux源代码
赞同0 反对,不会显示你的姓名

Linux 内核学习的经典书籍及途径陈小龙工程师

收起

 
鸟哥那本私房菜非常适合入门,推荐
赞同0 反对,不会显示你的姓名

Linux 内核学习的经典书籍及途径安康*,阅读,运动,Google,IT,理论物理…

收起

 
如果是新手的话,鸟哥私房菜很不错。还有shell脚本。自己动手写操作系统。操作系统原理。