目录
第1章 操作系统概述
1.1 操作系统在计算机系统中的地位
1.2 操作系统的定义、功能和特性
1.2.1 操作系统的定义
1.2.2 操作系统的特征
1.2.3 操作系统的功能
1.3 操作系统的发展历史及分类
1.3.1 操作系统的发展过程
1.3.2 操作系统分类
1.4 操作系统的内核体系结构模型
1.5 Linux的特点及发展简史
1.5.1 什么是Linux
1.5.2 Linux的发展历程
1.5.3 Linux的特性
1.5.4 Linux内核的版本演化介绍
1.6 Linux内核的结构及主要组成部分
1.6.1 Linux内核系统体系结构
1.6.2 Linux内核的源码组织结构
1.7 本章小结
思考题
进一步阅读
第2章 计算机系统硬件基础
2.1 计算机硬件的组成结构
2.2 处理器的工作模式
2.3 80x86的保护模式
2.3.1 80x86系统寄存器
2.3.2 存储管理机制
2.3.3 分段机制
2.3.4 分页机制
2.3.5 保护机制
2.4 中断陷入与异常处理
2.4.1 中断与异常
2.4.2 中断系统
2.4.3 中断处理过程
2.4.4 时钟中断
2.5 任务切换
2.6 SMP及多核技术
2.7 Linux系统引导过程概述
2.7.1 BIOS引导
2.7.2 LILO/GRUB引导
2.7.3 Kernel Boot
2.7.4 Init引导
2.8 本章小结
第3章 进程管理
3.1 进程的原理和实现
3.1.1 进程控制块
3.1.2 进程状态
3.1.3 进程的标识
3.1.4 进程描述符在内存里的组织形式
3.1.5 进程的睡眠和唤醒
3.2 线程的原理与实现
3.3 Linux进程创建和结束
3.3.1 进程的创建
3.3.2 进程的结束
3.4 进程调度
3.4.1 进程的切换
3.4.2 进程的调度策略
3.4.3 进程调度的触发和进程切换的时机
3.4.4 运行队列
3.4.5 调度域
3.4.6 抢占
3.4.7 调度的时间复杂度
3.4.8 函数schedule的实现
3.4.9 函数load balance的实现
3.5 并发控制原理
3.5.1 同步原语简介
3.5.2 死锁
3.5.3 同步原语
3.6 Linux下的同步机制
3.6.1 处理器数据
3.6.2 可抢占内核
3.6.3 开关中断
3.6.4 原子操作
3.6.5 栅栏
3.6.6 自旋锁和读写锁
3.6.7 Fast User Space Mutex
3.6.8 信号量
3.7 Linux下进程间通信
3.7.1 管道
3.7.2 命名管道
3.7.3 消息队列
3.7.4 共享内存
3.7.5 套接口
3.8 本章小结
第4章 内存管理
4.1 内存管理概述
4.1.1 内存管理的目的和功能
4.1.2 内存分配的方式
4.1.3 重定位
4.2 内存管理的基本技术
4.2.1 分区法
4.2.2 可重定位分区法
4.2.3 覆盖技术
4.2.4 交换技术
4.3 分页技术
4.3.1 分页内存管理的基本原理
4.3.2 分页技术中的地址映射
4.3.3 页面保护方式
4.4 分段技术
4.4.1 分段技术的基本原理
4.4.2 分段的地址转换
4.4.3 段的共享和保护
4.5 段页式技术
4.5.1 段页式技术的基本原理
4.5.2 地址转换过程
4.6 虚拟存储器技术
4.6.1 程序的局部性原理
4.6.2 虚拟存储器的概念
4.6.3 虚拟存储管理需要考虑的问题
4.6.4 虚拟分页技术的基本原理
4.6.5 请求页式管理中的置换算法
4.6.6 抖动问题
4.6.7 性能分析
4.7 Linux的内存管理
4.7.1 进程的虚存空间及其划分
4.7.2 进程空间的描述
4.7.3 物理内存的管理
4.7.4 基于Slab的缓存管理
4.7.5 页面换出或丢弃
4.7.6 交换Cache
4.7.7 页面的换人
4.8本章小结
第5章 文件系统
第6章 设备管理
第7章 Linux驱动程度编写基础
第8章 字符设备和块设备驱动程度
第9章 网络设备驱动程度
实验1 Linux系统管理
实验2 剪裁内核
实验3 内核同步机制
实验4 进程间通信(内存映射、共享内存、信号量、管道和信号等)
实验5 proc文件系统
实验6 虚拟内存的管理
实验7 字符、块设备和网卡驱动
参考文献