linux内核标准教程,Linux2.6内核标准教程.doc

Linux 2.6内核标准教程 前言

前言

写作背景

自由、开放的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架构提供支持的;最后讲解了物理页框的分配、回收过程,并对内核地址空间的划分和用途进行分析。

第4章主要讲解Linux内核中进程、线程的概念,对其所涉及的关键数据结构进行了讲解,分析了Linux内核中进程组织形式和它们各自的用途,对进程的创建过程进行了详细的讨论和分析;然后详细介绍2.6版本内核中新采用的O(1)复杂度调度器的基本思想和实现细节;最后对系统中的第一个进程(0号进程)的创建过程进行详细分析。

第5章所讲解的中断、异常机制是计算机系统的核心,系统调用和时间度量都是建立在该机制之上的。本章首先介绍了IA32体系结构的中断、异常机制,然后讲解了中断描述符表的初始化过程以及中断、异常处理过程中计算机软、硬件的工作状态和处理方法,最后讲解中断延迟问题。

第6章详细讲解了内核时间度量的架构和需要的硬件支持,并对时钟中断的处理过程进行分析,最后讲解Linux内核软定时器的工作原理和实现细节。

第7章首先讲解系统调用接口的作用和访问手段,然后讲解系统调用的工作机制和参数传递问题,并介绍如何向内核添加系统调用,最后讲解IA32体系架构引入的快速系统调用指令和Linux内核对其提供的支持。

第8章主要讲解Linux内核各种模块所使用的同步机制,首先讲解同步的基本原理,然后对构建在基本同步原理之上的同步机制进行了详细的讲解。

参与本书编写的人员

本书内容来源于华清远见嵌入式培训中心( HYPERLINK "/" /)的培训资料,是多年培训和研发经验的总结。本书主要由河秦、王洪涛负责编写,同时参与编写和资料整理的还有毛彦超、王瑞、史志宇、石玉龙、刘国明、李、武凡琦、陈群星、罗璋、赵炳和、崔海峰、孙琼、田旭、范文庆、钟金鑫、王欣、张曦文、尚玉珊、张丛辉、王

