Linux 2.6内核标准教程
基本信息
编辑推荐
业界权威机构和专家强力推荐.
多年培训、研发经验的总结...
内容简介回到顶部↑
linux内核是linux操作系统中最核心的部分,用于实现对硬件部件的编程控制和接口操作。本书深入、系统地讲解了linux内核的工作原理,对linux内核的核心组件逐一进行深入讲解。
全书共8章,首先讲解linux系统的引导过程;然后对linux内核的3大核心模块——内存管理、进程管理、中断和异常处理进行了深入的分析;在此基础上,对时间度量、系统调用进行了分析和讨论;最后讲解了linux内核中常见的同步机制,使读者掌握每处理器变量和rcu这两种新的同步机制。
本书适合linux内核爱好者、linux驱动开发人员、linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学习操作系统的参考书。
全书共8章,首先讲解linux系统的引导过程;然后对linux内核的3大核心模块——内存管理、进程管理、中断和异常处理进行了深入的分析;在此基础上,对时间度量、系统调用进行了分析和讨论;最后讲解了linux内核中常见的同步机制,使读者掌握每处理器变量和rcu这两种新的同步机制。
本书适合linux内核爱好者、linux驱动开发人员、linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学习操作系统的参考书。
目录回到顶部↑
第1章 linux内核学习基础
1.1 为什么研究linux内核
1.1.1 linux的历史来源
1.1.2 linux的发展现状
1.1.3 linux的前景展望
1.2 选择什么版本进行研究
1.3 内核基本结构
1.3.1 内核在操作系统中的地位
1.3.2 linux 2.6内核源代码目录树简介
1.3.3 linux 2.6内核的新特性
1.4 如何阅读本书
1.4.1 内核探索工具
1.4.2 推荐阅读方法
第2章 引导过程分析
2.1 内核镜像的构建过程
2.1.1 编译内核的步骤及分析
2.1.2 内核镜像构建过程分析
2.2 系统引导过程分析
2.2.1 傀儡引导扇区
2.2.2 探测系统资源
1.1 为什么研究linux内核
1.1.1 linux的历史来源
1.1.2 linux的发展现状
1.1.3 linux的前景展望
1.2 选择什么版本进行研究
1.3 内核基本结构
1.3.1 内核在操作系统中的地位
1.3.2 linux 2.6内核源代码目录树简介
1.3.3 linux 2.6内核的新特性
1.4 如何阅读本书
1.4.1 内核探索工具
1.4.2 推荐阅读方法
第2章 引导过程分析
2.1 内核镜像的构建过程
2.1.1 编译内核的步骤及分析
2.1.2 内核镜像构建过程分析
2.2 系统引导过程分析
2.2.1 傀儡引导扇区
2.2.2 探测系统资源
前言回到顶部↑
写作背景.
自由、开放的Linux操作系统正在蓬勃发展,得到了广泛的应用,Linux操作系统的用户数量迅速增长,很多Linux爱好者希望能够学习、掌握Linux内核的原理、机制,能够阅读Linux内核代码,并能够加以应用,但在实际的学习过程中常遇到以下问题。
Linux内核学习门槛较高,初学者总想迅速读懂内核源代码,往往在不清楚内核运行机制和内核代码结构的情况下就开始阅读Linux内核代码,会遇到很大障碍。
随着Linux内核的发展,内核的代码量日益增加,系统规模不断扩大,复杂度不断提高。如何在纷繁芜杂的代码中找到自己所需的信息,是一个亟待解决的问题。
研究、学习过程中不仅需要掌握C语言、操作系统方面的知识,而且还要需要掌握汇编语言、内联汇编、编译器、链接器、链接脚本等各方面的知识。
因此,读者亟需这样一本书。
能够在需要的地方深入浅出地讲解研究、学习Linux内核所需的知识点。
能够对内核的核心框架进行全面剖析,引导读者走出由错综复杂的函数和数据结构组成的迷宫,使读者可以在较短的时间内掌握Linux内核的精髓。
本书特点
(1)基于Linux 2.6版本内核进行讲解。
相对于早期版本,本书讨论的Linux 2.6版本内核已经非常成熟,具有O(1)调度算法、改进的NPTL线程模型、内核态抢占等新的特性,具有良好的响应能力(软实时)。这些重要特性保证了Linux 2.6版本内核具有非常广泛的实际应用价值,更适用于实际产品的开发。
(2)专注于Linux内核核心模块,使读者在较短的时间内掌握Linux的精髓。
对于Linux 2.6版本内核这一“庞然大物”,本书选取了内核的核心关键模块,在有限的篇幅内对Linux内核的工作原理进行深入、透彻的讲解。
(3)分析和讲解细致、透彻。
本书对每个内核核心模块,都深入剖析其数据结构、访问接口、工作机制和内核实现。..
本书给出了Linux内核中每个内核模块运作机制的基本轮廓,并用示意图加以说明,帮助读者掌握相应的运作模型,并对内核实现的关键细节、关键代码进行详细分析。
本书主要内容
第1章首先对内核的目录结构进行了介绍,然后介绍了Linux 2.6内核的新特性,最后介绍了内核探索工具和阅读本书的方法。
第2章首先详细分析了Linux系统在标准PC上的引导过程,以及系统控制权交给内核镜像bzImage的过程,然后讲解内核的初始化过程,如何为第一个C函数设置所需的运行环境,并分析了系统初始化入口函数start_kernel (),使读者了解Linux系统最基本的初始化过程,该过程对理解其他内核模块的初始化有重要意义。
第3章主要讲解内存管理,这是Linux内核中最复杂、最核心的内核模块。本章首先介绍了IA32体系结构提供的内存管理机制——分段机制和分页机制,讨论了两者间的关系和Linux内核所做的取舍;随后详细分析了内核页表的初始化过程,并对Linux内核的内存模型进行了讲解,分析Linux是如何对NUMA架构提供支持的;最后讲解了物理页框的分配、回收过程,并对内核地址空间的划分和用途进行分析。
自由、开放的Linux操作系统正在蓬勃发展,得到了广泛的应用,Linux操作系统的用户数量迅速增长,很多Linux爱好者希望能够学习、掌握Linux内核的原理、机制,能够阅读Linux内核代码,并能够加以应用,但在实际的学习过程中常遇到以下问题。
Linux内核学习门槛较高,初学者总想迅速读懂内核源代码,往往在不清楚内核运行机制和内核代码结构的情况下就开始阅读Linux内核代码,会遇到很大障碍。
随着Linux内核的发展,内核的代码量日益增加,系统规模不断扩大,复杂度不断提高。如何在纷繁芜杂的代码中找到自己所需的信息,是一个亟待解决的问题。
研究、学习过程中不仅需要掌握C语言、操作系统方面的知识,而且还要需要掌握汇编语言、内联汇编、编译器、链接器、链接脚本等各方面的知识。
因此,读者亟需这样一本书。
能够在需要的地方深入浅出地讲解研究、学习Linux内核所需的知识点。
能够对内核的核心框架进行全面剖析,引导读者走出由错综复杂的函数和数据结构组成的迷宫,使读者可以在较短的时间内掌握Linux内核的精髓。
本书特点
(1)基于Linux 2.6版本内核进行讲解。
相对于早期版本,本书讨论的Linux 2.6版本内核已经非常成熟,具有O(1)调度算法、改进的NPTL线程模型、内核态抢占等新的特性,具有良好的响应能力(软实时)。这些重要特性保证了Linux 2.6版本内核具有非常广泛的实际应用价值,更适用于实际产品的开发。
(2)专注于Linux内核核心模块,使读者在较短的时间内掌握Linux的精髓。
对于Linux 2.6版本内核这一“庞然大物”,本书选取了内核的核心关键模块,在有限的篇幅内对Linux内核的工作原理进行深入、透彻的讲解。
(3)分析和讲解细致、透彻。
本书对每个内核核心模块,都深入剖析其数据结构、访问接口、工作机制和内核实现。..
本书给出了Linux内核中每个内核模块运作机制的基本轮廓,并用示意图加以说明,帮助读者掌握相应的运作模型,并对内核实现的关键细节、关键代码进行详细分析。
本书主要内容
第1章首先对内核的目录结构进行了介绍,然后介绍了Linux 2.6内核的新特性,最后介绍了内核探索工具和阅读本书的方法。
第2章首先详细分析了Linux系统在标准PC上的引导过程,以及系统控制权交给内核镜像bzImage的过程,然后讲解内核的初始化过程,如何为第一个C函数设置所需的运行环境,并分析了系统初始化入口函数start_kernel (),使读者了解Linux系统最基本的初始化过程,该过程对理解其他内核模块的初始化有重要意义。
第3章主要讲解内存管理,这是Linux内核中最复杂、最核心的内核模块。本章首先介绍了IA32体系结构提供的内存管理机制——分段机制和分页机制,讨论了两者间的关系和Linux内核所做的取舍;随后详细分析了内核页表的初始化过程,并对Linux内核的内存模型进行了讲解,分析Linux是如何对NUMA架构提供支持的;最后讲解了物理页框的分配、回收过程,并对内核地址空间的划分和用途进行分析。
序言回到顶部↑
GNU/Linux迅猛发展、无处不在,渗透到人类生产、生活的各个角落,为人类创造了巨大的价值;不仅如此,基于GPL自由、开放的Linux内核还为深入学习操作系统原理、了解高性能计算机系统提供了一个优秀的平台。.
随着Linux内核的不断发展,各种新特性被添加进来,内核的规模越来越大,整个系统也越来越复杂,内核的学习难度不断增加,广大Linux爱好者非常需要一本能以简单的方式透彻分析Linux内核的图书。..
本书语言简洁、流畅,并用大量的图表直观、形象地道出了Linux内核实现的精妙之处;将带领读者进入Linux内核的神奇世界,是一本不可多得的好书,希望能在Linux的普及、推广中发挥重大作用。...
周立功
随着Linux内核的不断发展,各种新特性被添加进来,内核的规模越来越大,整个系统也越来越复杂,内核的学习难度不断增加,广大Linux爱好者非常需要一本能以简单的方式透彻分析Linux内核的图书。..
本书语言简洁、流畅,并用大量的图表直观、形象地道出了Linux内核实现的精妙之处;将带领读者进入Linux内核的神奇世界,是一本不可多得的好书,希望能在Linux的普及、推广中发挥重大作用。...
周立功
媒体评论回到顶部↑
理解Linux内核的工作原理是做好嵌入式Linux开发的关键,也是嵌入式Linux系统开发的难点之一。本书紧扣这一主题,以简洁的语言进行了深入浅出的讲解,值得一读。.
北京麦克泰软件技术有限公司(BMR) 董事长 / 电子产品世界杂志 编委 何小庆
本书有非常突出的特点—图文并茂、分析透彻,全书配以大量图表引导读者建立起对Linux内核的认识和理解,是作者多年嵌入式Linux从业经验的总结,读者一定会从中受益。
中国软件行业协会嵌入式系统分会 秘书长 郭淳学..
在开源技术流盛行的今天,基于Linux内核的各种各样的计算机系统正在发挥着巨大的作用,越来越多的人参与到Linux的相关开发之中,本书是深入学习Linux内核的最佳选择。
信息产业部软件与集成电路促进中心(CSIP) 教育培训部主任 杜广斌...
北京麦克泰软件技术有限公司(BMR) 董事长 / 电子产品世界杂志 编委 何小庆
本书有非常突出的特点—图文并茂、分析透彻,全书配以大量图表引导读者建立起对Linux内核的认识和理解,是作者多年嵌入式Linux从业经验的总结,读者一定会从中受益。
中国软件行业协会嵌入式系统分会 秘书长 郭淳学..
在开源技术流盛行的今天,基于Linux内核的各种各样的计算机系统正在发挥着巨大的作用,越来越多的人参与到Linux的相关开发之中,本书是深入学习Linux内核的最佳选择。
信息产业部软件与集成电路促进中心(CSIP) 教育培训部主任 杜广斌...
书摘回到顶部↑
第1章 Linux内核学习基础
1.1 为什么研究Linux内核
本节先对Linux系统的来源、历史背景和现状作简单介绍,然后讨论自由软件的价值所 在及自由软件如何满足用户的需要,最后讲解Linux系统的应用前景和未来。
1.1.1Linux的历史来源
谈到Linux内核,不能不介绍GNU项目。假若没有GNU计划和GNU推出的自由软件,Linux内核不可能如此成功;Linux内核的开发工作都是基于GNU推出的自由软件完成的。反过来,没有Linux内核,GNU计划也只是一个空谈——它无法向用户提供一个完全自由的类UNIX操作系统。GNU和Linux相辅相承、缺一不可。
GNU工程始于l984年,由自由软件之父Richard Stallman组织,目的在于开发一套自由、完整的UNIX操作系统。该系统是一个完全“自由”的软件体系,与此相应的有一份通用公共许可证(General Public License,GPL)。和大多数软件许可证相反,GNU通用公共许可证力图保证用户共享和修改自由软件的自由——保证自由软件对所有用户是自由的,这里指的是自由而不是免费。GPL的详细信息,请参见http://www.gnu.org/licenses/licenses.html。
Linux内核及其他相关的大量软件都是在GPL的推动下开发和发布的。各种使用Linux作为内核的GNU操作系统正被广泛地使用着,虽然这些系统通常被称作为Linux,但是它们应该被更确切地称为GNU/Linux系统。原因在于,Linux实际上是操作系统的内核,使这个内核变得非常有用的大量应用程序都是GNU软件,都是在GPL许可证下发布的。例如,窗口管理系统、编译器、各种shell、脚本解释器、浏览器、编辑器以及其他多不胜数的实用工具。基于该原因,GNU/Linux更适合作为操作系统的名称,而Linux则适合作为内核的名称。
GNU项目的开发策略是先完成现有UNIX系统中实用程序(如Is、cat、autoconf、automake)的自由实现,然后开发GNU操作系统的核心——Hurd内核,只要Hurd内核开发出来,GNU就是一套真正自给自足、完整的自由操作系统。但与此同时,Linux内核在短短几年内迅速崛起,也使用GNU的通用公共许可证,填补了GNU Hurd内核的空缺。
因为Linux内核已经十分成熟,目前几乎所有的GNU系统都采用Linux作为操作系统的核心。如果说Richard Stallman创立并推动了自由软件的发展,那么Linus毫不犹豫奉献给GNu的Linux,则把自由软件的发展带入了一个全新的境界。Linux内核是一个极其成功的自由软件,是自由软件中的一个典范。
……
1.1 为什么研究Linux内核
本节先对Linux系统的来源、历史背景和现状作简单介绍,然后讨论自由软件的价值所 在及自由软件如何满足用户的需要,最后讲解Linux系统的应用前景和未来。
1.1.1Linux的历史来源
谈到Linux内核,不能不介绍GNU项目。假若没有GNU计划和GNU推出的自由软件,Linux内核不可能如此成功;Linux内核的开发工作都是基于GNU推出的自由软件完成的。反过来,没有Linux内核,GNU计划也只是一个空谈——它无法向用户提供一个完全自由的类UNIX操作系统。GNU和Linux相辅相承、缺一不可。
GNU工程始于l984年,由自由软件之父Richard Stallman组织,目的在于开发一套自由、完整的UNIX操作系统。该系统是一个完全“自由”的软件体系,与此相应的有一份通用公共许可证(General Public License,GPL)。和大多数软件许可证相反,GNU通用公共许可证力图保证用户共享和修改自由软件的自由——保证自由软件对所有用户是自由的,这里指的是自由而不是免费。GPL的详细信息,请参见http://www.gnu.org/licenses/licenses.html。
Linux内核及其他相关的大量软件都是在GPL的推动下开发和发布的。各种使用Linux作为内核的GNU操作系统正被广泛地使用着,虽然这些系统通常被称作为Linux,但是它们应该被更确切地称为GNU/Linux系统。原因在于,Linux实际上是操作系统的内核,使这个内核变得非常有用的大量应用程序都是GNU软件,都是在GPL许可证下发布的。例如,窗口管理系统、编译器、各种shell、脚本解释器、浏览器、编辑器以及其他多不胜数的实用工具。基于该原因,GNU/Linux更适合作为操作系统的名称,而Linux则适合作为内核的名称。
GNU项目的开发策略是先完成现有UNIX系统中实用程序(如Is、cat、autoconf、automake)的自由实现,然后开发GNU操作系统的核心——Hurd内核,只要Hurd内核开发出来,GNU就是一套真正自给自足、完整的自由操作系统。但与此同时,Linux内核在短短几年内迅速崛起,也使用GNU的通用公共许可证,填补了GNU Hurd内核的空缺。
因为Linux内核已经十分成熟,目前几乎所有的GNU系统都采用Linux作为操作系统的核心。如果说Richard Stallman创立并推动了自由软件的发展,那么Linus毫不犹豫奉献给GNu的Linux,则把自由软件的发展带入了一个全新的境界。Linux内核是一个极其成功的自由软件,是自由软件中的一个典范。
……
评论交流
共有33人开贴评论 42人参与评论 25人参与打分 查看
发表于:2010-9-13 23:56:00
在china-pub上买过一些书,但是我的处女评确要献给这本书!这本书确实些的相当好,买回来没几天就看完了头3章,受益匪浅,有醍醐灌顶之感,感觉有些地方通了!现在在跳过去看中断这一章,发现写的也不错。赞!不过有个问题不知道作者能否回答,我按照您书上内核编译流程升级内核,我的系统是ubuntu 10.04,想升级到2.6.35.4,编了几个小时的内核,什么都编成功了,但是执行最后一步make install之后,系统重启但内核并没有重启,我查了下,发现似乎执行脚本并没有生成新的文件系统,而且grub文件也没有更新,不知道是怎么回事?bzImage以及各种模块文件都是编好了的
评价等级:







