根据多年的教学实践和科研的总结,并吸取国内外操作系统方面的相关内容,以及根据几年来的教学实际使用,在2006年出版的《操作系统实验教程》基础上,对内容进行了修改和充实,编写了此书。其目的是为了更便于学生的学习,使学生通过实验,理解和掌握操作系统的基本理论和功能技术,提高分析问题和解决问题的能力,增强编写和开发系统程序的能力。本教程仍分为四大部分。
第1篇是Linux系统的安装和使用。主要介绍双引导系统的配置和安装,了解Linux系统的GUI平台,熟悉GNOME桌面系统、GNOME应用程序和使用Linux的shell和全屏幕编辑程序vi以及Linux的文件系统。通过实验,使学生熟悉和掌握UNIX和Linux系统的常用键盘操作命令。内容力求简单明了,以便为进行操作系统实验提供必要的手段。
第2篇是操作系统模拟算法。主要结合操作系统原理给出了实现操作系统基本技术所涉及的数据结构和算法实现流程,以及一些算法的实现示例。内容主要有处理机管理、存储器管理、文件系统管理和设备管理等。凡学过操作系统原理课程的学生都可以参考本教程进行上机实验。这部分的实验环境没有限制,与具体的硬件环境无关。本书中给出的示例都是在Microsoft Visual C++ 6.0环境下实现的。
第3篇是UNIX或Linux操作系统中常用的系统调用的API以及利用API进行编程的一些示例。主要介绍进程和线程控制、进程同步和通信以及文件系统的系统调用。线程这部分主要采用pthread线程库实现。所给出的示例都是在Linux 系统的fedora 11的内核版本为2.6.x环境下实现的。
第4篇是Windows 2000/XP的系统调用编程。主要介绍Windows 2000/XP操作系统中常用的系统调用的API以及相应的编程示例。内容包括:应用程序基础、进程管理、进程控制以及线程同步和调度,存储器管理中的虚拟内存的使用,文件系统的系统调用以及有名管道和邮件槽等。
通过这些知识的学习,理解UNIX、Linux和Windows等提供的系统调用的实现功能,熟悉系统调用命令的编程技巧,提高操作系统编程和系统软件开发能力。
本书既可以作为本科生和专科生的实验教材,也是研究生对这些操作系统进行熟悉的实验参考教材,对从事系统软件和应用的开发人员也是一本较好的参考书。
本教程已经进行多次修改和充实,力求简单明了,使学生在较短时间内通过实验,既对操作系统的基本原理和实现机制有深入的理解和掌握,又能提高在UNIX、Linux和Windows环境下进行系统编程和开发的能力。
本书的第1、2章主要由刘昕编写,第3~15章主要由张丽芬编写,第16~19章主要由刘利雄编写。王全玉参与了第1、4章的编写,刘昕参与了第3、4、7、8、17、19章的部分内容的修改和补充,刘美华参与了第13~15章的部分内容的修改。张丽芬对全书进行了统稿。
由于编者水平有限,书中难免会有不足之处,敬请读者提出宝贵意见。
作 者2010年8月于北京