当前位置:首页 > 工业技术
操作系统教程  原理·应用·开发·系统·网络管理  第2版
操作系统教程  原理·应用·开发·系统·网络管理  第2版

操作系统教程 原理·应用·开发·系统·网络管理 第2版PDF电子书下载

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:陆松年主编;薛质,潘理,翁亮等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2006
  • ISBN:7121021390
  • 页数:424 页
图书介绍:本书详细阐述了操作系统的基本原理、概念和应用,全书以UNIX为主线进行讲解,而且还对 Windows 2000/XP、嵌入式Linux系统进行了全面的分析和介绍。本书共分3篇:第1篇介绍操作系统的基本原理及较常用的操作系统实例,如UNIX、Linux、Windows 200/XP/2003等;第2篇介绍在UNIX和嵌入式Linux系统下的应用开发工具及开发技术;第3篇介绍UNIX系统管理和UNIX网络系统管理,如TCP/IP配置、WWW服务器的配置等。本书既可作为高等院校计算机科学与应用专业的教材,也可以作为电子工程、通信工程、自控、信息管理类等非计算机专业的教材和教学参考书,对于计算机软件开发人员、系统和网络管理人员,也是一本很好的参考书。
《操作系统教程 原理·应用·开发·系统·网络管理 第2版》目录

第1部分 原理篇 2

第1章 操作系统概论 2

1.1 什么是操作系统 2

1.2 操作系统的发展历史 3

1.2.1 早期的计算机和人工操作方式 3

1.2.2 脱机输入/输出和批处理系统 4

1.2.3 缓冲、中断和DMA技术 4

1.2.4 SPOOLING 5

1.2.5 多道程序设计 6

1.3 现代操作系统类型 7

1.3.1 分时系统 7

1.3.2 实时操作系统 8

1.3.3 微机操作系统 8

1.3.4 多处理机、分布式和网络操作系统 10

1.4 操作系统的概念、特征和功能 11

1.4.1 作业和进程 11

1.4.2 操作系统的特征 11

1.4.3 操作系统的功能 12

1.5 UNIX操作系统概述 14

1.5.1 UNIX系统历史 14

1.5.2 UNIX系统特点 15

1.5.3 UNIX系统基本结构 16

习题1 17

第2章 存储管理 18

2.1 存储管理基础 18

2.1.1 虚拟地址与物理地址 18

2.1.2 地址定位方式 18

2.2 基本存储管理方法 20

2.2.1 单一连续区存储管理 20

2.2.2 固定分区存储管理 21

2.3 可变分区存储管理 22

2.3.1 空闲存储区表 22

2.3.2 首次适应法 23

2.3.3 循环首次适应法 25

2.3.4 最佳适应算法 25

2.3.5 最差适应法 26

2.3.6 多重分区 26

2.4 内存扩充技术 26

2.4.1 覆盖 26

2.4.2 交换技术 27

2.4.3 虚拟存储器 28

2.5 纯分页的存储管理 29

2.5.1 分页存储管理的基本思想 29

2.5.2 地址变换 30

2.5.3 联想存储器和快表 30

2.5.4 空闲内存页的管理 31

2.6 请求分页系统 32

2.6.1 请求分页的基本原理 32

2.6.2 页面淘汰 32

2.7 段式存储管理 35

2.8 段页式存储管理 36

2.9 Linux存储管理 37

2.9.1 Linux存储管理的思想及特点 37

2.9.2 Linux中的页表 38

2.9.3 页面的分配和回收 38

2.9.4 存储映射与请求分页 40

2.9.5 页交换进程与页面的换入换出 41

习题2 42

第3章 进程管理 43

3.1 进程概述 43

3.1.1 进程的概念 43

3.1.2 进程的组成 43

3.1.3 进程的状态及其变化 44

3.2 进程控制块 45

3.3 调度 50

3.3.1 调度概述 50

3.3.2 进程调度策略 51

3.3.3 进程调度算法 51

3.4 UNIX系统的进程调度 54

3.4.1 进程的切换调度算法 54

3.4.2 切换调度程序 56

3.4.3 进程的对换调度 57

3.5 进程的控制 58

3.5.1 进程的挂起 58

3.5.2 UNIX系统中的进程睡眠和唤醒 58

3.5.3 进程的终止和等待终止 61

3.6 进程的创建和图像改换 62

3.6.1 进程的创建 62

3.6.2 进程图像的改换 63

3.7 线程 64

3.7.1 进程和线程 65

3.7.2 多线程 65

3.7.3 线程的状态与功能 66

3.7.4 用户级和核心级线程 67

3.8 Linux进程管理 69

3.8.1 Linux进程结构 69

3.8.2 进程调度 71

3.8.3 进程使用的虚拟内存 73

3.8.4 创建进程 73

3.8.5 Linux的线程 74

习题3 75

第4章 进程通信 77

4.1 进程的同步与互斥 77

4.1.1 同步与互斥的概念 77

4.1.2 临界段问题 77

4.2 进程间互斥控制方法 78

4.2.1 锁的表示和操作 78

4.2.2 锁的安全控制 78

4.2.3 用纯软件实现进程的互斥 80

4.3 信号灯和Wait、Signal操作 82

4.4 信号灯的应用 83

4.4.1 利用信号灯实现互斥 83

4.4.2 阻塞/唤醒协议 84

4.4.3 两个进程间的同步 85

4.4.4 生产者和消费者问题 86

4.4.5 读者/写者问题 87

4.5 进程间的数据通信 88

4.5.1 消息通信 88

4.5.2 共享存储区 88

4.5.3 管道通信 89

4.6 软中断和信号机构 90

4.6.1 信号的产生与类型 90

4.6.2 信号的处理方式及设置 91

4.6.3 信号的传送 92

4.7 死锁 93

4.7.1 产生死锁的原因 93

4.7.2 产生死锁的条件 94

4.7.3 死锁的预防 95

4.7.4 死锁的避免 96

4.7.5 死锁的检测 97

4.7.6 死锁的解除 98

4.8 Linux进程间通信 99

4.8.1 信号 99

4.8.2 管道 101

4.8.3 IPC机制 102

习题4 104

第5章 设备管理 106

5.1 引言 106

5.1.1 设备的概念和分类 106

5.1.2 I/O设备控制与驱动 107

5.1.3 设备管理的设计要求和任务 108

5.2 操作系统与中断处理 108

5.2.1 中断的基本概念 108

5.2.2 中断的类型 109

5.2.3 中断的响应和实现过程 111

5.2.4 中断处理程序和驱动程序 111

5.2.5 中断的返回与恢复 112

5.3 操作系统与时钟系统 113

5.3.1 时钟的概念 113

5.3.2 UNIX系统中的时钟管理 113

5.4 操作系统对I/O操作的控制 114

5.4.1 I/O设备的资源分配 114

5.4.2 I/O通道技术 115

5.4.3 I/O缓冲技术 115

5.4.4 设备的驱动 116

5.5 设备管理的数据结构 116

5.5.1 设备控制表 116

5.5.2 设备开关表 117

5.6 磁盘调度 118

5.6.1 物理特性 118

5.6.2 磁盘调度算法 118

5.6.3 系统设计应考虑的几个问题 120

5.7 UNIX系统V的设备管理 120

5.7.1 块设备管理的主要数据结构 121

5.7.2 缓冲区管理 122

5.7.3 块设备管理 126

5.7.4 字符设备管理 128

5.8 设备分配 129

5.8.1 设备分配方式 130

5.8.2 设备分配的原则 130

5.9 Linux的设备管理 131

5.9.1 概述 131

5.9.2 设备驱动器与内核的接口 132

5.9.3 网络设备的管理 134

习题5 135

第6章 文件系统 136

6.1 概述 136

6.1.1 文件的术语 136

6.1.2 文件的操作 137

6.1.3 文件的组织和存取 137

6.1.4 文件系统结构 140

6.2 文件目录 141

6.2.1 目录的内容 141

6.2.2 目录的结构 142

6.2.3 存取权限 143

6.2.4 并发存取控制 143

6.3 文件存储资源分配 144

6.4 文件的系统调用 145

6.4.1 文件的创建、打开、关闭和取消 146

6.4.2 文件的读/写 148

6.4.3 调整文件读/写位置lseek 149

6.4.4 创建任何类型文件mknod 149

6.4.5 其他的文件系统调用 150

6.5 文件的标准子例程 151

6.5.1 标准I/O的概念 151

6.5.2 流文件的打开和关闭 152

6.5.3 流文件的读写 153

6.5.4 调整和获取流文件的读写位置 154

6.5.5 格式输入与输出 154

6.5.6 流的单字符I/O操作 155

6.5.7 行的输入与输出 156

6.5.8 存储区中的格式转化 156

6.5.9 程序的执行 156

6.6 UNIX文件系统的内部结构 157

6.6.1 索引节点 157

6.6.2 文件索引结构 157

6.6.3 目录结构 159

6.6.4 打开文件结构 160

6.6.5 文件系统存储资源管理 162

6.7 管道文件和管道通信 166

6.7.1 管道通信概念 166

6.7.2 管道文件 166

6.7.3 管道的读写和关闭 167

6.7.4 有名管道 168

6.8 Linux文件系统 170

6.8.1 虚拟文件系统 170

6.8.2 Ext2文件系统 174

6.8.3 Ext3文件系统 177

习题6 177

第7章 Windows操作系统 179

7.1 Windows操作系统发展历程 179

7.1.1 Windows的开发过程及历史 179

7.1.2 Windows主要版本的特点 179

7.2 Windows 2000/XP 181

7.2.1 系统体系结构 181

7.2.2 存储系统 184

7.2.3 进程、线程及处理器管理 190

7.2.4 I/O系统 194

7.2.5 文件系统 197

7.2.6 网络系统 200

7.3 Windows 2003 204

7.3.1 系统概述 204

7.3.2 系统功能更新 205

7.4 基于Windows的企业网规划与构建 209

7.4.1 活动目录规划 209

7.4.2 组策略规划 212

7.4.3 安全管理规划 214

7.5 小结 216

习题7 216

第8章 分布式和网络操作系统 217

8.1 分布式操作系统概述 217

8.2 网络通信机制 220

8.3 网络同步 222

8.4 网络操作系统 223

习题8 224

第2部分 应用和开发篇 226

第9章 UNIX使用基础 226

9.1 登录和退出系统 226

9.2 Shell基础 227

9.2.1 Shell的家族 227

9.2.2 简单命令和命令表 227

9.2.3 标准输入和标准输出 228

9.2.4 输入/输出转向 228

9.2.5 后台命令与后台进程 229

9.2.6 管道 230

9.2.7 特殊字符 230

9.3 文件系统基本知识 231

9.3.1 文件的类型 231

9.3.2 目录结构 232

9.3.3 文件存取控制模式 232

9.3.4 目录存取方式 233

9.4 UNIX文件系统结构 233

9.4.1 根文件系统结构 234

9.4.2 /usr文件系统 234

习题9 235

第10章 UNIX实用程序 236

10.1 目录操作命令 236

10.1.1 显示工作目录(pwd命令) 236

10.1.2 改变工作目录(cd命令) 236

10.1.3 列目录内容(ls命令) 236

10.1.4 创建新目录(mkdir命令) 237

10.1.5 删除目录项(rmdir命令) 237

10.2 文件操作命令 237

10.2.1 复制文件(cp命令) 237

10.2.2 移动或重新命名文件(mv命令) 238

10.2.3 删除文件(rm命令) 238

10.2.4 文件的链接(ln命令) 238

10.2.5 符号链接(ln-s命令) 238

10.2.6 报告两个文件的差别(diff命令) 239

10.2.7 推测文件的类型(file命令) 240

10.2.8 查找文件(find命令) 240

10.2.9 改变文件的属主(chown命令) 241

10.2.10 改变文件的存取权限(chmod命令) 241

10.2.11 设置文件创建方式屏蔽码(umask命令) 242

10.2.12 存取DOS文件命令 242

10.3 显示和打印命令 243

10.3.1 回应命令行上的参数(echo命令) 243

10.3.2 连接并显示文件(cat命令) 243

10.3.3 分页显示(more命令和pg命令) 243

10.3.4 显示文件的头部(head命令)和尾部(tail命令) 244

10.3.5 打印文件(lp命令) 244

10.3.6 查看打印作业状态(lpstat命令) 245

10.3.7 取消一个打印作业(cancel命令) 245

10.3.8 格式化打印文件(pr命令) 245

10.3.9 卸出文件(od命令) 245

10.4 过滤器 246

10.4.1 正则表达式 246

10.4.2 排序或合并文件(sort命令) 248

10.4.3 抽取指定模式的行(grep命令) 249

10.4.4 流编辑程序(sed命令) 250

10.4.5 模式扫描和处理语言(awk) 251

10.4.6 裁剪指定的列(cut命令) 252

10.4.7 组合数据列(paste命令) 252

10.4.8 建立“三通”(tee命令) 253

10.5 设备操作 253

10.5.1 显示或设置日期和时间(date命令) 253

10.5.2 显示磁盘空间(df命令) 254

