本实验教程的内容分3个部分。第一部分(第1章~第11章)为Linux API使用与操作系统算法实验。通过编写用户空间代码,从系统外部洞察操作系统的数据结构、内部状态和工作过程,使学生熟悉API的使用,深入理解操作系统原理,初步掌握系统的组成模块和接口的使用方法。
第二部分(第12章~第19章)为Linux内核修改实验。深入理解内核的捷径就是对它进行修改。通过改变系统数据结构、增加内核模块、添加内核函数、替换原有算法,不同程度地涉及内核态编程,从系统内部探索其内核结构、实现机制和典型算法,使学生达到初步具有分析、修改和更新操作系统的能力。
第三部分为附录。给出Linux常用命令、函数以及相关编辑工具介绍,便于学生进行实验编程及调试。
本书内容丰富、覆盖面广,既有用户空间编程,也有核心空间编程,实验题涉及操作系统的基本概念、原理、技术和方法;实验安排由浅入深、循序渐进,实验内容与课程教学彼此呼应、掌握基本原理与提高编程能力相并重。
学习操作系统的最好途径是理论和实践相结合,本书是操作系统实验课程教材,以Linux 2.6内核版本为平台,精心设计系列实验题目,每个(组)实验题目包括:实验目的、背景知识和实验内容,在每个具体的实验内容中又包括实验说明、解决方案和程序框架,为操作系统实践教学提供指导。
本书内容丰富、覆盖面广,由浅入深、循序渐进,可与高等教育出版社出版的《操作系统教程(第4版)》教材配套使用,也可作为操作系统课程的实验教材单独使用,既可以作为高等学校计算机相关专业实验课用书,也可作为Linux应用和内核编程参考资料。
第1章 Linux的安装和编译
1.1 实验目的
1.2 背景知识
1.2.1 Linux简史
1.2.2 Linux内核的功能和结构
1.2.3 Linux内核的版本和发行版本
1.2.4 Linux内核的目录结构
1.3 实验内容
1.3.1 实验1 安装Ubuntu 8.0.4
1.3.2 实验2 编译Linux内核
1.3.3 实验3 Linux下C语言程序开发过程
第2章 进程与线程
……
第3章 传统的进程间通信
第4章 System V的进程间通信
第5章 Shelll程序设计
第6章 页面替换算法
第7章 文件系统的设计与实现
第8章 时钟与定时器
第9章 网络通信编程
第10章 事件驱动编程
第11章 综合实验:一个小型远程访问FTP服务系统
第12章 内核模块
第13章 中断与系统调用
第14章 同步机制
第15童进程调度
第16章 存储管理
第17章 虚拟文件系统
第18章 proc文件系统
第19章 设备驱动程序
附录
参考文献