发表于:2009-11-14 10:47:00
才看完这本书,也说说我的看法,因每位读者的情况不同,我作为其中的一个,观点仅供参考:
本书写的最好的两章是:引导过程分析和内存管理,尤其是内存管理,其中可见作者用了很大的心血来总结、归纳和编排结构,我认为在这一部分已经接近情景分析的水准了。
后面几章的水平要明显差一些,不知道是不是作者写完前几章有些疲惫,在行文中明显有记流水账的痕迹,有时遇到需要解释的难点直接跳过,而对于明显不需要解释的点,比如条件语句是判断啥的,大家一眼就能看明白,还要再说一下,明显多余。
总体上说,本书可见是作者的心血凝结,在国内著书的专家中,能够不抄袭,不拷贝已经不易了,特别是有若干部分还有独辟新径之处,在我看来,可算是佳作。
以上观点,仅供参考。
本书写的最好的两章是:引导过程分析和内存管理,尤其是内存管理,其中可见作者用了很大的心血来总结、归纳和编排结构,我认为在这一部分已经接近情景分析的水准了。
后面几章的水平要明显差一些,不知道是不是作者写完前几章有些疲惫,在行文中明显有记流水账的痕迹,有时遇到需要解释的难点直接跳过,而对于明显不需要解释的点,比如条件语句是判断啥的,大家一眼就能看明白,还要再说一下,明显多余。
总体上说,本书可见是作者的心血凝结,在国内著书的专家中,能够不抄袭,不拷贝已经不易了,特别是有若干部分还有独辟新径之处,在我看来,可算是佳作。
以上观点,仅供参考。
| 我要写评论 |
| 查看所有评论交流(共33条) |


点击看大图




加载中...