共计8个压缩包 本压缩包是:part06.rar 出版社:人民邮电出版社 ·页码:368 页 ·出版日期:2008年 ·ISBN:7115187118/9787115187116 ·条形码:9787115187116 ·包装版本:1版 ·装帧:平装 ·开本:16 ·中文:中文 ·附带品描述:附光盘一张 ·市场价格:49元 内容简介 Linux内核Linux操作系统中最核心的部分,用于实现对硬件部件的编程控制和接口操作。《Linux2.6内核标准教程》深入、系统地讲解了 Linux内核的工作原理,对Linux内核的核心组件逐一进行深入讲解。 全书共8章,首先讲解Linux系统的引导过程;然后对Linux内核的3大核心模块——内存管理、进程管理、中断和异常处理进行了深入的分析; 在此基础上,对时间度量、系统调用进行了分析和讨论;最后讲解了Linux内核中常见的同步机制,使读者掌握每处理器变量和RCU这两种新的 同步机制。 《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学 习操作系统的参考书。 引用: 目录 第1章 Linux内核学习基础 1 1.1 为什么研究Linux内核 2 1.1.1 Linux的历史来源 2 1.1.2 Linux的发展现状 3 1.1.3 Linux的前景展望 3 1.2 选择什么版本进行研究 3 1.3 内核基本结构 4 1.3.1 内核在操作系统中的地位 4 1.3.2 Linux 2.6内核源代码目录树简介 5 1.3.3 Linux 2.6内核的新特性 8 1.4 如何阅读本书 9 1.4.1 内核探索工具 10 1.4.2 推荐阅读方法 12 第2章 引导过程分析 14 2.1 内核镜像的构建过程 15 2.1.1 编译内核的步骤及分析 15 2.1.2 内核镜像构建过程分析 16 2.2 系统引导过程分析 18 2.2.1 傀儡引导扇区 18 2.2.2 探测系统资源 21 2.2.3 解压内核镜像 35 2.2.4 进入保护模式 40 2.2.5 系统最终初始化 47 2.3 系统引导过程总结 47 第3章 内存管理 50 3.1 基础知识 51 3.1.1 存储器地址 51 3.1.2 分段机制 52 3.1.3 分页机制 59 3.2 内核页表的初始化过程 65 3.2.1 启用分页机制 65 3.2.2 构建内核页表 68 3.3 物理内存的描述方法 76 3.3.1 内存节点 77 3.3.2 内存区域 81 3.3.3 物理页框 85 3.4 物理内存的初始化过程 86 3.4.1 探测系统物理内存 87 3.4.2 初始化内存分配器 89 3.5 物理内存的分配与回收 101 3.5.1 伙伴分配算法 101 3.5.2 对象缓冲技术 103 3.6 内核地址空间 105 3.6.1 常规映射地址空间 105 3.6.2 固定映射地址空间 107 3.6.3 长久内核映射空间 109 3.6.4 临时内核映射空间 116 3.6.5 非连续映射地址空间 119 第4章 进程管理 128 4.1 进程与线程的概念 129 4.1.1 程序与进程 129 4.1.2 进程与线程 129 4.2 进程描述符 131 4.2.1 进程标识符 132 4.2.2 进程的状态 132 4.2.3 进程上下文 134 4.2.4 当前进程 139 4.3 进程的组织形式 143 4.3.1 进程标识符构成的哈希表 143 4.3.2 所有进程构成的双向链表 148 4.3.3 执行态进程组成的运行队列 149 4.3.4 阻塞态进程组成的等待队列 152 4.4 进程的创建过程 155 4.4.1 进程创建的接口函数 156 4.4.2 进程创建的处理过程 162 4.5 进程调度算法 177 4.5.1 进程的分类 178 4.5.2 进程优先级 178 4.5.3 时间片分配 181 4.5.4 进程调度时机 182 4.6 进程切换过程分析 183 4.6.1 选取合适进程 183 4.6.2 完成上下文切换 184 4.7 空闲进程的初始化 187 4.7.1 空闲进程的内核态栈 187 4.7.2 空闲进程的内存描述符 188 4.7.3 空闲进程的硬件上下文 190 4.7.4 空闲进程的任务状态段 190 第5章 中断和异常 192 5.1 基础知识 193 5.1.1 中断和异常的定义 193 5.1.2 中断和异常的分类 193 5.1.3 中断和异常的对比 194 5.2 处理机制 195 5.2.1 IA32架构下的处理机制 195 5.2.2 Linu
共计8个压缩包 本压缩包是:part08.rar (哈哈终于全上传完了) 出版社:人民邮电出版社 ·页码:368 页 ·出版日期:2008年 ·ISBN:7115187118/9787115187116 ·条形码:9787115187116 ·包装版本:1版 ·装帧:平装 ·开本:16 ·中文:中文 ·附带品描述:附光盘一张 ·市场价格:49元 内容简介 Linux内核Linux操作系统中最核心的部分,用于实现对硬件部件的编程控制和接口操作。《Linux2.6内核标准教程》深入、系统地讲解了 Linux内核的工作原理,对Linux内核的核心组件逐一进行深入讲解。 全书共8章,首先讲解Linux系统的引导过程;然后对Linux内核的3大核心模块——内存管理、进程管理、中断和异常处理进行了深入的分析; 在此基础上,对时间度量、系统调用进行了分析和讨论;最后讲解了Linux内核中常见的同步机制,使读者掌握每处理器变量和RCU这两种新的 同步机制。 《Linux2.6内核标准教程》适合Linux内核爱好者、Linux驱动开发人员、Linux系统工程师参考使用,也可以作为计算机及相关专业学生深入学 习操作系统的参考书。 引用: 目录 第1章 Linux内核学习基础 1 1.1 为什么研究Linux内核 2 1.1.1 Linux的历史来源 2 1.1.2 Linux的发展现状 3 1.1.3 Linux的前景展望 3 1.2 选择什么版本进行研究 3 1.3 内核基本结构 4 1.3.1 内核在操作系统中的地位 4 1.3.2 Linux 2.6内核源代码目录树简介 5 1.3.3 Linux 2.6内核的新特性 8 1.4 如何阅读本书 9 1.4.1 内核探索工具 10 1.4.2 推荐阅读方法 12 第2章 引导过程分析 14 2.1 内核镜像的构建过程 15 2.1.1 编译内核的步骤及分析 15 2.1.2 内核镜像构建过程分析 16 2.2 系统引导过程分析 18 2.2.1 傀儡引导扇区 18 2.2.2 探测系统资源 21 2.2.3 解压内核镜像 35 2.2.4 进入保护模式 40 2.2.5 系统最终初始化 47 2.3 系统引导过程总结 47 第3章 内存管理 50 3.1 基础知识 51 3.1.1 存储器地址 51 3.1.2 分段机制 52 3.1.3 分页机制 59 3.2 内核页表的初始化过程 65 3.2.1 启用分页机制 65 3.2.2 构建内核页表 68 3.3 物理内存的描述方法 76 3.3.1 内存节点 77 3.3.2 内存区域 81 3.3.3 物理页框 85 3.4 物理内存的初始化过程 86 3.4.1 探测系统物理内存 87 3.4.2 初始化内存分配器 89 3.5 物理内存的分配与回收 101 3.5.1 伙伴分配算法 101 3.5.2 对象缓冲技术 103 3.6 内核地址空间 105 3.6.1 常规映射地址空间 105 3.6.2 固定映射地址空间 107 3.6.3 长久内核映射空间 109 3.6.4 临时内核映射空间 116 3.6.5 非连续映射地址空间 119 第4章 进程管理 128 4.1 进程与线程的概念 129 4.1.1 程序与进程 129 4.1.2 进程与线程 129 4.2 进程描述符 131 4.2.1 进程标识符 132 4.2.2 进程的状态 132 4.2.3 进程上下文 134 4.2.4 当前进程 139 4.3 进程的组织形式 143 4.3.1 进程标识符构成的哈希表 143 4.3.2 所有进程构成的双向链表 148 4.3.3 执行态进程组成的运行队列 149 4.3.4 阻塞态进程组成的等待队列 152 4.4 进程的创建过程 155 4.4.1 进程创建的接口函数 156 4.4.2 进程创建的处理过程 162 4.5 进程调度算法 177 4.5.1 进程的分类 178 4.5.2 进程优先级 178 4.5.3 时间片分配 181 4.5.4 进程调度时机 182 4.6 进程切换过程分析 183 4.6.1 选取合适进程 183 4.6.2 完成上下文切换 184 4.7 空闲进程的初始化 187 4.7.1 空闲进程的内核态栈 187 4.7.2 空闲进程的内存描述符 188 4.7.3 空闲进程的硬件上下文 190 4.7.4 空闲进程的任务状态段 190 第5章 中断和异常 192 5.1 基础知识 193 5.1.1 中断和异常的定义 193 5.1.2 中断和异常的分类 193 5.1.3 中断和异常的对比 194 5.2 处理机制 195 5.2.1 IA32架构下的处理机制 195
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值