10.5.3 显示磁盘使用情况(du命令) 254

10.5.4 显示或设置终端参数(stty命令) 254

10.5.5 磁带归档(tar命令) 255

10.6 用户信息与进程控制 256

10.6.1 获取用户信息 256

10.6.2 显示进程状态(ps命令) 256

10.6.3 挂起一段时间(sleep命令) 257

10.6.4 统计一个作业的执行时间(time命令) 257

10.6.5 等待进程完成(wait命令) 257

10.6.6 杀死一个进程(kill命令) 257

10.6.7 忽略挂起和退出方法执行(nohup命令) 257

10.6.8 设置命令的执行环境(env命令) 258

10.7 压缩和解压缩 258

10.7.1 compress 258

10.7.2 zip 258

10.7.3 gzip 259

10.7.4 pack 260

10.8 其他命令 260

10.8.1 联机手册(man命令) 260

10.8.2 检查拼写错误(spell命令) 261

10.8.3 文件加密crypt命令和des命令 261

10.8.4 规范化C程序格式(cb命令) 261

习题10 262

第11章 软件开发工具 263

11.1 文本编辑器vi 263

11.1.1 vi概要 263

11.1.2 屏幕编辑命令 264

11.1.3 底行命令 268

11.1.4 在vi程序中执行Shell命令 271

11.2 C编译系统 272

11.2.1 C编译基本过程 272

11.2.2 预处理程序 273

11.2.3 编译程序 275

11.2.4 汇编程序 275

11.2.5 连接/装入程序 275

11.2.6 一个使用cc的综合例子 277

11.3 库的维护 277

11.3.1 库的概念 277

11.3.2 库的维护 278

11.3.3 动态库 279

11.4 维护程序的程序(Make) 280

11.4.1 Make使用初步 280

11.4.2 Make的内部规则 282

11.4.3 Make中的宏 283

11.4.4 用Make维护库 284

11.4.5 一个综合例子 285

11.4.6 Make命令选项和参数 287

11.5 调试程序 288

11.5.1 调用sdb 288

11.5.2 sdb的调试命令 288

11.5.3 删除调试信息strip 290

11.6 源代码控制系统(SCCS) 290

11.6.1 创建SCCS的初始版本 290

11.6.2 提取一个版本 291

11.6.3 建立一个新版本 292

11.6.4 显示SCCS文件的历史 292

11.6.5 SCCS的版本号结构 292

11.6.6 ID关键字 293

11.6.7 其他的SCCS的命令 294

11.7 其他的软件开发工具 294

11.7.1 C程序检查器Lint 294

11.7.2 词法分析器和语法分析器 294

习题11 295

第12章 UNIX通信与环球网WWW 296

12.1 检查计算机的连接情况 296

12.2 获取远程用户信息 296

12.2.1 显示谁在本地计算机登录(rwho) 296

12.2.2 显示远程用户的信息(finger) 297

12.2.3 用户名目录服务(whois) 297

12.3 用户间通话 297

12.3.1 给用户发信息(write) 297

12.3.2 广播式的消息传送工具(Wall) 298

12.3.3 远程用户对话(talk) 298

12.4 远程登录和执行 298

12.4.1 基于UNIX系统的远程登录(RLogin) 299

12.4.2 通用的远程登录(telnet) 299

12.4.3 远程Shell(RSH) 299

12.5 远程文件拷贝和传输 300

12.5.1 远程文件拷贝(RCP) 300

12.5.2 文件传输(FTP) 301

12.6 环球网WWW和浏览器 302

12.6.1 超文本和超媒体 303

12.6.2 超文本传输协议HTTP 303

12.6.3 统一资源定位器URL 303

12.6.4 超文本标记语言HTML 304

12.6.5 Form与CGI 305

12.6.6 网站设计语言 305

12.6.7 WWW的浏览程序 306

习题12 308

第13章 UNIX系统程序设计 309

13.1 文件系统程序设计 309

13.1.1 获取文件的状态 309

13.1.2 搜索目录树 310

13.2 用文件的系统调用实现进程通信 312

13.2.1 利用文件的系统调用实现信号灯 312

13.2.2 利用管道实现进程间通信 314

13.3 高级进程间通信 316

13.3.1 消息通信 316

13.3.2 共享内存 319

13.3.3 信号灯 320

13.4 远程进程间通信 323

13.4.1 Socket通信概述 323

13.4.2 Socket系统调用 324

13.4.3 Socket通信程序设计 326

