Linux内核设计与实现

出版社:机械工业
出版日期:2006-1
ISBN:9787111178651
作者:拉芙
页数:289页

作者简介

《Linux内核设计与实现》基于Linux2.6内核系列详细介绍Linux内核系统,覆盖了从核心内核系统的应用到内核设计与实现等各方面的内容。主要内容包括:进程管理、系统调用、中断和中断处理程序、内核同步、时间管理、内存管理、地址空间、调试技术等。本书理论联系实践,既介绍理论也讨论具体应用,能够带领读者快速走进Linux内核世界,真正开发内核代码。
本书适合作为高等院校操作系统课程的教材或参考书,也可供相关技术人员参考。

书籍目录

第1章 Linux内核简介1.1 追寻Linus的足迹:Linux简介1.2 操作系统和内核简介1.3 Linux内核和传统Unix内核的比较1.4 Linux内核版本1.5 Linux内核开发者社区1.6 小结第2章 从内核出发2.1 获取内核源码2.2 内核源码树2.3 编译内核2.4 内核开发的特点2.5 小结第3章 进程管理3.1 进程描述符及任务结构3.2 进程创建3.3 线程在Linux中的实现3.4 进程终结3.5 进程小结第4章 进程调度4.1 策略4.2 Linux调度算法4.3 抢占和上下文切换4.4 实时4.5 与调度相关的系统调用4.6 调度程序小结第5章 系统调用5.1 API、POSIX和C库5.2 系统调用5.3 系统调用处理程序5.4 系统调用的实现5.5 系统调用上下文5.6 系统调用小结第6章 中断和中断处理程序6.1 中断6.2 中断处理程序6.3 注册中断处理程序6.4 编写中断处理程序6.5 中断上下文6.6 中断处理机制的实现6.7 中断控制6.8 别打断我,马上结束第7章 下半部和推后执行的工作7.1 下半部7.2 软中断7.3 tasklet7.4 工作队列7.5 下半部机制的选择7.6 在下半部之间加锁7.7 下半部处理小结第8章 内核同步介绍8.1 临界区和竞争条件8.2 加锁8.3 死锁8.4 争用和扩展性8.5 小结第9章 内核同步方法9.1 原子操作9.2 自旋锁9.3 读-写自旋锁9.4 信号量9.5 读-写信号量9.6 自旋锁与信号量9.7 完成变量9.8 BKL9.9 禁止抢占9.10 顺序和屏障9.11 小结第10章 定时器和时间管理10.1 内核中的时间概念10.2 节拍率:HZ10.3 jiffies10.4 硬时钟和定时器10.5 时钟中断处理程序10.6 实际时间10.7 定时器10.8 延迟执行10.9 小结第11章 内存管理11.1 页11.2 区11.3 获得页11.4 kmalloc()11.5 vmalloc()11.6 slab层11.7 slab分配器的接口11.8 在栈上的静态分配11.9 高端内存的映射11.10 每个CPU的分配11.11 新的每个CPU接口11.12 使用每个CPU数据的原因11.13 分配函数的选择第12章 虚拟文件系统12.1 通用文件系统接口12.2 文件系统抽象层12.3 Unix 文件系统12.4 VFS 对象及其数据结构12.5 超级块对象12.6 索引节点对象12.7 目录项对象12.8 文件对象12.9 和文件系统相关的数据结构12.10 和进程相关的数据结构12.11 Linux中的文件系统第13章 块I/O层13.1 解剖一个块设备13.2 缓冲区和缓冲区头13.3 bio结构体13.4 请求队列13.5 I/O调度程序13.6 小结第14章 进程地址空间14.1 内存描述符14.2 内存区域14.3 操作内存区域14.4 mmap()和do_mmap():创建地址区间14.5 munmap()和do_munmap():删除地址区间14.6 页表14.7 小结第15章 页高速缓存和页回写15.1 页高速缓存15.2 基树15.3 缓冲区高速缓存15.4 pdflush后台例程15.5 小结第16章 模块16.1 构建模块16.2 安装模块16.3 产生模块依赖性16.4 载入模块16.5 管理配置选项16.6 模块参数16.7 导出符号表16.8 小结第17章 kobject与sysfs17.1 kobject17.2 ktype17.3 kset17.4 subsystem17.5 别混淆了这些结构体17.6 管理和操作kobject17.7 引用计数17.8 sysfs17.9 内核事件层17.10 小结第18章 调试18.1 调试前需要准备什么18.2 内核中的bug18.3 printk()18.4 oops18.5 内核调试配置选项18.6 引发bug并打印信息18.7 神奇的SysRq18.8 内核调试器的传奇18.9 刺探系统18.10 用二分查找法找出引发灾难的变更18.11 当所有的努力都失败时第19章 可移植性19.1 Linux的可移植性19.2 字长和数据类型19.3 数据对齐19.4 字节顺序19.5 时间19.6 页长度19.7 处理器排序19.8 SMP、内核抢占、高端内存19.9 小结第20章 补丁、开发和社区20.1 社区20.2 Linux编码风格20.3 管理系统20.4 提交错误报告20.5 创建补丁20.6 提交补丁20.7 小结附录A 链表附录B 内核随机数产生器附录C 复杂度算法参考资料

