请输入您要查询的百科知识:

 

词条 深入浅出理解Linux内核
释义

基本信息

原书名:Understanding the Linux Kernel

原出版社: O'Reilly Media, Inc.

作者:Daniel P. Bovet Marco Cesati

译者:陈莉君张琼声张宏伟

丛书名: 电力出版社O'REILLY系列丛书

出版社:中国电力出版社

ISBN:9787508353944

出版日期:2007 年9月

开本:16开

页码:895

版次:3-1

内容简介

为了透彻理解linux的工作机理,以及为何它在各种系统上能顺畅运行,你需要深入到内核的心脏。cpu与外部世界的所有交互活动都是由内核处理的,哪些程序会分享处理器的时间,以什么样的顺序来分享。内核不遗余力地管理有限的内存,以使数以千计的进程有效地共享系统资源。内核还精心组织数据传送,使得cpu不再受限于慢速硬盘。

《深入理解linux内核》第三版将引领你畅游内核中用到的最主要数据结构、算法和编程技巧。如果你的确想了解计算机内部的实现机理,那么作者透过现象探寻本质,提供了颇有价值的深入分析。本书针对具体的intel平台,讨论了其重要特征,逐行剖析了相关的代码片段。但是,本书涵盖的内容不仅仅局限于代码的机理,还解释了linux运作方式的理论支撑。

本书第三版涵盖linux 2.6,从中可以看到几乎内核每个子系统都有相当大的变化,首当其冲的是内存管理和块设备部分。本书集中讨论了如下内容:

内存管理,包括文件缓冲、进程交换以及直接内存访问(dma)

虚拟文件系统层和第二及第三扩展文件系统

进程创建及调度

信号、中断及设备驱动程序的主要接口

定时

内核中的同步

进程间通信(ipc)

程序执行

本书将使你熟悉linux所有的内在工作机理,但本书不仅仅是一种学术演练。你将了解到什么条件会促使linux产生最佳性能,你还会看到,linux在各种环境下如何满足进程调度、文件访问及内存管理期间系统提出的快速响应要求。本书有助于你充分展现linux系统的魅力。

目录

前言

第一章 绪论

第二章 内存寻址

第三章 进程

第四章 中断和异常

第五章 内核同步

第六章 定时测量

第七章 进程调度

第八章 内存管理

第九章 进程地址空间

第十章 系统调用

第十一章 信号

第十二章 虚拟文件系统

第十三章 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 本书也写不完!

因此,我们必须对要阐述的内容做出选择,我们的决策大致情况如下:

我们相当全面地描述了进程管理和内存管理。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/15 23:49:17