Linux操作系统分析教程
基本信息·出版社:清华大学出版社,北方交通大学出版社 ·页码:308 页 ·出版日期:2004年05月 ·ISBN:9787810822411 ·条形码:9787810822411 ·版本 ...
商家名称 |
信用等级 |
购买信息 |
订购本书 |
|
|
Linux操作系统分析教程 |
|
|
|
Linux操作系统分析教程 |
|
基本信息·出版社:清华大学出版社,北方交通大学出版社
·页码:308 页
·出版日期:2004年05月
·ISBN:9787810822411
·条形码:9787810822411
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:高等学校计算机科学与技术教材
内容简介 《Linux操作系统分析教程》是以Linux作为实例的操作系统分析教程。《Linux操作系统分析教程》对Linux内核2.4版的源代码进行了较全面的分析,既包括对中断机制、进程调度、内存管理、进程间通信、虚拟文件系统、设备驱动程序及网络子系统的分析,也包括对Linux整体结构的把握、Linux的启动过程的分析及Linux独具特色的模块机制的分析与应用等。其中,重点剖析了Linux内核中最基础的部分:进程管理、内存管理及文件管理。《Linux操作系统分析教程》可以作为高校计算机、电子工程和自动控制等相关学科的高年级本科学生“操作系统分析”、“操作系统设计与实现”或“嵌入式系统设计”等课程的教材,也可作为系统程序员、Linux应用开发及嵌入式系统开发人员、系统管理员及对Linux感兴趣的用户的参考书。《Linux操作系统分析教程》对于那些准备进入Linux操作系统内部、阅读Linux内核源代码及在内核级进行程序开发的读者具有非常高的参考价值。
目录 第1章 Linux系统概述
1.1Linux的特征及组成
1.1.1Linux的主要特性
1.1.2Linux的组成
1.2Linux内核的主要组成部分
1.2.1内存管理
1.2.2进程调度
1.2.3设备驱动程序
1.2.4文件系统
1.2.5网络
1.2.6其他
1.3Linux内核分析
1.3.1核心源码的组织
1.3.2Linux内核源代码的组成
1.3.3Linux内核分析方法
练习与思考
第2章 Linux系统的启动
2.1操作系统的启动
2.1.1系统引导过程简介
2.1.2硬盘结构
2.1.3引导扇区
2.2Linux的引导过程
2.2.1Linux系统引导过程分析
2.2.2实模式下的初始化
2.2.3保护模式下的初始化
2.2.4系统初始化
练习与思考
第3章 中断和中断处理
3.1硬件提供的中断机制和约定
3.1.1中断产生的过程
3.1.2中断请求
3.1.3置中断标志位
3.1.4中断处理程序的不可重人性
3.1.5时钟和定时器中断
3.2Linux的中断处理
3.2.1Linux中断处理程序的特色
3.2.2中断的相关数据结构
3.2.3中断向量表IDT的初始化
3.2.4中断请求队列的初始化
3.3Linux2.4的软中断处理机制
3.3.1底半处理
3.3.2与底半处理相关的数据结构
3.3.3任务队列
3.3.4tasklet
3.3.5软中断
3.3.6使用示例
3.3.7讨论
3.4中断处理全过程
3.4.1异常的处理全过程
3.4.2外部设备中断处理的全过程
3.4.3后续处理
练习与思考
第4章 内存管理
4.1存储层次结构和x86存储管理硬件
4.1.1内存管理基本框架
4.1.2地址映射的全过程
4.1.3地址映射的效率分析
4.1.4连续物理区域管理
4.2Linux虚存系统
4.2.1使用虚存的优点
4.2.2Linux虚存的“分页”机制
4.3Linux的内存页表
4.3.1内存页的分配和释放
4.3.2内存映射和需求分页
4.3.3Linux页缓存
4.4内存交换与高速缓存
4.4.1内存交换
4.4.2高速缓存
4.5相关系统工具
4.5.1建立交换空间
4.5.2使用交换空间
4.5.3分配交换空间
4.5.4缓冲区高速缓存的守护进程
练习与思考
第5章 进程管理及进程间通信
5.1Linux进程和线程
5.1.1Linux进程管理的数据结构
5.1.2标识符信息
5.1.3进程状态信息
5.1.4文件信息
5.1.5虚拟内存
5.1.6时间和定时器
5.1.7关于线程
5.1.8会话和进程组
5.2 进程的创建和进程调度
5.2.1进程的创建
5.2.2进程的管理和调度
5.2.3进程的切换
5.3 可执行程序
5.3.1可执行可连接格式
5.3.2脚本文件
5.4 LiFlUX下进程间通信的主要手段
5.4.1信号
5.4.2管道和套接字
5.5 System V的IPC:机制
5.5.1消息队列
5.5.2信号量
5.5.3共享内存
5.5.4相关系统工具
5.6 内核同步机制
5.6.1原子操作和信号量
5.6.2任务队列
5.6.3等待队列和异步信号
5.6.4 Buzz锁
5.6.5信号灯
练习与思考
第6章 硬件和设备驱动程序
6.1 总线
6.1.1总线概述
6.1.2 Linux对PCI总线的支持
6.2 设备访问方式
6.2.1查询与中断
6.2.2直接内存访问
6.2.3内存
6.3 设备驱动程序
6.3.1设备驱动程序的概念
6.3.2设备驱动程序的内存分配
6.3.3设备驱动程序和内核的接口
6.4 编写Linux下的设备驱动程序
6.4.1 IAnux下设备驱动程序的基本结构
6.4.2 Linux系统下的设备驱动程序
练习与思考
第7章 文件系统
7.1 虚拟文件系统
7.1.1虚拟文件系统概述
7.1.2基本对象与方法
7.1.3文件系统的注册、安装与卸载
7.1.4虚拟文件系统的实现函数和数据结构
7.2 高速缓存
7.2.1文件系统分配机制
7.2.2块高速缓存
7.2.3索引节点高速缓存
7.2.4目录高速缓存
7.3 /proe文件系统
7.3.1概述
7.3.2/proc文件系统的注册
7.3.3建立/proc文件系统的超级块
7.3.4/proc文件系统超级块的操作函数集
7.3.5/proc文件的管理
7.3.6/proe文件的默认操作
7.4 EXT2文件系统
7.4.1 EXT2索引节点
7.4.2 EXT2超块
7.4.3 EXT2块组描述符
7.4.4 EXT2目录
7.4.5 EXT2文件系统中数据块的分配和释放
7.4.6日志文件系统
练习与思考
第8章 网络
8.1 网络协议
8.1.1 112P/IP协议概述
8.1.2 112P/IP协议工作原理及数据流
8.2 套接字
8.2.1套接字的类型
8.2.2套接字的基本结构和工作原理
8.2.3套接字的初始化
8.2.4套接字的通信过程
8.3 套接字缓冲区
8.3.1套接字缓冲区操作基本原理
8.3.2套接字缓冲区的数据结构
8.3.3套接字缓冲区提供的函数
8.3.4套接字缓冲区的上层支持例程
8.4 网络设备接口源码
8.4.1 Linux网络接口源码结构
8.4.2网络设备接口
8.4.3网络接口核心
8.4.4网络协议接口
第9章 模块的动态加载和系统配置
9.1模块的动态加载
9.2Linux内核配置系统
第10章 系统调用
10.1系统调用概述
10.2与进程管理相关的系统调用
10.3僵尸进程
10.4与进程管理相关的系统调用实战
10.5为内核增加系统调用实战
第11章 课程设计指导书
11.1Linux启动代码的分析
11.2Linux的fork,exec,wait函数的分析
11.3Linux的消息函数的分析
11.4Linux的调度和时钟中断处理代码的分析
11.5自选课题
附录A Linux核心数据结构
附录B Linux系统调用列表
参考文献
……
序言 2000年10月,由中国计算机学会与清华大学共同主办的第六届“全国操作系统课程教学研讨会”在北京召开,来自全国各高校从事操作系统教学与研究的多名专家、教授交流了各自院校操作系统课程的教学经验与体会,介绍了国外著名大学操作系统课程的教学大纲与实施情况,对操作系统当前的发展和操作系统课程教学方式与方法的改革情况进行了充分的研讨。为了适应信息时代对高素质软件人员的需求,尽快赶上世界最新发展潮流,提高我国各大专院校的操作系统课程的整体教学水平,经过与会专家的集体讨论,会议决定把Linux作为一个重要操作系统在大学课程中开设,并决定在“百花齐放”的基础上,提高操作系统教材的编写水平。
Linux为嵌入式操作系统提供了一个极有吸引力的选择。对于计算机科学教学和科研来说,Linux具有更重要的意义。过去,一般的操作系统教材只讲操作系统的实现原理,学生既觉得抽象又感觉不到操作系统的重要价值。尽管有些书也是以UNIX为实例,但一般市场上出售的UNIX,除了价格问题之外,还不提供其核心程序的源代码,这对学生真正深入了解操作系统造成困难,更谈不上作为操作系统教学和科研的平台。而Linux提供了从内核到上层的所有软件的全部源程序代码,易于对所获得源代码的组织结构、实现原理及实现机制进行比较详细的描述,很适合做教学用操作系统。
本书的组织
本书是以Linux作为实例的操作系统分析教程。第1章介绍Linux的基本概念、LinuX操作系统的组成及Linux内核分析方法。第2章从系统的初始化过程,具体地介绍对Linux内核源码分析的一种方法。第3章介绍Linux核心对中断的处理。第4章叙述Linux如何处理物理内存及虚拟存储技术。第5章描述进程的概念,进程之间及进程与核心之间的通信。第6章讨论Linux核心如何控制系统中的物理设备,具体是对PCI总线及设备的初始化和使用。第7章介绍虚拟文件系统的概念,讨论Linux核心的每种文件系统是如何得到支持的。第8章讨论LintLx如何支持TCP/,IP网络协议。第9章讨论Linux核心是如何仅在需要时动态加载某些模块。第10章讨论用户和系统内核通信的关键的枢纽--系统调用机制。第11章是本课程的课程设计指导书。附录A和附录B则提供有关Linux核心资源及Linux核心数据结构等有用信息。
考虑到Linux版本升级很快,某一版本的大量的源码分析很快就会过时。因此,本书的目标是“导读”,帮助读者对Linux内核有个概括的认识,为读者提供一个Linux如何工作的清晰的印象,而在教学过程中由学生通过自行阅读代码发现对核心算法的描述,让学生体会到认识操作系统真正在工作时的兴奋。在读完此书后再去读Linux内核源代码,会比较容易理解和掌握,这也是本书所希望达到的目标。
Linux内核在不断发展,本书描述的内容是基于2.4.xx版本的。本书写作的时候,流行的Linux发行版本所采用的Linux内核版本最高为2.4.18,而最高的稳定版本是2.6.0。
考虑到计算机专业“操作系统分析与实现”课程的实际情况,本书按教学时数45学时,实验时数16学时进行编写。
文摘 插图: