书籍详情
操作系统教程(第3版)
作者:陆松年 主编,潘理 等编著
出版社:电子工业出版社
出版时间:2010-01-01
ISBN:9787121103353
定价:¥45.00
购买这本书可以去
内容简介
《操作系统教程(第3版)》详细阐述了操作系统的基本原理、概念和应用,全书以传统的UNIX为主线进行讲解,而且还对Windows 2000/XP/2008、最新推出的Windows 7、嵌入式Linux系统和操作系统安全进行了分析和介绍。《操作系统教程(第3版)》共分3篇:第1篇介绍操作系统的基本原理及较常用的操作系统实例,如UNIX、Linux、Solaris、Windows 2000/XP/2003/Vista/2008/7等;第2篇介绍在UNIX和嵌入式Linux系统下的系统程序设计、应用开发工具及开发技术;第3篇介绍UNIX系统管理和UNIX网络系统管理。《操作系统教程(第3版)》可作为高等院校计算机科学与应用专业以及通信工程、电子工程、信息安全、自动化控制和信息管理类等非计算机专业的教材和教学参考书,对于计算机软件开发人员、系统和网络管理人员,也是一本很好的参考书。
作者简介
暂缺《操作系统教程(第3版)》作者简介
目录
第1部分 原理篇
第1章 操作系统概论
1.1 什么是操作系统
1.2 操作系统的发展历史
1.2.1 早期的计算机和人工操作方式
1.2.2 脱机输入/输出和批处理系统
1.2.3 缓冲、中断和DMA技术
1.2.4 SPOOLING
1.2.5 多道程序设计
1.3 现代操作系统类型
1.3.1 分时系统
1.3.2 实时操作系统
1.3.3 微机操作系统
1.3.4 多处理机、分布式和网络操作系统
1.3.5 嵌入式操作系统和智能卡操作系统
1.4 操作系统的概念、特征和功能
1.4.1 作业和进程
1.4.2 操作系统的特征
1.4.3 操作系统的功能
1.5 UNIX操作系统概述
1.5.1 UNIX系统历史
1.5.2 Solaris操作系统
1.5.3 UNIX系统特点
1.5.4 UNIX系统基本结构
习题1
第2章 存储管理
2.1 存储管理基础
2.1.1 虚拟地址与物理地址
2.1.2 地址定位方式
2.2 基本存储管理方法
2.2.1 单一连续区存储管理
2.2.2 固定分区存储管理
2.3 可变分区存储管理
2.3.1 空闲存储区表
2.3.2 首次适应法
2.3.3 循环首次适应法
2.3.4 最佳适应算法
2.3.5 最差适应法
2.3.6 多重分区
2.4 内存扩充技术
2.4.1 覆盖
2.4.2 交换技术
2.4.3 虚拟存储器
2.5 纯分页的存储管理
2.5.1 分页存储管理的基本思想
2.5.2 地址变换
2.5.3 联想存储器和快表
2.5.4 空闲内存页的管理
2.6 请求分页系统
2.6.1 请求分页的基本原理
2.6.2 页面淘汰
2.7 段式存储管理
2.8 段页式存储管理
2.9 Linux存储管理
2.9.1 Linux存储管理的思想及特点
2.9.2 Linux中的页表
2.9.3 页面的分配和回收
2.9.4 存储映射与请求分页
2.9.5 页交换进程与页面的换入换出
2.10 Solaris存储管理
2.10.1 Solaris存储管理的体系结构
2.10.2 Solaris存储管理的新特性
2.10.3 Solaris存储管理
2.10.4 页面淘汰算法
习题2
第3章 进程管理
3.1 进程概述
3.1.1 进程的概念
3.1.2 进程的组成
3.1.3 进程的状态及其变化
3.2 进程控制块
3.3 调度
3.3.1 调度概述
3.3.2 进程调度策略
3.3.3 进程调度算法
3.4 UNIX系统的进程调度
3.4.1 进程的切换调度算法
3.4.2 切换调度程序
3.4.3 进程的对换调度
3.5 进程的控制
3.5.1 进程的阻塞
3.5.2 UNIX系统中的进程睡眠和唤醒
3.5.3 进程的终止和等待终止
3.6 进程的创建和图像改换
3.6.1 进程的创建
3.6.2 进程图像的改换
3.7 线程
3.7.1 进程和线程
3.7.2 多线程
3.7.3 线程的状态与功能
3.7.4 用户级和核心级线程
3.8 Linux进程管理
3.8.1 Linux进程结构
3.8.2 进程调度
3.8.3 进程使用的虚拟内存
3.8.4 创建进程
3.8.5 Linux的线程
3.9 Solaris进程和进程管理
3.9.1 Solaris进程和线程
3.9.2 Solaris进程和线程模型的演变
3.9.3 进程数据结构
3.9.4 内核线程数据结构
3.9.5 Solaris的线程调度
3.9.6 Solaris的线程应用示例
习题3
第4章 进程通信
4.1 进程的同步与互斥
4.1.1 同步与互斥的概念
4.1.2 临界段问题
4.2 进程间互斥控制方法
4.2.1 锁的表示和操作
4.2.2 锁的安全控制
4.2.3 用纯软件实现进程的互斥
4.3 信号量和semWait、semSignal操作
4.4 信号量的应用
4.4.1 利用信号量实现互斥
4.4.2 阻塞∕唤醒协议
4.4.3 两个进程间的同步
4.4.4 生产者和消费者问题
4.4.5 读者∕写者问题
4.4.6 管程
4.5 进程间的数据通信
4.5.1 消息通信
4.5.2 共享存储区
4.5.3 管道通信
4.6 软中断和信号机构
4.6.1 信号的产生与类型
4.6.2 信号的处理方式及设置
4.6.3 信号的传送
4.7 死锁
4.7.1 产生死锁的原因
4.7.2 产生死锁的条件
4.7.3 死锁的预防
4.7.4 死锁的避免
4.7.5 死锁的检测
4.7.6 死锁的解除
4.8 Linux进程间通信
4.8.1 信号
4.8.2 管道
4.8.3 IPC机制
4.9 Solaris的进程通信机制
4.9.1 Solaris的进程通信机制概述
4.9.2 Solairs信号机制
4.9.3 Solairs信号量
4.9.4 Solairs门
习题4
第5章 设备管理
5.1 概述
5.1.1 设备的概念和分类
5.1.2 I/O设备控制与驱动
5.1.3 设备管理的设计要求和任务
5.2 操作系统与中断处理
5.2.1 中断的基本概念
5.2.2 中断的类型
5.2.3 中断的响应和实现过程
5.2.4 中断处理程序和驱动程序
5.2.5 中断的返回与恢复
5.3 操作系统与时钟系统
5.3.1 时钟的概念
5.3.2 UNIX系统中的时钟管理
5.4 操作系统对I/O操作的控制
5.4.1 I/O设备的资源分配
5.4.2 I/O通道技术
5.4.3 I/O缓冲技术
5.4.4 设备的驱动
5.5 设备管理的数据结构
5.5.1 设备控制表
5.5.2 设备开关表
5.6 磁盘调度
5.6.1 物理特性
5.6.2 磁盘调度算法
5.6.3 系统设计应考虑的几个问题
5.6.4 独立磁盘冗余阵列
5.7 UNIX系统V的设备管理
5.7.1 块设备管理的主要数据结构
5.7.2 缓冲区管理
5.7.3 块设备管理
5.7.4 字符设备管理
5.8 设备分配
5.8.1 设备分配方式
5.8.2 设备分配的原则
5.9 Linux的设备管理
5.9.1 概述
5.9.2 设备驱动器与内核的接口
5.9.3 网络设备的管理
5.10 Solaris的I/O子系统
5.10.1 I/O子系统与内核的关系
5.10.2 设备文件与设备文件系统
5.10.3 设备树
习题5
第6章 文件系统
6.1 概述
6.1.1 文件的术语
6.1.2 文件的操作
6.1.3 文件的组织和存取
6.1.4 文件系统结构
6.2 文件目录
6.2.1 目录的内容
6.2.2 目录的结构
6.2.3 存取权限
6.2.4 并发存取控制
6.3 文件存储资源分配
6.4 文件的系统调用
6.4.1 文件的创建、打开、关闭和取消
6.4.2 文件的读/写
6.4.3 调整文件读/写位置lseek
6.4.4 创建任何类型文件mknod
6.4.5 其他的文件系统调用
6.5 文件的标准子例程
6.5.1 标准I/O的概念
6.5.2 流文件的打开和关闭
6.5.3 流文件的读写
6.5.4 调整和获取流文件的读写位置
6.5.5 格式输入与输出
6.5.6 流的单字符I/O操作
6.5.7 行的输入与输出
6.5.8 存储区中的格式转化
6.5.9 程序的执行
6.6 UNIX文件系统的内部结构
6.6.1 索引节点
6.6.2 文件索引结构
6.6.3 目录结构
6.6.4 打开文件结构
6.6.5 文件系统存储资源管理
6.7 管道文件和管道通信
6.7.1 管道通信概念
6.7.2 管道文件
6.7.3 管道的读写和关闭
6.7.4 有名管道
6.8 Linux文件系统
6.8.1 虚拟文件系统
6.8.2 Ext2文件系统
6.8.3 Ext3文件系统
6.9 Solaris文件系统
6.9.1 Sun虚拟文件系统模型
6.9.2 文件系统可恢复性
6.9.3 文件系统安全性
6.9.4 Solaris文件系统框架
6.9.5 ZFS文件系统的特点
习题6
第7章 Windows操作系统
7.1 Windows操作系统发展历程
7.1.1 Windows的开发过程及历史
7.1.2 Windows主要版本的特点
7.2 Windows 2000/XP
7.2.1 系统体系结构
7.2.2 存储系统
7.2.3 进程、线程及处理器管理
7.2.4 I/O系统
7.2.5 文件系统
7.2.6 网络系统
7.3 Windows Server 2008
7.3.1 系统概述
7.3.2 系统功能更新
7.4 下一代操作系统产品Windows 7
7.4.1 系统概述
7.4.2 系统功能更新
7.5 操作系统虚拟化技术
7.5.1 虚拟化技术概述
7.5.2 Xen虚拟化技术
7.5.3 其他虚拟化产品
7.6 小结
习题7
第8章 分布式和网络操作系统
8.1 分布式操作系统概述
8.2 网络通信机制
8.3 网络同步
8.4 网络操作系统
习题8
第9章 操作系统安全
9.1 操作系统的安全性
9.1.1 操作系统的安全需求
9.1.2 系统安全的评估与标准
9.1.3 Linux操作系统安全
9.1.4 Windows 2000操作系统安全
9.2 操作系统安全机制
9.2.1 标识与鉴别
9.2.2 可信路径
9.2.3 最小特权管理
9.2.4 访问控制
9.2.5 隐蔽通道检测与控制
9.2.6 安全审计
9.3 安全操作系统设计与实现
9.3.1 操作系统安全设计原理
9.3.2 安全策略
9.3.3 安全模型
9.3.4 安全体系结构
9.3.5 典型安全操作系统
习题9
第2部分 应用和开发篇
第10章 UNIX使用基础
10.1 登录和退出系统
10.2 Shell基础
10.2.1 Shell的家族
10.2.2 简单命令和命令表
10.2.3 标准输入和标准输出
10.2.4 输入/输出转向
10.2.5 后台命令与后台进程
10.2.6 管道
10.2.7 特殊字符
10.3 文件系统基本知识
10.3.1 文件的类型
10.3.2 目录结构
10.3.3 文件存取控制模式
10.3.4 目录存取方式
10.4 UNIX文件系统结构
10.4.1 根文件系统结构
10.4.2 /usr文件系统
习题10
第11章 UNIX实用程序
11.1 目录操作命令
11.1.1 显示工作目录(pwd命令)
11.1.2 改变工作目录(cd命令)
11.1.3 列目录内容(ls命令)
11.1.4 创建新目录(mkdir命令)
11.1.5 删除目录项(rmdir命令)
11.2 文件操作命令
11.2.1 复制文件(cp命令)
11.2.2 移动或重新命名文件(mv命令)
11.2.3 删除文件(rm命令)
11.2.4 文件的链接(ln命令)
11.2.5 符号链接(ln –s命令)
11.2.6 报告两个文件的差别(diff命令)
11.2.7 推测文件的类型(file命令)
11.2.8 查找文件(find命令)
11.2.9 改变文件的属主(chown命令)
11.2.10 改变文件的存取权限(chmod命令)
11.2.11 设置文件创建方式屏蔽码(umask命令)
11.3 显示和打印命令
11.3.1 回应命令行上的参数(echo命令)
11.3.2 连接并显示文件(cat命令)
11.3.3 分页显示(more命令和pg命令)
11.3.4 显示文件的头部(head命令)和尾部(tail命令)
11.3.5 打印文件(lp命令)
11.3.6 查看打印作业状态(lpstat命令)
11.3.7 取消一个打印作业(cancel命令)
11.3.8 格式化打印文件(pr命令)
11.3.9 卸出文件(od命令)
11.4 过滤器
11.4.1 正则表达式
11.4.2 排序或合并文件(sort命令)
11.4.3 抽取指定模式的行(grep命令)
11.4.4 流编辑程序(sed命令)
11.4.5 模式扫描和处理语言(awk)
11.4.6 裁剪指定的列(cut命令)
11.4.7 组合数据列(paste命令)
11.4.8 建立“三通”(tee命令)
11.5 设备操作
11.5.1 显示或设置日期和时间(date命令)
11.5.2 显示磁盘空间(df命令)
11.5.3 显示磁盘使用情况(du命令)
11.5.4 显示或设置终端参数(stty命令)
11.5.5 磁带归档(tar命令)
11.6 用户信息与进程控制
11.6.1 获取用户信息
11.6.2 显示进程状态(ps命令)
11.6.3 挂起一段时间(sleep命令)
11.6.4 统计一个作业的执行时间(time命令)
11.6.5 等待进程完成(wait命令)
11.6.6 杀死一个进程(kill命令)
11.6.7 忽略挂起和退出方法执行(nohup命令)
11.6.8 设置命令的执行环境(env命令)
11.7 压缩和解压缩
11.7.1 compress
11.7.2 zip
11.7.3 gzip
11.7.4 pack
11.8 其 他 命 令
11.8.1 联机手册(man命令)
11.8.2 检查拼写错误(spell命令)
11.8.3 文件加密crypt命令和des命令
11.8.4 规范化C程序格式(cb命令)
习题11
第12章 软件开发工具
12.1 文本编辑器vi
12.1.1 vi概要
12.1.2 屏幕编辑命令
12.1.3 底行命令
12.1.4 在vi程序中执行Shell命令
12.2 C编译系统
12.2.1 C编译基本过程
12.2.2 预处理程序
12.2.3 编译程序
12.2.4 汇编程序
12.2.5 连接/装入程序
12.2.6 一个使用cc的综合例子
12.3 库的维护
12.3.1 库的概念
12.3.2 库的维护
12.3.3 动态库
12.4 维护程序的程序(Make)
12.4.1 Make使用初步
12.4.2 Make的内部规则
12.4.3 Make中的宏
12.4.4 用Make维护库
12.4.5 一个综合例子
12.4.6 Make命令选项和参数
12.5 调试程序
12.5.1 调用sdb
12.5.2 sdb的调试命令
12.5.3 删除调试信息strip
12.6 源代码控制系统(SCCS)
12.6.1 创建SCCS的初始版本
12.6.2 提取一个版本
12.6.3 建立一个新版本
12.6.4 显示SCCS文件的历史
12.6.5 SCCS的版本号结构
12.6.6 ID关键字
12.6.7 其他的SCCS的命令
12.7 其他的软件开发工具
12.7.1 C程序检查器Lint
12.7.2 词法分析器和语法分析器
习题12
第13章 UNIX通信与万维网WWW
13.1 检查计算机的连接情况
13.2 获取远程用户信息
13.2.1 显示谁在本地计算机登录(rwho)
13.2.2 显示远程用户的信息(finger)
13.3 用户间通话
13.3.1 给用户发信息(write)
13.3.2 广播式的消息传送工具(Wall)
13.3.3 远程用户对话(talk)
13.4 远程登录和执行
13.4.1 基于UNIX系统的远程登录(RLogin)
13.4.2 通用的远程登录(telnet)
13.4.3 远程Shell(RSH)
13.5 远程文件复制和传输
13.5.1 远程文件复制(RCP)
13.5.2 文件传输(FTP)
13.6 万维网WWW和浏览器
13.6.1 超文本和超媒体
13.6.2 超文本传输协议HTTP
13.6.3 统一资源定位器URL
13.6.4 超文本标记语言HTML
13.6.5 Form与CGI
13.6.6 网站设计语言
13.6.7 WWW的浏览程序
习题13
第14章 UNIX系统和网络程序设计
14.1 文件系统程序设计
14.1.1 获取文件的状态
14.1.2 搜索目录树
14.2 用文件的系统调用实现进程通信
14.2.1 利用文件的系统调用实现信号量
14.2.2 利用管道实现进程间通信
14.3 高级进程间通信
14.3.1 消息通信
14.3.2 共享内存
14.3.3 信号量
14.4 远程进程间通信Socket
14.4.1 Socket通信概述
14.4.2 Socket系统调用
14.4.3 TCP套接字编程
14.5 UDP套接字编程
14.5.1 UDP 套接字的基本概念
14.5.2 UDP套接字基本函数
14.5.3 UDP数据报的编程示例
14.6 Solaris门通信
14.6.1 Solaris门的应用编程接口
14.6.2 Solaris门的基本通信示例
14.7 远程过程调用RPC
14.7.1 RPC概述
14.7.2 RPC服务地址获取
14.7.3 rpcgen编程指南
14.7.4 客户端身份验证
14.8 一个系统程序综合设计的例子
习题14
第15章 Shell程序设计
15.1 Shell程序和参数
15.1.1 Shell程序
15.1.2 Shell程序的位置参数
15.2 Shell变量
15.2.1 用户定义变量
15.2.2 系统定义变量
15.2.3 Shell定义变量
15.2.4 参数替换
15.2.5 引号机制
15.3 测试和求值
15.3.1 测试
15.3.2 求值
15.4 控制结构
15.4.1 顺序控制结构
15.4.2 if语句
15.4.3 case语句
15.4.4 for语句
15.4.5 while和until语句
15.4.6 break、continue、exit和return语句
15.5 递归和Shell函数
15.5.1 递归
15.5.2 Shell函数
15.6 Shell内部命令
15.7 Shell环境
15.8 Linux的BASH Shell
15.8.1 命令编辑和历史
15.8.2 别名和特征变量
15.8.3 BASH Shell的环境文件
习题15
第16章 嵌入式Linux操作系统
16.1 Linux与嵌入式操作系统
16.1.1 嵌入式系统的定义
16.1.2 嵌入式操作系统的特点
16.1.3 嵌入式Linux发展与应用
16.1.4 嵌入式Linux操作系统实现方法
16.2 嵌入式Linux操作系统构建
16.2.1 Linux系统的软件层次
16.2.2 裁剪编译内核
16.2.3 准备Root文件系统
16.2.4 Root文件系统裁剪
16.2.5 制作root文件系统映像
16.3 嵌入式Linux操作系统安装
16.3.1 嵌入式系统的启动
16.3.2 安装嵌入式系统引导程序
16.3.3 x86系统上嵌入式Linux映像安装
16.4 嵌入式Linux软件开发与调试
16.4.1 开发系统与目标系统
16.4.2 交叉编译环境
16.4.3 嵌入式Linux软件调试方法
16.5 嵌入式Linux操作系统实时性
16.5.1 嵌入式操作系统的实时性要求
16.5.2 Linux内核与实时性
16.5.3 嵌入式Linux实时化
技术
习题16
第3部分 系统和网络管理篇
第17章 UNIX系统管理
17.1 系统的启动和关闭
17.1.1 系统自举
17.1.2 系统的运行级
17.1.3 初始化程序执行的脚本(inittab)
17.1.4 系统初始化过程
17.1.5 系统的关闭
17.2 用户管理
17.2.1 用户管理涉及的文件
17.2.2 加入新用户的过程
17.2.3 添加用户命令(useradd)
17.2.4 删除用户的注册(userdel)
17.3 誊清(更新)系统缓冲区
17.4 检查和修复文件系统
17.5 构造、安装和拆卸文件系统
17.5.1 建立特别文件(mknod)
17.5.2 构造文件系统(mkfs)
17.5.3 安装文件系统(mount)
17.5.4 拆卸一个文件系统(umount)
17.6 定时运行程序
17.6.1 在指定时刻运行Shell程序(at)
17.6.2 时钟精灵(cron)
习题17
第18章 UNIX系统网络管理
18.1 配置TCP/IP
18.1.1 网络软件的安装
18.1.2 设置TCP/IP文件
18.1.3 设置监听程序
18.2 网络服务监控进程
18.3 域名服务系统
18.3.1 域名服务
18.3.2 域名系统
18.3.3 域名解析
18.3.4 逆向域名解析
18.3.5 DNS数据库
18.3.6 域名服务器的配置
18.4 网络文件系统NFS
18.4.1 NFS的概念和原理
18.4.2 NFS服务器的设置
18.4.3 NFS客户机的设置
18.5 电子邮政系统
18.5.1 邮件信箱
18.5.2 电子邮政设置文件
18.5.3 sendmail的设置文件
18.5.4 sendmail命令的参数
18.6 WWW服务器的配置
18.6.1 WWW服务
18.6.2 虚拟主机服务
18.6.3 代理服务器
习题18
附录A:参考文献
第1章 操作系统概论
1.1 什么是操作系统
1.2 操作系统的发展历史
1.2.1 早期的计算机和人工操作方式
1.2.2 脱机输入/输出和批处理系统
1.2.3 缓冲、中断和DMA技术
1.2.4 SPOOLING
1.2.5 多道程序设计
1.3 现代操作系统类型
1.3.1 分时系统
1.3.2 实时操作系统
1.3.3 微机操作系统
1.3.4 多处理机、分布式和网络操作系统
1.3.5 嵌入式操作系统和智能卡操作系统
1.4 操作系统的概念、特征和功能
1.4.1 作业和进程
1.4.2 操作系统的特征
1.4.3 操作系统的功能
1.5 UNIX操作系统概述
1.5.1 UNIX系统历史
1.5.2 Solaris操作系统
1.5.3 UNIX系统特点
1.5.4 UNIX系统基本结构
习题1
第2章 存储管理
2.1 存储管理基础
2.1.1 虚拟地址与物理地址
2.1.2 地址定位方式
2.2 基本存储管理方法
2.2.1 单一连续区存储管理
2.2.2 固定分区存储管理
2.3 可变分区存储管理
2.3.1 空闲存储区表
2.3.2 首次适应法
2.3.3 循环首次适应法
2.3.4 最佳适应算法
2.3.5 最差适应法
2.3.6 多重分区
2.4 内存扩充技术
2.4.1 覆盖
2.4.2 交换技术
2.4.3 虚拟存储器
2.5 纯分页的存储管理
2.5.1 分页存储管理的基本思想
2.5.2 地址变换
2.5.3 联想存储器和快表
2.5.4 空闲内存页的管理
2.6 请求分页系统
2.6.1 请求分页的基本原理
2.6.2 页面淘汰
2.7 段式存储管理
2.8 段页式存储管理
2.9 Linux存储管理
2.9.1 Linux存储管理的思想及特点
2.9.2 Linux中的页表
2.9.3 页面的分配和回收
2.9.4 存储映射与请求分页
2.9.5 页交换进程与页面的换入换出
2.10 Solaris存储管理
2.10.1 Solaris存储管理的体系结构
2.10.2 Solaris存储管理的新特性
2.10.3 Solaris存储管理
2.10.4 页面淘汰算法
习题2
第3章 进程管理
3.1 进程概述
3.1.1 进程的概念
3.1.2 进程的组成
3.1.3 进程的状态及其变化
3.2 进程控制块
3.3 调度
3.3.1 调度概述
3.3.2 进程调度策略
3.3.3 进程调度算法
3.4 UNIX系统的进程调度
3.4.1 进程的切换调度算法
3.4.2 切换调度程序
3.4.3 进程的对换调度
3.5 进程的控制
3.5.1 进程的阻塞
3.5.2 UNIX系统中的进程睡眠和唤醒
3.5.3 进程的终止和等待终止
3.6 进程的创建和图像改换
3.6.1 进程的创建
3.6.2 进程图像的改换
3.7 线程
3.7.1 进程和线程
3.7.2 多线程
3.7.3 线程的状态与功能
3.7.4 用户级和核心级线程
3.8 Linux进程管理
3.8.1 Linux进程结构
3.8.2 进程调度
3.8.3 进程使用的虚拟内存
3.8.4 创建进程
3.8.5 Linux的线程
3.9 Solaris进程和进程管理
3.9.1 Solaris进程和线程
3.9.2 Solaris进程和线程模型的演变
3.9.3 进程数据结构
3.9.4 内核线程数据结构
3.9.5 Solaris的线程调度
3.9.6 Solaris的线程应用示例
习题3
第4章 进程通信
4.1 进程的同步与互斥
4.1.1 同步与互斥的概念
4.1.2 临界段问题
4.2 进程间互斥控制方法
4.2.1 锁的表示和操作
4.2.2 锁的安全控制
4.2.3 用纯软件实现进程的互斥
4.3 信号量和semWait、semSignal操作
4.4 信号量的应用
4.4.1 利用信号量实现互斥
4.4.2 阻塞∕唤醒协议
4.4.3 两个进程间的同步
4.4.4 生产者和消费者问题
4.4.5 读者∕写者问题
4.4.6 管程
4.5 进程间的数据通信
4.5.1 消息通信
4.5.2 共享存储区
4.5.3 管道通信
4.6 软中断和信号机构
4.6.1 信号的产生与类型
4.6.2 信号的处理方式及设置
4.6.3 信号的传送
4.7 死锁
4.7.1 产生死锁的原因
4.7.2 产生死锁的条件
4.7.3 死锁的预防
4.7.4 死锁的避免
4.7.5 死锁的检测
4.7.6 死锁的解除
4.8 Linux进程间通信
4.8.1 信号
4.8.2 管道
4.8.3 IPC机制
4.9 Solaris的进程通信机制
4.9.1 Solaris的进程通信机制概述
4.9.2 Solairs信号机制
4.9.3 Solairs信号量
4.9.4 Solairs门
习题4
第5章 设备管理
5.1 概述
5.1.1 设备的概念和分类
5.1.2 I/O设备控制与驱动
5.1.3 设备管理的设计要求和任务
5.2 操作系统与中断处理
5.2.1 中断的基本概念
5.2.2 中断的类型
5.2.3 中断的响应和实现过程
5.2.4 中断处理程序和驱动程序
5.2.5 中断的返回与恢复
5.3 操作系统与时钟系统
5.3.1 时钟的概念
5.3.2 UNIX系统中的时钟管理
5.4 操作系统对I/O操作的控制
5.4.1 I/O设备的资源分配
5.4.2 I/O通道技术
5.4.3 I/O缓冲技术
5.4.4 设备的驱动
5.5 设备管理的数据结构
5.5.1 设备控制表
5.5.2 设备开关表
5.6 磁盘调度
5.6.1 物理特性
5.6.2 磁盘调度算法
5.6.3 系统设计应考虑的几个问题
5.6.4 独立磁盘冗余阵列
5.7 UNIX系统V的设备管理
5.7.1 块设备管理的主要数据结构
5.7.2 缓冲区管理
5.7.3 块设备管理
5.7.4 字符设备管理
5.8 设备分配
5.8.1 设备分配方式
5.8.2 设备分配的原则
5.9 Linux的设备管理
5.9.1 概述
5.9.2 设备驱动器与内核的接口
5.9.3 网络设备的管理
5.10 Solaris的I/O子系统
5.10.1 I/O子系统与内核的关系
5.10.2 设备文件与设备文件系统
5.10.3 设备树
习题5
第6章 文件系统
6.1 概述
6.1.1 文件的术语
6.1.2 文件的操作
6.1.3 文件的组织和存取
6.1.4 文件系统结构
6.2 文件目录
6.2.1 目录的内容
6.2.2 目录的结构
6.2.3 存取权限
6.2.4 并发存取控制
6.3 文件存储资源分配
6.4 文件的系统调用
6.4.1 文件的创建、打开、关闭和取消
6.4.2 文件的读/写
6.4.3 调整文件读/写位置lseek
6.4.4 创建任何类型文件mknod
6.4.5 其他的文件系统调用
6.5 文件的标准子例程
6.5.1 标准I/O的概念
6.5.2 流文件的打开和关闭
6.5.3 流文件的读写
6.5.4 调整和获取流文件的读写位置
6.5.5 格式输入与输出
6.5.6 流的单字符I/O操作
6.5.7 行的输入与输出
6.5.8 存储区中的格式转化
6.5.9 程序的执行
6.6 UNIX文件系统的内部结构
6.6.1 索引节点
6.6.2 文件索引结构
6.6.3 目录结构
6.6.4 打开文件结构
6.6.5 文件系统存储资源管理
6.7 管道文件和管道通信
6.7.1 管道通信概念
6.7.2 管道文件
6.7.3 管道的读写和关闭
6.7.4 有名管道
6.8 Linux文件系统
6.8.1 虚拟文件系统
6.8.2 Ext2文件系统
6.8.3 Ext3文件系统
6.9 Solaris文件系统
6.9.1 Sun虚拟文件系统模型
6.9.2 文件系统可恢复性
6.9.3 文件系统安全性
6.9.4 Solaris文件系统框架
6.9.5 ZFS文件系统的特点
习题6
第7章 Windows操作系统
7.1 Windows操作系统发展历程
7.1.1 Windows的开发过程及历史
7.1.2 Windows主要版本的特点
7.2 Windows 2000/XP
7.2.1 系统体系结构
7.2.2 存储系统
7.2.3 进程、线程及处理器管理
7.2.4 I/O系统
7.2.5 文件系统
7.2.6 网络系统
7.3 Windows Server 2008
7.3.1 系统概述
7.3.2 系统功能更新
7.4 下一代操作系统产品Windows 7
7.4.1 系统概述
7.4.2 系统功能更新
7.5 操作系统虚拟化技术
7.5.1 虚拟化技术概述
7.5.2 Xen虚拟化技术
7.5.3 其他虚拟化产品
7.6 小结
习题7
第8章 分布式和网络操作系统
8.1 分布式操作系统概述
8.2 网络通信机制
8.3 网络同步
8.4 网络操作系统
习题8
第9章 操作系统安全
9.1 操作系统的安全性
9.1.1 操作系统的安全需求
9.1.2 系统安全的评估与标准
9.1.3 Linux操作系统安全
9.1.4 Windows 2000操作系统安全
9.2 操作系统安全机制
9.2.1 标识与鉴别
9.2.2 可信路径
9.2.3 最小特权管理
9.2.4 访问控制
9.2.5 隐蔽通道检测与控制
9.2.6 安全审计
9.3 安全操作系统设计与实现
9.3.1 操作系统安全设计原理
9.3.2 安全策略
9.3.3 安全模型
9.3.4 安全体系结构
9.3.5 典型安全操作系统
习题9
第2部分 应用和开发篇
第10章 UNIX使用基础
10.1 登录和退出系统
10.2 Shell基础
10.2.1 Shell的家族
10.2.2 简单命令和命令表
10.2.3 标准输入和标准输出
10.2.4 输入/输出转向
10.2.5 后台命令与后台进程
10.2.6 管道
10.2.7 特殊字符
10.3 文件系统基本知识
10.3.1 文件的类型
10.3.2 目录结构
10.3.3 文件存取控制模式
10.3.4 目录存取方式
10.4 UNIX文件系统结构
10.4.1 根文件系统结构
10.4.2 /usr文件系统
习题10
第11章 UNIX实用程序
11.1 目录操作命令
11.1.1 显示工作目录(pwd命令)
11.1.2 改变工作目录(cd命令)
11.1.3 列目录内容(ls命令)
11.1.4 创建新目录(mkdir命令)
11.1.5 删除目录项(rmdir命令)
11.2 文件操作命令
11.2.1 复制文件(cp命令)
11.2.2 移动或重新命名文件(mv命令)
11.2.3 删除文件(rm命令)
11.2.4 文件的链接(ln命令)
11.2.5 符号链接(ln –s命令)
11.2.6 报告两个文件的差别(diff命令)
11.2.7 推测文件的类型(file命令)
11.2.8 查找文件(find命令)
11.2.9 改变文件的属主(chown命令)
11.2.10 改变文件的存取权限(chmod命令)
11.2.11 设置文件创建方式屏蔽码(umask命令)
11.3 显示和打印命令
11.3.1 回应命令行上的参数(echo命令)
11.3.2 连接并显示文件(cat命令)
11.3.3 分页显示(more命令和pg命令)
11.3.4 显示文件的头部(head命令)和尾部(tail命令)
11.3.5 打印文件(lp命令)
11.3.6 查看打印作业状态(lpstat命令)
11.3.7 取消一个打印作业(cancel命令)
11.3.8 格式化打印文件(pr命令)
11.3.9 卸出文件(od命令)
11.4 过滤器
11.4.1 正则表达式
11.4.2 排序或合并文件(sort命令)
11.4.3 抽取指定模式的行(grep命令)
11.4.4 流编辑程序(sed命令)
11.4.5 模式扫描和处理语言(awk)
11.4.6 裁剪指定的列(cut命令)
11.4.7 组合数据列(paste命令)
11.4.8 建立“三通”(tee命令)
11.5 设备操作
11.5.1 显示或设置日期和时间(date命令)
11.5.2 显示磁盘空间(df命令)
11.5.3 显示磁盘使用情况(du命令)
11.5.4 显示或设置终端参数(stty命令)
11.5.5 磁带归档(tar命令)
11.6 用户信息与进程控制
11.6.1 获取用户信息
11.6.2 显示进程状态(ps命令)
11.6.3 挂起一段时间(sleep命令)
11.6.4 统计一个作业的执行时间(time命令)
11.6.5 等待进程完成(wait命令)
11.6.6 杀死一个进程(kill命令)
11.6.7 忽略挂起和退出方法执行(nohup命令)
11.6.8 设置命令的执行环境(env命令)
11.7 压缩和解压缩
11.7.1 compress
11.7.2 zip
11.7.3 gzip
11.7.4 pack
11.8 其 他 命 令
11.8.1 联机手册(man命令)
11.8.2 检查拼写错误(spell命令)
11.8.3 文件加密crypt命令和des命令
11.8.4 规范化C程序格式(cb命令)
习题11
第12章 软件开发工具
12.1 文本编辑器vi
12.1.1 vi概要
12.1.2 屏幕编辑命令
12.1.3 底行命令
12.1.4 在vi程序中执行Shell命令
12.2 C编译系统
12.2.1 C编译基本过程
12.2.2 预处理程序
12.2.3 编译程序
12.2.4 汇编程序
12.2.5 连接/装入程序
12.2.6 一个使用cc的综合例子
12.3 库的维护
12.3.1 库的概念
12.3.2 库的维护
12.3.3 动态库
12.4 维护程序的程序(Make)
12.4.1 Make使用初步
12.4.2 Make的内部规则
12.4.3 Make中的宏
12.4.4 用Make维护库
12.4.5 一个综合例子
12.4.6 Make命令选项和参数
12.5 调试程序
12.5.1 调用sdb
12.5.2 sdb的调试命令
12.5.3 删除调试信息strip
12.6 源代码控制系统(SCCS)
12.6.1 创建SCCS的初始版本
12.6.2 提取一个版本
12.6.3 建立一个新版本
12.6.4 显示SCCS文件的历史
12.6.5 SCCS的版本号结构
12.6.6 ID关键字
12.6.7 其他的SCCS的命令
12.7 其他的软件开发工具
12.7.1 C程序检查器Lint
12.7.2 词法分析器和语法分析器
习题12
第13章 UNIX通信与万维网WWW
13.1 检查计算机的连接情况
13.2 获取远程用户信息
13.2.1 显示谁在本地计算机登录(rwho)
13.2.2 显示远程用户的信息(finger)
13.3 用户间通话
13.3.1 给用户发信息(write)
13.3.2 广播式的消息传送工具(Wall)
13.3.3 远程用户对话(talk)
13.4 远程登录和执行
13.4.1 基于UNIX系统的远程登录(RLogin)
13.4.2 通用的远程登录(telnet)
13.4.3 远程Shell(RSH)
13.5 远程文件复制和传输
13.5.1 远程文件复制(RCP)
13.5.2 文件传输(FTP)
13.6 万维网WWW和浏览器
13.6.1 超文本和超媒体
13.6.2 超文本传输协议HTTP
13.6.3 统一资源定位器URL
13.6.4 超文本标记语言HTML
13.6.5 Form与CGI
13.6.6 网站设计语言
13.6.7 WWW的浏览程序
习题13
第14章 UNIX系统和网络程序设计
14.1 文件系统程序设计
14.1.1 获取文件的状态
14.1.2 搜索目录树
14.2 用文件的系统调用实现进程通信
14.2.1 利用文件的系统调用实现信号量
14.2.2 利用管道实现进程间通信
14.3 高级进程间通信
14.3.1 消息通信
14.3.2 共享内存
14.3.3 信号量
14.4 远程进程间通信Socket
14.4.1 Socket通信概述
14.4.2 Socket系统调用
14.4.3 TCP套接字编程
14.5 UDP套接字编程
14.5.1 UDP 套接字的基本概念
14.5.2 UDP套接字基本函数
14.5.3 UDP数据报的编程示例
14.6 Solaris门通信
14.6.1 Solaris门的应用编程接口
14.6.2 Solaris门的基本通信示例
14.7 远程过程调用RPC
14.7.1 RPC概述
14.7.2 RPC服务地址获取
14.7.3 rpcgen编程指南
14.7.4 客户端身份验证
14.8 一个系统程序综合设计的例子
习题14
第15章 Shell程序设计
15.1 Shell程序和参数
15.1.1 Shell程序
15.1.2 Shell程序的位置参数
15.2 Shell变量
15.2.1 用户定义变量
15.2.2 系统定义变量
15.2.3 Shell定义变量
15.2.4 参数替换
15.2.5 引号机制
15.3 测试和求值
15.3.1 测试
15.3.2 求值
15.4 控制结构
15.4.1 顺序控制结构
15.4.2 if语句
15.4.3 case语句
15.4.4 for语句
15.4.5 while和until语句
15.4.6 break、continue、exit和return语句
15.5 递归和Shell函数
15.5.1 递归
15.5.2 Shell函数
15.6 Shell内部命令
15.7 Shell环境
15.8 Linux的BASH Shell
15.8.1 命令编辑和历史
15.8.2 别名和特征变量
15.8.3 BASH Shell的环境文件
习题15
第16章 嵌入式Linux操作系统
16.1 Linux与嵌入式操作系统
16.1.1 嵌入式系统的定义
16.1.2 嵌入式操作系统的特点
16.1.3 嵌入式Linux发展与应用
16.1.4 嵌入式Linux操作系统实现方法
16.2 嵌入式Linux操作系统构建
16.2.1 Linux系统的软件层次
16.2.2 裁剪编译内核
16.2.3 准备Root文件系统
16.2.4 Root文件系统裁剪
16.2.5 制作root文件系统映像
16.3 嵌入式Linux操作系统安装
16.3.1 嵌入式系统的启动
16.3.2 安装嵌入式系统引导程序
16.3.3 x86系统上嵌入式Linux映像安装
16.4 嵌入式Linux软件开发与调试
16.4.1 开发系统与目标系统
16.4.2 交叉编译环境
16.4.3 嵌入式Linux软件调试方法
16.5 嵌入式Linux操作系统实时性
16.5.1 嵌入式操作系统的实时性要求
16.5.2 Linux内核与实时性
16.5.3 嵌入式Linux实时化
技术
习题16
第3部分 系统和网络管理篇
第17章 UNIX系统管理
17.1 系统的启动和关闭
17.1.1 系统自举
17.1.2 系统的运行级
17.1.3 初始化程序执行的脚本(inittab)
17.1.4 系统初始化过程
17.1.5 系统的关闭
17.2 用户管理
17.2.1 用户管理涉及的文件
17.2.2 加入新用户的过程
17.2.3 添加用户命令(useradd)
17.2.4 删除用户的注册(userdel)
17.3 誊清(更新)系统缓冲区
17.4 检查和修复文件系统
17.5 构造、安装和拆卸文件系统
17.5.1 建立特别文件(mknod)
17.5.2 构造文件系统(mkfs)
17.5.3 安装文件系统(mount)
17.5.4 拆卸一个文件系统(umount)
17.6 定时运行程序
17.6.1 在指定时刻运行Shell程序(at)
17.6.2 时钟精灵(cron)
习题17
第18章 UNIX系统网络管理
18.1 配置TCP/IP
18.1.1 网络软件的安装
18.1.2 设置TCP/IP文件
18.1.3 设置监听程序
18.2 网络服务监控进程
18.3 域名服务系统
18.3.1 域名服务
18.3.2 域名系统
18.3.3 域名解析
18.3.4 逆向域名解析
18.3.5 DNS数据库
18.3.6 域名服务器的配置
18.4 网络文件系统NFS
18.4.1 NFS的概念和原理
18.4.2 NFS服务器的设置
18.4.3 NFS客户机的设置
18.5 电子邮政系统
18.5.1 邮件信箱
18.5.2 电子邮政设置文件
18.5.3 sendmail的设置文件
18.5.4 sendmail命令的参数
18.6 WWW服务器的配置
18.6.1 WWW服务
18.6.2 虚拟主机服务
18.6.3 代理服务器
习题18
附录A:参考文献
猜您喜欢