第1部分 基础篇 3
第1章 操作系统概述 3
1.1认识操作系统 3
1.1.1操作系统的概念 3
1.1.2操作系统的功能 4
1.2操作系统的发展与现状 5
1.2.1操作系统的发展 5
1.2.2操作系统的分类与现状 7
1.3 Linux操作系统概述 10
1.3.1 Linux的发展背景与历史 10
1.3.2 Linux操作系统的特点 13
1.3.3 Linux操作系统的组成 13
1.3.4 Linux操作系统的版本 14
1.3.5 Linux操作系统的应用与发展 16
习题 17
第2章 Linux操作基础 18
2.1 Linux基本操作 18
2.1.1登录 18
2.1.2修改口令 19
2.1.3退出 20
2.1.4系统的关闭与重启 20
2.2 Linux命令 20
2.2.1命令的格式 21
2.2.2命令的输入与执行 21
2.2.3几个简单命令 22
2.2.4联机帮助 25
2.3 Linux文件操作 25
2.3.1 Linux系统的文件 26
2.3.2 Linux系统的目录 31
2.3.3常用的目录操作命令 33
2.3.4常用的文件操作命令 37
2.4输入/输出重定向 53
2.4.1命令的输入与输出 53
2.4.2输入重定向 54
2.4.3输出重定向 55
2.4.4管道 59
习题 61
第3章 vi文本编辑器 64
3.1 vi文本编辑器概述 64
3.1.1 vi文本编辑器介绍 64
3.1.2 vi的工作模式 65
3.1.3 vi的基本工作流程 66
3.2 vi基本命令 67
3.2.1光标定位与移动 67
3.2.2文本输入与删除 68
3.2.3文本修改与替换 69
3.2.4文本拷贝、粘贴与选择 70
3.2.5撤销与重做 72
3.3 vi常用末行命令 72
3.3.1搜索与替换命令 72
3.3.2文件操作与退出命令 74
3.3.3其他常用命令 74
习题 75
第4章 Linux C编程基础 76
4.1 Linux C编程方法概述 76
4.2 gcc编译基础 77
4.2.1 gcc编译过程 77
4.2.2 gcc命令 79
4.2.3 gcc应用举例 80
4.3 C联机手册 83
习题 84
第2部分 原理篇 87
第5章 进程管理 87
5.1进程 87
5.1.1程序的顺序执行与并发执行 87
5.1.2进程的概念 89
5.1.3进程控制块 90
5.1.4 Linux系统中的进程 91
5.2进程的运行模式 95
5.2.1操作系统的内核 95
5.2.2中断与系统调用 97
5.2.3进程的运行模式 97
5.3进程的描述与组织 98
5.3.1进程的资源 98
5.3.2进程的描述结构 99
5.3.3进程的组织 100
5.4进程控制 101
5.4.1进程控制的功能 101
5.4.2 Linux系统的进程控制 102
5.4.3 Shell命令的执行过程 108
5.5进程调度 109
5.5.1进程调度的基本原理 109
5.5.2 Linux系统的进程调度 110
5.5.3 Linux系统的进程切换 113
5.6进程的互斥与同步 115
5.6.1进程间的制约关系 115
5.6.2信号量同步机制 117
5.6.3 Linux的信号量机制 119
5.6.4死锁问题 119
5.7进程通信 121
5.7.1进程通信的方式 121
5.7.2 Linux信号通信原理 122
5.7.3 Linux管道通信原理 125
5.8线程 125
5.8.1线程的概念 125
5.8.2线程与进程的比较 126
5.8.3内核级线程与用户级线程 126
5.8.4 Linux中的线程 127
习题 128
第6章 存储管理 129
6.1存储管理概述 129
6.1.1内存的分配与回收 129
6.1.2存储地址变换 129
6.1.3内存的保护 132
6.1.4内存的扩充 132
6.2存储管理方案 133
6.2.1分区存储管理 133
6.2.2页式存储管理 135
6.2.3段式存储管理 137
6.2.4段页式存储管理 139
6.3虚拟存储管理 139
6.3.1虚拟存储技术 139
6.3.2页式虚拟存储器原理 140
6.4 Linux的存储管理 143
6.4.1 x86架构的内存访问机制 143
6.4.2 Linux内存管理方案 145
6.4.3进程地址空间的管理 146
6.4.4内存空间的管理与分配 150
6.4.5页面的交换 153
习题 154
第7章 文件管理 156
7.1文件管理技术 156
7.1.1文件与文件系统 156
7.1.2文件的逻辑结构与存取方式 158
7.1.3文件的物理结构与存储方式 159
7.1.4文件的共享与保护 163
7.1.5文件存储空间的管理 164
7.2 Linux文件系统概述 165
7.2.1 Linux文件系统的特点 165
7.2.2 Linux文件系统的结构 165
7.3 Ext文件系统 167
7.3.1 Ext文件的结构 167
7.3.2 Ext文件系统的磁盘布局 173
7.3.3 Ext文件存储分配策略 178
7.4虚拟文件系统 178
7.4.1 VFS的对象 179
7.4.2 VFS对象的关联结构 182
7.4.3 VFS与进程的接口 182
7.4.4 VFS的缓存机制 183
7.4.5文件系统的注册、挂装与卸载 185
7.4.6文件的操作 185
习题 186
第8章 设备管理 188
8.1设备管理概述 188
8.1.1设备管理的功能 188
8.1.2设备的分类 189
8.1.3设备与系统的接口 189
8.1.4 I/O系统的硬件结构 192
8.1.5 I/O系统的软件结构 193
8.2设备管理的相关技术 194
8.2.1中断技术 194
8.2.2缓冲与缓存技术 196
8.2.3 DMA技术 198
8.3 I/O控制方式 199
8.3.1程序I/O方式 200
8.3.2中断I/O方式 200
8.3.3 DMA方式 201
8.3.4通道方式 201
8.4设备的分配与调度 202
8.4.1设备分配的基本方法 202
8.4.2虚拟设备技术 203
8.5设备的驱动 204
8.5.1设备的驱动方式 204
8.5.2驱动程序与中断处理程序 204
8.6 Linux设备管理 205
8.6.1 Linux设备管理综述 205
8.6.2 Linux I/O系统的软件结构 207
8.6.3 Linux的设备管理机制 208
8.6.4字符设备的管理与驱动 209
8.6.5块设备的管理与驱动 211
8.6.6 Linux的中断处理 217
习题 219
第9章 操作系统接口 220
9.1操作系统接口概述 220
9.1.1作业与作业调度 220
9.1.2操作系统的接口 221
9.1.3 Linux系统的接口 222
9.2 Shell命令接口 222
9.2.1 Shell界面的组成 222
9.2.2 Shell的功能 222
9.2.3 Shell的版本 223
9.2.4 Shell的工作流程与原理 224
9.3 X图形窗口接口 225
9.3.1 X Window系统概述 225
9.3.2 X系统的体系结构与工作原理 226
9.3.3 X图形界面的组成 228
9.3.4 X系统的启动与停止 232
9.3.5 Linux桌面系统简介 236
9.4系统调用接口 241
9.4.1系统调用接口概述 241
9.4.2系统调用接口的组成 241
9.4.3系统调用的分类 243
9.4.4系统调用的执行过程 244
习题 246
第3部分 应用篇 249
第10章 Shell程序设计 249
10.1 Shell语言概述 249
10.1.1 Shell语言的特点 249
10.1.2 Shell程序 249
10.1.3 Shell程序的建立与执行 250
10.2 Shell特殊字符 251
10.2.1通配符 251
10.2.2输入/输出重定向与管道符 252
10.2.3命令执行控制符 254
10.2.4命令组合符 255
10.2.5命令替换符 256
10.2.6其他元字符 256
10.2.7元字符的引用 256
10.3 Shell变量 257
10.3.1变量的定义与使用 257
10.3.2变量的作用域 259
10.3.3变量的分类 261
10.3.4环境变量 261
10.3.5特殊变量 264
10.4 Shell表达式 268
10.4.1数字运算表达式 268
10.4.2逻辑测试表达式 269
10.5 Shell控制结构 272
10.5.1条件与条件命令 273
10.5.2分支控制命令 273
10.5.3循环控制命令 275
10.5.4退出循环命令 277
10.5.5退出命令 278
10.6 Shell程序综合举例 278
习题 282
第11章 Linux系统管理 284
11.1系统管理概述 284
11.1.1系统管理工作的内容 284
11.1.2系统管理工具 284
11.1.3 root的权威性与危险性 285
11.2启动与关闭系统 285
11.2.1 Linux系统的初始化机制 285
11.2.2系统的启动与关闭操作 288
11.3用户管理 289
11.3.1用户管理概述 289
11.3.2用户管理的相关文件 291
11.3.3用户管理 293
11.3.4用户组管理 296
11.4文件系统维护 296
11.4.1文件系统的目录结构 296
11.4.2存储设备命名规则 298
11.4.3划分磁盘分区 300
11.4.4建立逻辑卷 301
11.4.5建立文件系统 302
11.4.6挂装文件系统 303
11.4.7拆卸文件系统 305
11.4.8修复文件系统 305
11.5系统备份 305
11.5.1备份策略 306
11.5.2备份命令 306
11.6系统监控 309
11.6.1监视用户的登录 309
11.6.2监控进程的运行 310
11.6.3监视内存的使用 315
11.6.4监视文件系统的使用 315
11.7软件安装 317
11.7.1软件的打包与安装 317
11.7.2 RPM软件包管理工具 318
11.7.3 YUM软件包管理工具 321
习题 322
第12章 网络与通信应用 323
12.1 TCP/IP网络相关概念 323
12.1.1 TCP/IP协议概述 323
12.1.2 IP地址与域名 324
12.1.3协议端口 325
12.1.4客户/服务器软件模型 326
12.2 Linux网络应用技术 327
12.2.1网络测试 327
12.2.2网络查询 329
12.2.3远程执行命令 330
12.2.4文件传输 332
12.2.5即时通信 334
12.3电子邮件 334
12.3.1电子邮件的结构 335
12.3.2电子邮件系统的工作原理 335
12.3.3在Linux中使用邮件 337
习题 339
附录A Linux系统的安装 340
A.1安装准备 340
A.1.1获得安装介质 340
A.1.2确定安装方式 340
A.2在硬盘分区中安装 Linux系统 341
A.2.1安装前准备 341
A.2.2安装过程 341
A.2.3安装后设置 346
A.3在虚拟机中安装Linux系统 349
A.3.1虚拟机技术简介 349
A.3.2安装虚拟机软件 350
A.3.3创建虚拟机 350
A.3.4调整虚拟机设置 351
A.3.5在虚拟机中安装和运行Linux 352
附录B Linux C开发工具简介 355
B.1 Linux C开发环境 355
B.2 Make工具介绍 357
B.2.1 makefile文件 358
B.2.2 make命令 360
B.3调试工具介绍 362
B.3.1 gdb命令 362
B.3.2 gdb的使用 364
参考文献 371