Linux 内核学习的经典书籍及途径
from:http://www.zhihu.com/question/19606660 知乎
Linux 内核学习的经典书籍及途径?修改
18 个回答
内核重点关注这几个部分:进程管理及调度,内存管理,文件及文件系统,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内核学习的误区以及相关书籍介绍 http://www.hzlitai.com.cn/article/ARM9-article/system/1605.html
目前正在研究这块,有兴趣的可以一起交流: http://blog.chinaunix.net/space.php?uid=22359610
实成的避免陷入细节建议非常好:)
说说我们以前的培训经验。先看Unix内核相关的书籍,了解内核的经典实现方法,然后再结合源码去研究Linux内核。这样做的原因是避免从一开始就陷入细节。
国内的书,我还没见到有像《自己动手写操作系统》那样的快速上手的宝贝。
书楼上都很多了,建议先把C和汇编学好点(-:
简介 网上有很多他这本PDF著作,当然啦,最推荐买一本,说实话,大学里这么多本书,这本是我觉得拿起来和放下都觉得有收获的一本;话说我们做坑爹操作系统多半靠这本大书了;
歪评 参加工作了研究内核机会很少,编译、升级内核机会倒是很多。。常用系统命令掌握了似乎也够了 至于鸟哥嘛,大家都推荐,一开始看他的网站觉得他挺厉害的,可能是书的语言偏台湾风、内容也有点旧吧,可能不如内核完全剖析吸引人,看一段懂一段来得痛快。咳嗽,纯个人意见。
Linux 内核学习的经典书籍及途径的更多相关文章
- 关于Linux内核学习的误区以及相关书籍介绍
http://www.hzlitai.com.cn/article/ARM9-article/system/1605.html 写给Linux内核新手-关于Linux内核学习的误区 先说句正经的:其实 ...
- 关于Linux内核学习的一点点总结
关于Linux内核学习的一点点总结 关键词:Linux, 操作系统,内核 博客列表 由反汇编C程序来理解计算机是如何工作的 通过分析一个简化版时间片轮转多道程序内核代码来认识操作系统中的进程调度 通过 ...
- linux内核学习之二:编译内核
在linux内核学习系列的第一课中讲述了搭建学习环境的过程(http://www.cnblogs.com/xiongyuanxiong/p/3523306.html),环境搭好后,马上就进入到下一环节 ...
- linux内核学习之一:环境搭建--安装Debian7.3
本系列文章假设读者已对linux有一定的了解,其实学习linux内核不需要有很深的关于linux的知识,只需要了解以下内容:linux基础知识及基本shell命令:现代操作系统的基本概念:C语言和gc ...
- Linux内核学习笔记-2.进程管理
原创文章,转载请注明:Linux内核学习笔记-2.进程管理) By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...
- Linux内核学习笔记-1.简介和入门
原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...
- Linux内核学习趣谈
本文原创是freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/9304991 从大二开始学习Linux内核,到现在已经 ...
- Linux 内核学习经验总结
Linux 内核学习经验总结 学习内核,每个人都有自己的学习方法,仁者见仁智者见智.以下是我在学习过程中总结出来的东西,对自身来说,我认为比较有效率,拿出来跟大家交流一下. 内核学习,一偏之见:疏漏难 ...
- Linux内核分析——Linux内核学习总结
马悦+原创作品转载请注明出处+<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 Linux内核学习总结 一 ...
随机推荐
- Hadoop源码的编译过程详细解读(各版本)
说在前面的话 重新试多几次.编译过程中会出现下载某个包的时间太久,这是由于连接网站的过程中会出现假死,按ctrl+c,重新运行编译命令. 如果出现缺少了某个文件的情况,则要先清理maven(使用命 ...
- NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)"
原文: http://stackoverflow.com/questions/19874935/afnetworking-2-0-post-issue-cocoa-error-3840json-tex ...
- java_list<String> string[]拼接json
private String getJsonStr(List<String> jsonKeyList, String[] values){ String jsonStr = "{ ...
- 关于css中z-index 的应用
我想很多人在应用中的会碰到这个问题,设置 z-index无效:无论设置为多高的数字都没有效果: 原因是在设置z-index之前必须满足一下两个条件: 1,给设置z-index的元素设置相应的定位值,p ...
- 单位内部DNS架设及域名解析服务
越来越多的企业将企业内部局域网通过光缆.交换机等高速互连设备连接起来,形成较大规模的中型网络,网络上的主机和用户也随之日渐增多.作为 Internet的缩影,企业内部网上的各类服务器(如WWW服务器. ...
- 利用Continuous Testing实现Eclipse环境自己主动单元測试
当你Eclipse环境中改动项目中的某个方法时,你可能因为各种原因没有执行单元測试,结果代码提交,悲剧就可能随之而来. 所幸infinitest(http://infinitest.github.io ...
- 运行时动态修改webconfig
网站运行时,如果直接手动修改webconfig.xml,会造成线程池重启,对于PV大的网站来说风险是很大的,并且如果有多台服务器,逐台修改也会造成数据不一致. .NET 2.0后可以通过代码修改web ...
- Hibernate关联关系映射
1. Hibernate关联关系映射 1.1. one to one <class name="Person"> <id name="id" ...
- 【Linq递归查找系列】
Linq递归查找: public IEnumerable<MenuInfo> GetTree(int id, IEnumerable<MenuInfo> lst) { var ...
- <ASP.NET4 从入门到精通>学习笔记3
第三部分,状态管理与缓存 何为状态管理.起始对于web而言.经过前面章节的解说.已经理解,对于web程序,就是一个无状态的程序.每次的请求与每次的响应,两者之间本身就是独立存在的,这一点对于早期的静态 ...