第1章 操作系统简介
1.1 什么是操作系统
1.1.1 资源管理者
1.1.2 服务提供者
1.1.3 虚拟机
1.2 操作系统的功能
1.2.1 进程
1.2.2 存储器
1.2.3 I/O设备
1.2.4 文件系统
1.2.5 安全性
1.2.6 联网
1.2.7 用户接口
1.3 操作系统的历史
1.3.1 裸机
1.3.2 批处理操作系统
1.3.3 分时操作系统
1.3.4 分布式操作系统
1.4 组织操作系统的技术
1.4.1 单块设计
1.4.2 分层设计
1.4.3 微内核设计
I.4.4 虚拟机设计
1.5 引导
1.6 系统调用
1.6.1 系统调用示例
1.6.2 系统调用机制
1.7 本章小结
1.8 练习
第2章 操作系统示例
2.1 兼容分时系统
2.1.1 组织结构
2.1.2 引导
2.2 多路信息和计算服务
2.2.1 组织结构
2.2.2 系统调用
2.3 Rr-ll
2.3.1 组织结构
2.4 第6版UNIX
2.4.1 组织结构
2.4.2 系统调用
2.5 虚拟内存系统
2.5.1 组织结构
2.5.2 引导
2.5.3 系统调用
2.6 4.3 BSD
2.6.1 组织结构
2.6.2 系统调用
2.7 Windows NT
2.7.1 组织结构
2.8 Finy OS
2.8.1 组织结构
2.9 Xen
2.9.1 组织结构
2.10 本章小结
2.11 练习
第3章 Inferno的结构与初始化
3.1 Inferno的起源
3.2 基本概念
3.3 组织结构
3.3.1 基本体系结构
3.3.2 源代码组织结构
3.4 初始化
3.4.1 启动Inferno
3.4.2 宿主操作系统的特定初始化
3.4.3 与宿主操作系统无关的初始化
3.4.4 启动分时
3.5 系统调用
3.6 本章小结
3.7 练习
第4章 Linux的结构与初始化
4.1 ILinux的起源
4.2 组织结构
4.2.1 基本体系结构
4.2.2 模块
4.2.3 源代码组织结构
4.3 初始化
4.3.1 引导
4.3.2 特定处理器初始化
4.3.3 与处理器无关的初始化
4.3.4 启动分时
4.3.5 初始化管理级的初始化
4.4 系统调用
4.4.1 处理应用方的系统调用
4.4.2 处理内核方的系统调用
4.5 本章小结
4.6 练习
第5章 进程管理原理
5.1 进程的概念
5.2 实现进程
5.2.1 进程操作
5.2.2 进程状态
5.2.3 进程表
5.3 线程
5.4 调度
5.4.1 先来先服务
5.4.2 最短作业优先
5.4.3 轮转法
5.4.4 优先级调度
5.4.5 调整调度参数
5.4.6 两级调度
5.4.7 实时调度
5.4.8 嵌入式系统的调度
5.5 上下文切换
5.6 进程的创建与终止
5.7 临界区
5.7.1 中断控制
5.7.2 原子操作指令
5.7.3 Peterson算法
5.7.4 信号量
5.7.5 管程
5.7.6 消息传递
5.7.7 示例
5.8.死锁
5.8.1 充分必要条件
5.8.2 处理死锁
5.9 本章小结
5.10 练习
第6章 进程管理示例
6.1 CTSS
6.1.1 进程状态
6.1.2 系统调用
6.1.3 调度
6.2 Multics
6.2.1 系统调用
6.2.2 进程状态
6.2.3 调度
6.3 RT-11
6.3.1 系统调用
6.3.2 进程状态
6.3.3 进程表
6.3.4 调度
6.4 第6版UNIX
6.4.1 系统调用
6.4.2 生程状态
6.4.3 进程表
6.4.4 调度
6.5 4.3 BSD
6.5.1 系统调用
6.5.2 进程状态与进程表
6.5.3 调度
6.6 VMS
6.6.1 系统调用
6.6.2 线程状态
6.6.3 调度
6.7 Windows NT
6.7.1 系统调用
6.7.2 线程状态
6.7.3 生程表与线程表
6.7.4 调度
……
第7章 Inferno中的进程管理
第8章 Linux中的进程管理
第9章 存储管理原理
第10章 存储管理示例
第11章 Inferno中的存储管理
第12章 Linux中的存储管理
第13章 I/O设备管理原理
第14章 I/O设备管理示例
第15章 Inferno中的I/O设备
第16章 Linux中的I/O设备
第17章 文件系统原理
第18章 文件系统示例
第19章 Inferno中的文件系统
第20章 Linux中的文件系统
第21章 操作系统安全原理
第22章 分布式系统原理
附录A 编译宿主Inferno
附录B 编译本地Inferno