编辑推荐

  其它版本请见:《Linux内核设计与实现(原书第3版)》  本书填补了Linux内核理论和实践细节之间的鸿沟。本书针对Linux 2.6内核,包括O(1)调度程序、抢占式内核、块I/O层以及I/O调度程序等。本书还包含了Linux内核开发者在开发时需要用到的很多信息,包括调试技术、编程风格、注意事项等等。  如果你是一名Linux内核爱好者,本书的内容可以帮助你大显身手。如果 你是一名普通程序员,本书的内容将会拓宽你的编程思路。 如果你初次接触Linux内核,本书则可以帮助你对内核各个核心子系统有一个整体把握。  第2版新增内容:  ● 当前Linux 2.6内核的所有主要子系统和最新特点;  ● 内核模块的新细节;  ● 虚拟内存和内存分配的扩充内容;  ● 调试内核代码的附加信息;  ● 内核同步和定时器的实例;  ● 了解Linux内核补丁的提交并参与Linux内核社区。

前言

  在我刚开始有把自己的内核开发经验集结成册,撰写一本书的念头时,我其实也觉得有点头绪繁多,不知道该从何下手。我实在不想落入传统内核书籍的窠臼,照猫画虎地再写这么一本。不错,前人著述备矣,但我终归是要写出点儿与众不同的东西来。说实话,这确实让人颇费思量。  后来,灵感终于浮现出来,我意识到自己可以从一个全新的视角看待这个主题。开发内核是我的工作,开发内核是我的嗜好,内核就是我的挚爱。这些年来,我不断搜集与内核有关的奇闻轶事,不断积攒关键的开发诀窍,依靠这些日积月累的材料,我可以写一本关于开发内核该做什么和不该做什么的书籍。

内容概要

  拉芙(Robert Love)是开源社区的名人,很早就开始使用Linux他活跃于Linux内核和GNOME两个社区。最近,他受聘于Novell公司,作为高级内核工程师在ximian桌面组工作。他的内核项目包括抢占式内核、进程调度程序、内核事件层、VM增强以及多任务处理性能优化。他创建和维护的另外两个开源项目是schedutils和GNOME卷管理器。此外,Linux Journal杂志的特邀编辑。

图书封面


 Linux内核设计与实现下载 更多精彩书评



发布书评

 
 


精彩书评 (总计9条)

  •     之前就有心理准备,看内核之类的书都是灰常枯燥的,所以专门挑了门不是很厚的书。之前看window的内核,搞了本厚的,看到一半多就没再看下去了。虽然这本书不厚,但该讲的还是都讲到了,蛮适合入门linux的同学看和学习的
  •     能够把linux内核在短短300页叙述一遍,本身就是高难度的事情。但这本书确实做到了。这本书基本是在俯视linux内核。全书很少涉及具体实现,而是把握思想,讲解算法,可以了解到linux内核的大概,而不用纠缠于具体细节。而且这本书虽然使用的最新2.6版内核做讲解,但穿插历史,也讲述了很多接口的演变和进化。在我来看,这部分很值得一读。一是了解内核的演化,对很多细节会有帮助(比如函数变量的名字和结构的组织),二是可以知道这些算法的优点缺点和使用限制。书译的一般。很多八卦译的很精彩,但很多算法细节却模棱两可,不是很准确。有机会去看看原版。
  •     非常不错的内核入门书籍。 尤其是对进程调度和内核抢占部分,以及文件系统、块设备、字符设备等章节写的非常清晰,思路清楚。翻译的也还不错,有些专业词汇不是很到位,但总体来说还是可以。

精彩短评 (总计50条)

  •     没有废话,只讲根本问题。
  •     确实有提纲挈领的味道, 先看一遍这书, 再深入看其他书 是比较适合的学习过程.
  •     简单易懂,概要性的内核描述。
  •     读了前6章,太底层了,平时很难遇到,所以也没继续读完。现在此书已经出了第三版,有时间再来看看,了解一下。
  •     通俗易懂
  •     算是入门级的内核教程,基本可以理解为比《操作系统》恐龙书更具体地对 linux 进行介绍,因为篇幅原因,细节只能点到为止。
  •     王笑臣那边借来的书,帮助自己深入理解进程和内存在内核层面的知识
  •     4->5
  •     非常有趣 作者翻译的也很认真 加入大量解释 个别部分稍显僵硬 看在上帝的份上 我发誓 你们再这么翻译就踢你的屁股
  •     当课本读过,从未认真理解过。
  •     轻松幽默,如沐清风。
  •     分析Linux内核的,内容比较深 今天又看了一下,发现两年前已经读过一遍了,这次看起来比起那是记得笔记要轻松了许多。
  •     终于对内核有个大概印象了
  •     旁听李毅老师的课的时候用的教材,没有选这门课,但是旁听之后还是受益匪浅。这本书讲Linux内核短小精悍啊,已经出了第三版,只不过还没有中文版
  •     很好的linux内核入门书籍
  •     大致看了一遍
  •     读过好多遍。会经常去翻的一本书。
  •     这本书我认为深度有限,比较适合作为内核入门级读物。
  •     太早看过,还不错。
  •     这页数就注定悲剧!尴尬的作品,作者希望深入浅出又希望有一定深度。结果两个任务都没有完成。我只坚持到第三章....
  •     确实让我粗略了解了一些东西,不过还是要进一步学习更详细点的东西
  •     说真的,没看过os原理读不懂。只知道皮毛而已。
  •     2.6版的内核开发时间很久,代码的变更比较大。这本书是基于较早期版本的,其中一部分内容如进程的O(n)调度已经被CFS给替代了。不过能够在一本不到三百页的书籍里面将linux内核的进程调度、锁机制、VFS等内容的实现及进化过程梳理得头头是道,而且语言风趣,可见作者实力。2012年读过的最佳书籍!
  •     这本书讲实现比较多,分开os的各个部分来细讲,我总感觉看不到系统的全貌,需要一本高屋建瓴的书理清思路
  •     大学的一个寒假读的,这类书看的太多,但没有过多总结。
  •     一本严肃的书,算是建立起了操作系统原理和Linux系统编程之间的桥梁,就是作者老爱夹带私货还卖萌(喜闻乐见)
  •     看着挺薄,当时读得挺久的
  •     赞! 看得第一本内核书
  •     大名鼎鼎的LKD,深入浅出,值得一读再读的好书
  •     慢慢体会
  •     下个学期的课本
  •     上课的reading lists 看了大半 希望能在年底前读完
  •     就着Linux讲才有味道嘛
  •     最佳内核入门读物!感觉以前顺序有点问题呢
  •     linux内核开发的经典入门书籍。多年前初涉此道时看过,值得翻阅重读。
  •     利用碎片时间读的,不错的入门书。大数据现在还是Silo系统,需要了解上至应用,下至操作系统、甚至体系结构的方方面面。
  •     重读一遍,深入浅出,不乏幽默。
  •     课程需要,这本书挺有价值的
  •     不懂内核,看这本书也能知道一些linux内核的一些实现原理。
  •     没想到第三版刚买完不久就出来了,好在和第二版差别不大,所以就不更新了。不过还是说的不是很清楚,想要搞清楚内核还是不能看这种书哦
  •     读到第二遍的时候才有感觉了
  •     刚读完第三版
  •     作者蜻蜓点水般的介绍了内核设计,对读者来说比较容易形成对内核宏观的设计概念,很不错。
  •     挺好的,就是基本轮廓。但是不常用到,会经常忘记。
  •     书不厚,但是对于入门还是及概念的了解还是很好的
  •     love
  •     一本小而精的内核书籍 零碎这翻看了两三遍 收获还是挺大的 比板砖似的内核书好多了
  •     没有汇编基础,导致看了10几页就开启天书模式了……
  •     细读了前五章吧,学习linux kernel不错的一本书!
  •     还不错的书,一些原理讲了讲。
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024