第一部分 Linux的基本机制和使用方法 2
第1章 Linux概述 2
1.1 Linux操作系统简介 2
Linux操作系统的发展 2
Linux操作系统的特点 3
目前流行的Linux版本 4
1.2基于Linux内核的操作系统实验体系 5
操作系统实验的现状 5
选择Linux的原因 6
实验设计思想 7
实验体系的构成 7
第2章 Linux内核分析 10
2.1 Linux内核结构概述 10
2.2 Linux进程管理 10
描述进程的数据结构 11
进程调度 13
创建进程 16
进程通信机制 16
2.3 Linux存储管理 20
物理内存管理器 21
内核内存管理器 25
虚拟内存管理器 31
Linux的高速缓冲机制 40
2.4 Linux设备管理 41
Linux设备管理结构 41
I/O控制方式 42
Linux设备驱动程序 43
字符设备驱动程序 46
块设备驱动程序 49
2.5 Linux文件系统 53
Linux文件系统概述 53
虚拟文件系统VFS 54
EXT2文件系统 59
Linux的几个重要文件系统 65
第3章 Linux的使用 67
3.1安装Red Hat Linux 67
3.2 Linux文件系统结构 68
Linux目录结构 68
目录功能简介 69
Linux文件系统的装载和卸载 70
3.3 Linux系统的基本操作 72
Linux系统的启动与退出 72
Linux系统对文件和目录的操作命令 73
文档备份与压缩命令 80
权限改变命令 83
Linux与用户有关的命令 85
Linux系统管理命令 86
Linux磁盘管理命令 87
进程管理命令 90
Linux其他命令 93
3.4 vi的使用 95
vi的操作模式 95
vi的进入与退出 96
vi的常用命令 96
3.5 Linux的编译器gcc 100
3.6 Shell程序设计 101
Shell程序的编写和执行 101
Shell基础 102
Shell程序设计 106
Shell程序的调试 112
第二部分 基础实验指导 120
第4章 进程管理实验 120
4.1实验目的 120
4.2准备知识 120
基本概念 120
系统调用 120
相关函数 122
4.3实验内容 126
编制一段程序,实现软中断通信 126
编制一段程序,实现进程的管道通信 126
4.4实验指导 126
进程的软中断通信 126
进程的管道通信 129
第5章 存储器管理实验 133
5.1实验目的 133
5.2准备知识 133
5.3实验内容 133
5.4实验指导 134
FIFO页面置换算法 134
LRU页面置换算法 135
NUR页面置换算法 136
OPT页面置换算法 138
5.5参考源程序代码 139
5.6程序运行 145
第6章 用户接口实验 146
6.1实验目的 146
控制台命令接口 146
系统调用 146
6.2准备知识 146
控制台命令接口 147
添加系统调用 148
6.3实验内容 150
控制台命令接口实验 150
系统调用实验 150
6.4实验指导 150
控制台命令接口实验 150
系统调用实验 151
第7章 模块编程实验 155
7.1实验目的 155
7.2准备知识 155
模块的组织结构 156
模块的编译 157
模块的加载 158
模块的卸载 158
模块链接到内核的示意图 159
模块管理程序中的文件操作 159
i386的寄存器 160
7.3实验内容 162
编写一个简单的内核模块 162
模块加载前后的比较 162
向模块中再添加一些新函数 162
系统核心寄存器数值的获取 162
7.4实验指导 162
一个简单的内核模块 162
模块加载前后的比较 164
向模块中添加新函数 165
模块的测试 166
系统核心寄存器数值的获取实验 167
第8章 设备管理实验 179
8.1实验目的 179
8.2准备知识 179
设备驱动程序简介 179
设备驱动程序与外界的接口 180
设备驱动程序的组织结构 181
设备驱动程序的代码 182
8.3实验内容 185
字符类型设备的驱动程序 185
块类型设备的驱动程序 185
8.4实验指导 185
字符类型设备的驱动程序 185
块类型设备的驱动程序 192
8.5参考源程序代码 198
字符设备驱动程序 198
块设备驱动程序 203
第9章 文件系统实验 206
9.1实验目的 206
9.2准备知识 206
外存管理 206
目录管理 207
文件系统的接口 208
Linux的EXT2文件系统 208
可能用到的编程技术 210
用内存来模拟外存 210
9.3实验内容 211
9.4实验指导 211
二级文件系统的设计与实现 211
EXT2文件系统跟踪程序的设计与实现 230
第三部分 综合实验指导 242
第10章 操作系统构成实验 242
10.1实验目的 242
10.2准备知识 242
Linux操作系统的启动流程 242
开机载入程序——引导软件LILO 243
Linux根文件系统简介 244
10.3实验内容 245
10.4实验指导 245
实验设计思想 245
配置新内核bzImage 246
制作启动盘 247
制作根文件系统盘 250
系统整合 255
系统测试 255
第11章 系统信息显示实验 259
11.1实验目的 259
11.2准备知识 259
proc文件系统简介 259
proc中的硬件信息 260
proc中的软件信息 263
实验中使用的库函数 266
实验中使用的编程技术 268
11.3实验内容 270
11.4实验指导 270
系统信息显示实验 270
内存信息监测实验 278
参考文献 290