Linux操作系统分析教程PDF电子书下载
- 电子书积分:12 积分如何计算积分?
- 作 者:骆耀祖主编
- 出 版 社:清华大学出版社;北京交通大学出版社
- 出版年份:2004
- ISBN:7810822411
- 页数:309 页
目录 1
第1章 Linux系统概述 1
1.1 Linux的特征及组成 1
1.1.1 Linux的主要特性 1
1.1.2 Linux的组成 3
1.2 Linux内核的主要组成部分 6
1.2.1 内存管理 7
1.2.2 进程调度 8
1.2.3 设备驱动程序 9
1.2.4 文件系统 9
1.2.5 网络 10
1.2.6 其他 10
1.3 Linux内核分析 11
1.3.1 核心源码的组织 12
1.3.2 Linux内核源代码的组成 12
1.3.3 Linux内核分析方法 14
练习与思考 16
第2章 Linux系统的启动 17
2.1 操作系统的启动 17
2.1.1 系统引导过程简介 17
2.1.2 硬盘结构 18
2.1.3 引导扇区 18
2.2 Linux的引导过程 20
2.2.1 Linux系统引导过程分析 21
2.2.2 实模式下的初始化 22
2.2.3 保护模式下的初始化 26
2.2.4 系统初始化 31
练习与思考 33
第3章 中断和中断处理 34
3.1 硬件提供的中断机制和约定 34
3.1.1 中断产生的过程 35
3.1.2 中断请求 36
3.1.3 置中断标志位 36
3.1.4 中断处理程序的不可重入性 36
3.1.5 时钟和定时器中断 37
3.2 Linux的中断处理 39
3.2.1 Linux中断处理程序的特色 39
3.2.2 中断的相关数据结构 40
3.2.3 中断向量表IDT的初始化 42
3.2.4 中断请求队列的初始化 46
3.3.1 底半处理 48
3.3 Linux 2.4的软中断处理机制 48
3.3.2 与底半处理相关的数据结构 49
3.3.3 任务队列 51
3.3.4 tasklet 52
3.3.5 软中断 53
3.3.6 使用示例 54
3.3.7 讨论 57
3.4 中断处理全过程 60
3.4.1 异常的处理全过程 61
3.4.2 外部设备中断处理的全过程 61
3.4.3 后续处理 62
练习与思考 63
4.1 存储层次结构和x86存储管理硬件 64
4.1.1 内存管理基本框架 64
第4章 内存管理 64
4.1.2 地址映射的全过程 65
4.1.3 地址映射的效率分析 68
4.1.4 连续物理区域管理 71
4.2 Linux虚存系统 73
4.2.1 使用虚存的优点 73
4.2.2 Linux虚存的“分页”机制 74
4.3 Linux的内存页表 75
4.3.1 内存页的分配和释放 75
4.3.2 内存映射和需求分页 77
4.3.3 Linux页缓存 78
4.4 内存交换与高速缓存 79
4.4.1 内存交换 79
4.5 相关系统工具 81
4.4.2 高速缓存 81
4.5.1 建立交换空间 82
4.5.2 使用交换空间 82
4.5.3 分配交换空间 83
4.5.4 缓冲区高速缓存的守护进程 83
练习与思考 84
第5章 进程管理及进程间通信 85
5.1 Linux进程和线程 85
5.1.1 Linux进程管理的数据结构 85
5.1.2 标识符信息 87
5.1.3 进程状态信息 87
5.1.4 文件信息 88
5.1.5 虚拟内存 89
5.1.7 关于线程 90
5.1.6 时间和定时器 90
5.1.8 会话和进程组 91
5.2 进程的创建和进程调度 91
5.2.1 进程的创建 91
5.2.2 进程的管理和调度 92
5.2.3 进程的切换 96
5.3 可执行程序 98
5.3.1 可执行可连接格式 98
5.3.2 脚本文件 100
5.4 Linux下进程间通信的主要手段 100
5.4.1 信号 101
5.4.2 管道和套接字 102
5.5 System V的IPC机制 104
5.5.1 消息队列 104
5.5.2 信号量 105
5.5.3 共享内存 107
5.5.4 相关系统工具 108
5.6 内核同步机制 108
5.6.1 原子操作和信号量 108
5.6.2 任务队列 110
5.6.3 等待队列和异步信号 111
5.6.4 Buzz锁 115
5.6.5 信号灯 117
练习与思考 118
第6章 硬件和设备驱动程序 120
6.1 总线 120
6.1.1 总线概述 120
6.1.2 Linux对PCI总线的支持 121
6.2.1 查询与中断 122
6.2 设备访问方式 122
6.2.2 直接内存访问 124
6.2.3 内存 124
6.3 设备驱动程序 125
6.3.1 设备驱动程序的概念 125
6.3.2 设备驱动程序的内存分配 126
6.3.3 设备驱动程序和内核的接口 127
6.4 编写Linux下的设备驱动程序 131
6.4.1 Linux下设备驱动程序的基本结构 131
6.4.2 Linux系统下的设备驱动程序 133
练习与思考 137
7.1 虚拟文件系统 139
7.1.1 虚拟文件系统概述 139
第7章 文件系统 139
7.1.2 基本对象与方法 140
7.1.3 文件系统的注册、安装与卸载 141
7.1.4 虚拟文件系统的实现函数和数据结构 144
7.2 高速缓存 146
7.2.1 文件系统分配机制 147
7.2.2 块高速缓存 148
7.2.3 索引节点高速缓存 149
7.2.4 目录高速缓存 149
7.3 /proc文件系统 150
7.3.1 概述 150
7.3.2 /proc文件系统的注册 150
7.3.3 建立/proc文件系统的超级块 151
7.3.4 /proc文件系统超级块的操作函数集 153
7.3.5 /proc文件的管理 155
7.3.6 /proc文件的默认操作 160
7.4 EXT2文件系统 169
7.4.1 EXT2索引节点 170
7.4.2 EXT2超块 171
7.4.3 EXT2块组描述符 172
7.4.4 EXT2目录 172
7.4.5 EXT2文件系统中数据块的分配和释放 173
7.4.6 日志文件系统 174
练习与思考 175
第8章 网络 177
8.1 网络协议 177
8.1.1 TCP/IP协议概述 177
8.1.2 TCP/IP协议工作原理及数据流 178
8.2.1 套接字的类型 180
8.2 套接字 180
8.2.2 套接字的基本结构和工作原理 181
8.2.3 套接字的初始化 183
8.2.4 套接字的通信过程 193
8.3 套接字缓冲区 198
8.3.1 套接字缓冲区操作基本原理 199
8.3.2 套接字缓冲区的数据结构 199
8.3.3 套接字缓冲区提供的函数 200
8.3.4 套接字缓冲区的上层支持例程 202
8.4 网络设备接口源码 203
8.4.1 Linux网络接口源码结构 203
8.4.2 网络设备接口 205
8.4.3 网络接口核心 207
8.4.4 网络协议接口 208
8.5.1 接收IP数据包 212
8.4.5 Socket层和用户的衔接 212
8.5 IP层 212
8.5.2 发送IP数据包 213
8.5.3 数据包的分段和重组 213
8.5.4 地址解析协议 214
8.5.5 IP路由 215
练习与思考 217
第9章 模块的动态加载和系统配置 219
9.1 模块的动态加载 219
9.1.1 模块的加载 220
9.1.2 模块的卸载 221
9.1.3 内核模块的管理 222
9.2.1 配置系统的基本结构 223
9.2.2 Makefile 223
9.2 Linux内核配置系统 223
9.2.3 配置文件 228
9.2.4 配置实例 231
练习与思考 233
第10章 系统调用 235
10.1 系统调用概述 235
10.1.1 系统调用过程 235
10.1.2 系统调用的进入 236
10.1.3 系统调用总控程序 237
10.1.4 一个简单的系统调用例子 238
10.2 与进程管理相关的系统调用 242
10.2.1 getpid 242
10.2.2 fork 243
10.2.3 exit 244
10.2.4 exit和exit 245
10.2.5 其他一些常见的系统调用 247
10.3 僵尸进程 247
10.3.1 wait 248
10.3.2 waitpid 250
10.3.3 exec系统调用 252
10.3.4 稍稍深入 252
10.4 与进程管理相关的系统调用实战 256
10.4.1 Mini Shell 256
10.4.2 Daemon进程 259
10.5 为内核增加系统调用实战 261
10.5.1 增加系统调用的两种方法 261
10.5.2 相关内核源代码分析 262
10.5.3 对内核源码的修改 263
练习与思考 265
第11章 课程设计指导书 266
11.1 Linux启动代码的分析 267
11.2 Linux的fork,exec,wait函数的分析 269
11.3 Linux的消息函数的分析 273
11.4 Linux的调度和时钟中断处理代码的分析 276
11.5 自选课题 279
11.5.1 Linux的文件系统 279
11.5.2 Linux的存储管理 279
11.5.3 Linux的设备管理 279
11.5.4 Linux进程间通信 280
附录A Linux核心数据结构 281
附录B Linux系统调用列表 302
参考文献 309
- 《水面舰艇编队作战运筹分析》谭安胜著 2009
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《管理信息系统习题集》郭晓军 2016
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《激光加工实训技能指导理实一体化教程 下》王秀军,徐永红主编;刘波,刘克生副主编 2017
- 《AutoCAD 2019 循序渐进教程》雷焕平,吴昌松,陈兴奎主编 2019
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《分析化学》陈怀侠主编 2019
- 《药剂学实验操作技术》刘芳,高森主编 2019
- 《Photoshop CC 2018基础教程》温培利,付华编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《大学化学实验》李爱勤,侯学会主编 2016