深入理解Linux内核(第三版)(09年度畅销榜TOP50)(08年度畅销榜TOP50)
基本信息
- 作者: Daniel P. Bovet Marco Cesati
- 译者: 陈莉君 张琼声 张宏伟
- 丛书名: 电力出版社O'REILLY系列丛书
- 出版社:中国电力出版社
- ISBN:9787508353944
- 上架时间:2007-10-19
- 出版日期:2007 年9月
- 开本:16开
- 页码:895
- 版次:3-1
- 所属分类:
计算机 > 操作系统 > Linux
编辑推荐
Linux畅销图书《Understanding the Linux Kernel》新版中文译本
本书指导你对内核中使用的最重要的数据结构、算法和程序设计诀窍进行一次遍历,相关的代码片段被逐行剖析。
推荐阅读
内容简介回到顶部↑
书籍
计算机书籍
为了透彻理解linux的工作机理,以及为何它在各种系统上能顺畅运行,你需要深入到内核的心脏。cpu与外部世界的所有交互活动都是由内核处理的,哪些程序会分享处理器的时间,以什么样的顺序来分享。内核不遗余力地管理有限的内存,以使数以千计的进程有效地共享系统资源。内核还精心组织数据传送,使得cpu不再受限于慢速硬盘。
《深入理解linux内核》第三版将引领你畅游内核中用到的最主要数据结构、算法和编程技巧。如果你的确想了解计算机内部的实现机理,那么作者透过现象探寻本质,提供了颇有价值的深入分析。本书针对具体的intel平台,讨论了其重要特征,逐行剖析了相关的代码片段。但是,本书涵盖的内容不仅仅局限于代码的机理,还解释了linux运作方式的理论支撑。
本书第三版涵盖linux 2.6,从中可以看到几乎内核每个子系统都有相当大的变化,首当其冲的是内存管理和块设备部分。本书集中讨论了如下内容:
内存管理,包括文件缓冲、进程交换以及直接内存访问(dma)
虚拟文件系统层和第二及第三扩展文件系统
进程创建及调度
信号、中断及设备驱动程序的主要接口
定时
内核中的同步
进程间通信(ipc)
程序执行
本书将使你熟悉linux所有的内在工作机理,但本书不仅仅是一种学术演练。你将了解到什么条件会促使linux产生最佳性能,你还会看到,linux在各种环境下如何满足进程调度、文件访问及内存管理期间系统提出的快速响应要求。本书有助于你充分展现linux系统的魅力。
计算机书籍
为了透彻理解linux的工作机理,以及为何它在各种系统上能顺畅运行,你需要深入到内核的心脏。cpu与外部世界的所有交互活动都是由内核处理的,哪些程序会分享处理器的时间,以什么样的顺序来分享。内核不遗余力地管理有限的内存,以使数以千计的进程有效地共享系统资源。内核还精心组织数据传送,使得cpu不再受限于慢速硬盘。
《深入理解linux内核》第三版将引领你畅游内核中用到的最主要数据结构、算法和编程技巧。如果你的确想了解计算机内部的实现机理,那么作者透过现象探寻本质,提供了颇有价值的深入分析。本书针对具体的intel平台,讨论了其重要特征,逐行剖析了相关的代码片段。但是,本书涵盖的内容不仅仅局限于代码的机理,还解释了linux运作方式的理论支撑。
本书第三版涵盖linux 2.6,从中可以看到几乎内核每个子系统都有相当大的变化,首当其冲的是内存管理和块设备部分。本书集中讨论了如下内容:
内存管理,包括文件缓冲、进程交换以及直接内存访问(dma)
虚拟文件系统层和第二及第三扩展文件系统
进程创建及调度
信号、中断及设备驱动程序的主要接口
定时
内核中的同步
进程间通信(ipc)
程序执行
本书将使你熟悉linux所有的内在工作机理,但本书不仅仅是一种学术演练。你将了解到什么条件会促使linux产生最佳性能,你还会看到,linux在各种环境下如何满足进程调度、文件访问及内存管理期间系统提出的快速响应要求。本书有助于你充分展现linux系统的魅力。
目录回到顶部↑
前言
第一章 绪论
第二章 内存寻址
第三章 进程
第四章 中断和异常
第五章 内核同步
第六章 定时测量
第七章 进程调度
第八章 内存管理
第九章 进程地址空间
第十章 系统调用
第十一章 信号
第十二章 虚拟文件系统
第十三章 i/o体系结构和设备驱动程序
第十四章 块设备驱动程序
第十五章 页调高速缓存
第十六章 访问文件
第十七章 回收页框
第十八章 ext2和ext3文件系统
第十九章 进程通信
第一章 绪论
第二章 内存寻址
第三章 进程
第四章 中断和异常
第五章 内核同步
第六章 定时测量
第七章 进程调度
第八章 内存管理
第九章 进程地址空间
第十章 系统调用
第十一章 信号
第十二章 虚拟文件系统
第十三章 i/o体系结构和设备驱动程序
第十四章 块设备驱动程序
第十五章 页调高速缓存
第十六章 访问文件
第十七章 回收页框
第十八章 ext2和ext3文件系统
第十九章 进程通信
前言回到顶部↑
在1997 年春季的那一学期,我们讲授了基于Linux 2.0 操作系统这门课程。其主导思想是鼓励学生阅读源代码。为了达到这一目的,我们按小组分配项目,这些项目对内核进行修改并对所修改的版本进行测试。对于诸如任务切换和任务调度这样一些Linux 的主要特点,我们也为学生写下了课程笔记。.
除了这些工作,还有来自O'Reilly 编辑Andy Oram 的很多支持,这就促成了《深入理解Linux 内核》这本书的第一版,那时是2000 年底,该版涵盖了Linux 2.2 以及对Linux 2.4 的一些展望。这本书的成功鼓励我们继续沿这一思路走下去,在2002 年底,我们完成了涵盖Linux 2.4 的第二版。现在你看到的第三版则涵盖了Linux 2.6。
与以往所经历的一样,我们这次又阅读了数千行的代码,并努力搞清其含义。在做了所有这些工作以后,可以说我们的努力是完全值得的。我们学到很多你无法从书本中找到的东西,因此我们希望自己已经成功地在后面的内容中涵盖了这些信息。
本书的读者对象
如果你对Linux 如何工作、其性能又为什么会如此之高怀有强烈的好奇心,你将会从这里找到答案。阅读本书之后,你会通过上千行代码找到自己的方式来区别重要数据结构和次要数据结构的不同,简而言之,你将成为一名真正的Linux 高手。
可以把我们的工作看作是畅游Linux 内核的向导:我们讨论了在内核中使用的很多重要的数据结构、算法和编程技巧。在很多例子中,我们逐行讨论了有关代码片段。当然,你手头应当备有Linux 源代码,你还应当乐于花一些功夫去解读那些为简洁起见而未完整描述的函数。
另一方面,如果你想更多地了解现代操作系统中的主要设计问题,那么本书将提供颇有价值的见解。本书不是专门针对系统管理员或编程人员的,而是主要针对那些想探究机器内部到底是如何工作的人们的!与任何好向导一样,我们试图透过现象看其本质。我们还提供了背景材料,例如主要特点的历史及使用它们的理由。
材料的组织
开始写这本书时,我们面临重大的抉择:是应该涉及特定的硬件平台,还是跳过与硬件相关的细节而集中于纯粹与硬件无关的内核部分?
有关Linux内核内幕的其他书选择后一种方式;因为下述理由,我们决定采用前一种方式:
·高效率的内核充分利用硬件可利用的特点,诸如寻址技术、高速缓存(cache)、处理器异常(exception)、专用指令、处理器控制寄存器等等。如果我们想使你相信,内核在执行一个特殊的任务时确实工作得相当好,那我们必须首先告诉你内核工作在一个什么样的硬件平台上。
·即使Unix 内核大部分源代码是独立于处理器的,并且用C 语言编写,但也有少数重要的部分是用汇编语言编写的。因此,为了充分理解内核,就需要学习一些与硬件打交道的汇编语言片段。
当涉及硬件特征时,我们的策略非常简单:对全部由硬件驱动的特征给予简单描述,而对需要软件支持的特征给予详细描述。事实上,我们感兴趣的是内核的设计而不是计算机的体系结构。
我们下一步就是选择所描述的计算机系统。尽管Linux 目前已运行在很多种类的个人计算机(PC)和工作站上,但我们决定把主要精力放在非常流行且便宜的IBM PC 兼容机上,其中微处理器是Intel 80x86及PC中所支持的一些芯片。在以后的章节中,术语“Intel 80x86微处理器”将表示Intel 80386、80486、Pentium、Pentium Pro、Pentium II、Pentium III、Pentium 4 微处理器或兼容模型。在少数情况下,对于特殊的模型会给出明确的说明。
在研究Linux 各组件时,我们还必须对所遵循的顺序做出选择。我们尝试的是一种自底向上的方式:从硬件相关的主题开始,以完全与硬件无关的主题结束。事实上,在本书的初始部分我们将多次引用Intel 80x86 微处理器,而其他部分相对来说与硬件无关。不过,第十三章和第十四章是一种例外。实际上,遵循自底向上的方法并不像看起来那样简单,这是因为存储器管理、进程管理和文件系统这几部分相互渗透;少数向前引用(即引用还待解释的主题)是不可避免的。
每章以所涵盖内容的理论概述开始,然后按自底向上的方式组织材料。我们以描述每章内容所需要的数据结构开始,然后,我们通常从描述最低级功能移到描述较高级功能,最后说明用户应用程序所发出的系统调用是如何得到支持的。
描述级别
支持各种体系结构的Linux 源代码包含在14000 多个C 语言和汇编语言的文件中,这些文件存放在大约1000 个子目录中。源代码大约由六百万行代码组成,占230MB 以上的磁盘空间。当然,这本书只能涵盖源代码非常少的一部分。考虑一下你所读的书的全部源代码只占不到3MB的磁盘空间,就能想像出Linux 源代码有多么庞大了。因此,即使不对源代码进行解释,只列出所有的代码,75 本书也写不完!
因此,我们必须对要阐述的内容做出选择,我们的决策大致情况如下:
·我们相当全面地描述了进程管理和内存管理。
除了这些工作,还有来自O'Reilly 编辑Andy Oram 的很多支持,这就促成了《深入理解Linux 内核》这本书的第一版,那时是2000 年底,该版涵盖了Linux 2.2 以及对Linux 2.4 的一些展望。这本书的成功鼓励我们继续沿这一思路走下去,在2002 年底,我们完成了涵盖Linux 2.4 的第二版。现在你看到的第三版则涵盖了Linux 2.6。
与以往所经历的一样,我们这次又阅读了数千行的代码,并努力搞清其含义。在做了所有这些工作以后,可以说我们的努力是完全值得的。我们学到很多你无法从书本中找到的东西,因此我们希望自己已经成功地在后面的内容中涵盖了这些信息。
本书的读者对象
如果你对Linux 如何工作、其性能又为什么会如此之高怀有强烈的好奇心,你将会从这里找到答案。阅读本书之后,你会通过上千行代码找到自己的方式来区别重要数据结构和次要数据结构的不同,简而言之,你将成为一名真正的Linux 高手。
可以把我们的工作看作是畅游Linux 内核的向导:我们讨论了在内核中使用的很多重要的数据结构、算法和编程技巧。在很多例子中,我们逐行讨论了有关代码片段。当然,你手头应当备有Linux 源代码,你还应当乐于花一些功夫去解读那些为简洁起见而未完整描述的函数。
另一方面,如果你想更多地了解现代操作系统中的主要设计问题,那么本书将提供颇有价值的见解。本书不是专门针对系统管理员或编程人员的,而是主要针对那些想探究机器内部到底是如何工作的人们的!与任何好向导一样,我们试图透过现象看其本质。我们还提供了背景材料,例如主要特点的历史及使用它们的理由。
材料的组织
开始写这本书时,我们面临重大的抉择:是应该涉及特定的硬件平台,还是跳过与硬件相关的细节而集中于纯粹与硬件无关的内核部分?
有关Linux内核内幕的其他书选择后一种方式;因为下述理由,我们决定采用前一种方式:
·高效率的内核充分利用硬件可利用的特点,诸如寻址技术、高速缓存(cache)、处理器异常(exception)、专用指令、处理器控制寄存器等等。如果我们想使你相信,内核在执行一个特殊的任务时确实工作得相当好,那我们必须首先告诉你内核工作在一个什么样的硬件平台上。
·即使Unix 内核大部分源代码是独立于处理器的,并且用C 语言编写,但也有少数重要的部分是用汇编语言编写的。因此,为了充分理解内核,就需要学习一些与硬件打交道的汇编语言片段。
当涉及硬件特征时,我们的策略非常简单:对全部由硬件驱动的特征给予简单描述,而对需要软件支持的特征给予详细描述。事实上,我们感兴趣的是内核的设计而不是计算机的体系结构。
我们下一步就是选择所描述的计算机系统。尽管Linux 目前已运行在很多种类的个人计算机(PC)和工作站上,但我们决定把主要精力放在非常流行且便宜的IBM PC 兼容机上,其中微处理器是Intel 80x86及PC中所支持的一些芯片。在以后的章节中,术语“Intel 80x86微处理器”将表示Intel 80386、80486、Pentium、Pentium Pro、Pentium II、Pentium III、Pentium 4 微处理器或兼容模型。在少数情况下,对于特殊的模型会给出明确的说明。
在研究Linux 各组件时,我们还必须对所遵循的顺序做出选择。我们尝试的是一种自底向上的方式:从硬件相关的主题开始,以完全与硬件无关的主题结束。事实上,在本书的初始部分我们将多次引用Intel 80x86 微处理器,而其他部分相对来说与硬件无关。不过,第十三章和第十四章是一种例外。实际上,遵循自底向上的方法并不像看起来那样简单,这是因为存储器管理、进程管理和文件系统这几部分相互渗透;少数向前引用(即引用还待解释的主题)是不可避免的。
每章以所涵盖内容的理论概述开始,然后按自底向上的方式组织材料。我们以描述每章内容所需要的数据结构开始,然后,我们通常从描述最低级功能移到描述较高级功能,最后说明用户应用程序所发出的系统调用是如何得到支持的。
描述级别
支持各种体系结构的Linux 源代码包含在14000 多个C 语言和汇编语言的文件中,这些文件存放在大约1000 个子目录中。源代码大约由六百万行代码组成,占230MB 以上的磁盘空间。当然,这本书只能涵盖源代码非常少的一部分。考虑一下你所读的书的全部源代码只占不到3MB的磁盘空间,就能想像出Linux 源代码有多么庞大了。因此,即使不对源代码进行解释,只列出所有的代码,75 本书也写不完!
因此,我们必须对要阐述的内容做出选择,我们的决策大致情况如下:
·我们相当全面地描述了进程管理和内存管理。
评论交流
共有144人开贴评论 189人参与评论 109人参与打分 查看
评价等级:

发表于:2009-4-18 13:42:00
翻译得很有问题。术语不是最常使用的可以容忍,但很多细节的东西完全是直译和误议。不去看代码,也不去看操作系统原理就是因为这本书用语言文字描述了一些复杂代码表述出来的实现出来的操作系统原理,译者把这些细节弄错了这书还有什么意义!
我过去看这书看了1/3就看不下去了,这1/3里还有很多有疑问的地方,这次重新看,有些疑问就是因为书的错误表述才产生的,照着英文版读这一部分就解决了。
最烦人的就是把原文中"and"表达出的时间上的先后顺序翻译成逻辑上的“与”,这严重扭曲了作者的意思,误导了读者!
我过去看这书看了1/3就看不下去了,这1/3里还有很多有疑问的地方,这次重新看,有些疑问就是因为书的错误表述才产生的,照着英文版读这一部分就解决了。
最烦人的就是把原文中"and"表达出的时间上的先后顺序翻译成逻辑上的“与”,这严重扭曲了作者的意思,误导了读者!
| 我要写评论 |
| 查看所有评论交流(共144条) |








点击看大图





加载中...