13.5 一个系统程序综合设计的例子 329

习题13 340

第14章 Shell程序设计 341

14.1 Shell程序和参数 341

14.1.1 Shell程序 341

14.1.2 Shell程序的位置参数 342

14.2 Shell变量 342

14.2.1 用户定义变量 342

14.2.2 系统定义变量 343

14.2.3 Shell定义变量 345

14.2.4 参数替换 345

14.2.5 引号机制 346

14.3 测试和求值 346

14.3.1 测试 346

14.3.2 求值 348

14.4 控制结构 348

14.4.1 顺序控制结构 348

14.4.2 if语句 349

14.4.3 case语句 351

14.4.4 for语句 352

14.4.5 while和until语句 353

14.4.6 break、continue、exit和return语句 354

14.4.7 递归 354

14.5 Shell内部命令 354

14.6 Shell函数 357

14.7 Shell环境 357

14.8 Linux的BASH Shell 358

14.8.1 命令编辑和历史 359

14.8.2 别名和特征变量 360

14.8.3 BASH Shell的环境文件 360

习题14 361

第15章 嵌入式Linux操作系统 362

15.1 Linux与嵌入式操作系统 362

15.1.1 嵌入式系统的定义 362

15.1.2 嵌入式操作系统的特点 363

15.1.3 嵌入式Linux发展与应用 364

15.1.4 嵌入式Linux操作系统实现方法 365

15.2 嵌入式Linux操作系统构建 365

15.2.1 Linux系统的软件层次 365

15.2.2 裁剪编译内核 366

15.2.3 准备Root文件系统 367

15.2.4 Root文件系统裁剪 368

15.2.5 制作root文件系统映像 370

15.3 嵌入式Linux操作系统安装 372

15.3.1 嵌入式系统的启动 372

15.3.2 安装嵌入式系统引导程序 373

15.3.3 x86系统上嵌入式Linux映像安装 375

15.4 嵌入式Linux软件开发与调试 377

15.4.1 开发系统与目标系统 377

15.4.2 交叉编译环境 378

15.4.3 嵌入式Linux软件调试方法 380

15.5 嵌入式Linux操作系统实时性 382

15.5.1 嵌入式操作系统的实时性要求 382

15.5.2 Linux内核与实时性 384

15.5.3 嵌入式Linux实时化技术 386

习题15 388

第3部分 系统和网络管理篇 390

第16章 UNIX系统管理 390

16.1 系统的启动和关闭 390

16.1.1 系统自举 390

16.1.2 系统的运行级 390

16.1.3 初始化程序执行的脚本(inittab) 391

16.1.4 系统初始化过程 392

16.1.5 系统的关闭 392

16.2 用户管理 393

16.2.1 用户管理涉及的文件 393

16.2.2 加入新用户的过程 394

16.2.3 添加用户命令(useradd) 395

16.2.4 删除用户的注册(userdel) 395

16.3 誊清(更新)系统缓冲区 396

16.4 检查和修复文件系统 396

16.5 构造、安装和拆卸文件系统 398

16.5.1 建立特别文件(mknod) 398

16.5.2 构造文件系统(mkfs) 398

16.5.3 安装文件系统(mount) 399

16.5.4 拆卸一个文件系统(umount) 399

16.6 定时运行程序 400

16.6.1 在指定时刻运行Shell程序(at) 400

16.6.2 时钟精灵(cron) 400

习题16 401

第17章 UNIX系统网络管理 402

17.1 配置TCP/IP 402

17.1.1 网络软件的安装 402

17.1.2 设置TCP/IP文件 402

17.1.3 设置监听程序 404

17.2 网络服务监控进程 405

17.3 域名服务系统 406

17.3.1 域名服务 406

17.3.2 域名系统 406

17.3.3 域名解析 407

17.3.4 逆向域名解析 407

17.3.5 DNS数据库 408

17.3.6 域名服务器的配置 409

17.4 网络文件系统NFS 410

17.4.1 NFS的概念和原理 410

17.4.2 NFS服务器的设置 410

17.4.3 NFS客户机的设置 411

17.5 电子邮政系统 413

17.5.1 邮件信箱 413

17.5.2 电子邮政设置文件 413

17.5.3 sendmail的设置文件 414

17.5.4 sendmail命令的参数 416

17.6 WWW服务器的配置 416

17.6.1 WWW服务 417

17.6.2 虚拟主机服务 420

17.6.3 代理服务器 421

习题17 421

参考文献 423

返回顶部