Linux内核学习的经典书籍及途径
Linux 内核学习的经典书籍及途径?
举报
•
按票数排序
18 个回答
,Emacser
、、
说说我们以前的培训经验。先看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》。
• •
举报
,故书不厌百回读
、、
网页出现滚动条的代码书籍可以选择《Linux内核设计与实现》、《Linux内核源代码情景分析》、《深⼊理解Linux内核》等,使⽤Source Navigator或者其它内核阅读⼯具读内核代码,尝试⾃⼰编译内核。
参考:关于Linux内核学习的误区以及相关书籍介绍
• •
举报
,~!@#$%^&*()
、赞同
0.Kernighan的<<UNIX编程环境>>和他的<<C程序设计语⾔>> 1.莱昂⽒的<<;莱昂⽒UNIX源代码分析>>,巴赫的<<UNIX操作系统设计>> 2.国内出的分析早期内核的<<Linux内核完全剖析>> 3. 内核源码树⾥列了⼤部分⽐较经典的内核和驱动的书
• •
举报
、、
我是根据楼上的帖⼦,然后迅速买了⼀本Robert love的《linux内核设计与实现》。觉得这本⽤来⼊门真的是很不错,⽐较通俗易懂。不像深⼊理解linux内核,直接看可能会觉得枯燥和有点难懂(俺看得⼼都碎了!),然后配合源码和⾃⼰改写,相信会好很多。⽽且,我发现结合着lkd这本书看,然后再弄源码,会很有效果。要不只见树⽊不见森林。鸟哥那本私房菜固然好,但是是教你怎么⽤linux系统的。我拿来当⼯具书⽤:)这个问题是个好帖⼦,我受益很多,先谢谢啦~ ---------------------------------------------------------------------------------------------- 分享⼀本书《深⼊分析linux内核源码》。
• •
举报
,存储⾏业,iSCSI/⽹络/⽹卡驱动,研发⼯…
、、
modrow函数的使用方法1.抛弃翻译教材。
2.linux源码树中的Documentation⽂件夹
3.最好先看深⼊理解计算机系统(CSAPP)
4.C语⾔过硬
html字体颜大小代码5.从驱动⼊⼿。⾃⼰编译内核,动态加载驱动。linux device driver 第三版
6.Understanding linux kernel(这本有点⽼了)
7.Robert Love的两本书。。⼀个讲api 的,⼀本linux kernel development第三版
• •
举报
答辩ppt模板免费,内核新⼿
、赞同
推荐《追踪Linxu TCP IP代码运⾏》这本书,从实践出发;从tcp/ip逐渐扩展到虚拟⽂件系统,进程管理,内核启动等。
⽬前正在研究这块,有兴趣的可以⼀起交流:
• •
举报
,半退休中
、赞同
Kernel是好多年前看的了,印象最深刻的还是Robert Love的Linux Kernel Development。思路条理⼗分清楚,讲得⾮常到点,体现出作者功⼒不俗。看过这本开窍后,⾃⼰翻代码或者看其他材料都清晰很多。
• •
举报
,Adobe 程序员
赞同
Understand the Linux Kernel, 但是建议阅读之前⾃⼰仔细研究kernel的build系统,以及EFL⽂件格式。
• •
举报
其实CSAPP这本书也很不错,以linux为例,可以作为学习操作系统、软硬件基本原理的通识书。
linux操作系统书籍• •
举报
,分布式存储⼯程师
、赞同
不要看中⽂版的《深⼊理解linux内核》
• •
举报
,编程,数学
赞同
楼主是想说如何⽐较⽆痛上⼿吗?
实成的避免陷⼊细节建议⾮常好:)
说说我们以前的培训经验。先看Unix内核相关的书籍,了解内核的经典实现⽅法,然后再结合源码去研究Linux内核。这样做的原因是避免从⼀开始就陷⼊细节。
国内的书,我还没见到有像《⾃⼰动⼿写操作系统》那样的快速上⼿的宝贝。
书楼上都很多了,建议先把C和汇编学好点(-:
• •
举报
,algorithm\kernel\network\nginx
赞同
我补充下:学习操作系统理论的话, Andrew S.Tanenbaum的《操作系统设计与实现》,结合minix源码学,也不错。因为这是linus设计linux时参考的书。Tanenbaum就是linus的⽼师
• •
举报
,Linux 爱好者,研究⽹络中
赞同
就⼊门⽽⾔我推荐先研究⼀下mit的xv6系统也就是6.828课程课件,把它的源码好好读,并完成实验。过了这关你c语⾔,x86架构,汇编,操作系统核⼼理论啥的都可以了,之后开始看lkd吧。
• •
举报
,今天晚上吃什么好呢?
赞同
《深⼊Linux内核架构》和Linux内核源代码包⾥的⽂档。
• •
举报
,今天也想敲代码
、、
关键词赵炯;Linux内核完全剖析;0.11;
简介⽹上有很多他这本PDF著作,当然啦,最推荐买⼀本,说实话,⼤学⾥这么多本书,这本是我觉得拿起来和放下都觉得有收获的⼀本;话说我们做坑爹操作系统多半靠这本⼤书了;
歪评参加⼯作了研究内核机会很少,编译、升级内核机会倒是很多。。常⽤系统命令掌握了似乎也够了⾄于鸟哥嘛,⼤家都推荐,⼀开始看他的⽹站觉得他挺厉害的,可能是书的语⾔偏台湾风、内容也有点旧吧,可能不如内核完全剖析吸引⼈,看⼀段懂⼀段来得痛快。咳嗽,纯个⼈意见。
• •
举报
匿名⽤户
pyqt5现代操作系统算法导论 intel的manual linux源代码
• •
举报
,⼯程师
鸟哥那本私房菜⾮常适合⼊门,推荐
• •
举报
,⾃由,阅读,运动,Google,IT,理论物理…
如果是新⼿的话,鸟哥私房菜很不错。还有shell脚本。⾃⼰动⼿写操作系统。操作系统原理。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论