第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 安装Ubuntu8.0.4
1.3.2 实验2 编译Linux内核
1.3.3 实验3 Linux下C语言程序开发过程
第2章 进程与线程
2.1 实验目的
2.2 背景知识
2.2.1 进程与线程的概念
2.2.2 多进程编程
2.2.3 多线程编程
2.3 实验内容
2.3.1 实验l 创建进程
2.3.2 实验2 线程共享进程中的数据
2.3.3 实验3 多线程实现单词统计工具
第3章 传统的进程间通信
3.1 实验目的
3.2 背景知识
3.2.1 进程间通信的方式
3.2.2 信号通信
3.2.3 管道通信
3.3 实验内容
3.3.1 实验1 信号通信
3.3.2 实验2 匿名管道通信
3.3.3 实验3 命名管道通信
3.3.4 实验4 使用命名管道建立客户/服务器关联程序
第4章 SystemV的进程间通信
4.1 实验目的
4.2 背景知识
4.2.1 SystemV的进程间通信机制
4.2.2 消息队列
4.2.3 信号量
4.2.4 共享主存
4.3 实验内容
4.3.1 实验1 消息队列实现进程间通信
4.3.2 实验2 信号量实现进程同步
4.3.3 实验3 基于信号量采用多线程技术实现进程同步
4.3.4 实验4 共享主存实现进程间通信
第5章 Shell程序设计
5.1 实验目的
5.2 背景知识
5.2.1 Shell简介
5.2.2 Shell的主要功能
5.2.3 Shell主要功能的实现
5.2.4 Shell编程
5.3 实验内容
5.3.1 实验1 编写一个简单的Shell程序——MyShell
5.3.2 实验2 基于Shell的网络管理
第6章 页面替换算法
6.1 实验目的
6.2 背景知识
6.2.1 存储管理的目的和功能
6.2.2 存储管理涉及的基本概念
6.2.3 实存管理的原理和实现技术
6.2.4 虚存管理的原理和实现技术
6.3 实验内容
6.3.1 实验l模拟实现动态分区存储管理
6.3.2 实验2模拟实现请求分页虚存页面替换算法
第7章 文件系统的设计与实现
7.1 实验目的
7.2 背景知识
7.2.1 文件系统的基本概念
7.2.2 文件管理的数据结构
7.2.3 Ext2文件系统
7.3 实验模拟实现一个Linux文件系统
7.3.1 实验说明
7.3.2 解决方案
7.3.3 主要功能模块设计
7.3.4 程序框架
第8章 时钟与定时器
8.1 实验目的
8.2 背景知识
8.2.1 定时器机制的概念
8.2.2 时间维护
8.2.3 定时器
8.3 实验内容
8.3.1 实验l 统计进程时间
8.3.2 实验2 通过alarmq()实现sleep()函数功能
8.3.3 实验3 基于单定时器实现任意数目的逻辑定时器
第9章 网络通信编程
9.1 实验目的
9.2 背景知识
9.2.1 网间进程通信概念
9.2.2 网间进程通信协议
9.2.3 套接字编程
9.3 实验内容
9.3.1 实验1 UDP通信
9.3.2 实验2 基于TCP的客户/服务器程序
第10章 事件驱动编程
10.1 实验目的
10.2 背景知识
10.2.1 视频游戏的概念
10.2.2 curses库的历史
10.2.3 使用curses库
10.3 实验内容
10.3.1 实验1 利用curses库实现弹球游戏
10.3.2 实验2 利用多线程实现弹球游戏
第11章 综合实验:一个小型远程访问FTP服务系统
11.1 实验目的
11.2 背景知识
11.2.1 客户/服务器计算模型
11.2.2 中间件
11.2.3 FTP技术简介
11.3 综合实验功能设计
11.4 综合实验解决方案
11.4.1 服务器端接收客户请求的套接字结构
11.4.2 客户端发送套接字连接请求的核心代码
11.4.3 与线程处理相关的核心函数
11.4.4 接收客户请求与实现客户会话的线程
11.4.5 文件管理
11.4.6 套接字通信
11.5 综合实验程序框架
11.5.1 客户端代码框架
11.5.2 服务端代码框架
第12章 内核模块
12.1 实验目的
12.2 背景知识
12.2.1 内核模块概述
12.2.2 内核模块编程
12.2.3 内核模块机制的实现
12.3 实验内容
第13章 中断与系统调用
13.1 实验目的
13.2 背景知识
13.2.1 中断机制
13.2.2 系统调用的概念
13.2.3 系统调用的执行流程
13.2.4 新系统调用机制sysenter/sysexit
13.3 实验内容
第14章 同步机制
14.1 实验目的
14.2 背景知识
14.2.1 进程同步和同步机制
14.2.2 Linux内核的并发性和同步机制
14.3 实验内容
第15章 进程调度
15.1 实验目的
15.2 背景知识
15.2.1 调度策略和调度机制
15.2.2 Linux2.4的调度算法及其不足
15.2.3 Linux2.6调度算法的设计与实现
15.3 实验内容
第16章 存储管理
16.1 实验目的
16.2 背景知识
16.2.1 x86的分段机制
16.2.2 物理存储管理
16.2.3 进程虚拟存储管理
16.2.4 slab分配器
16.3 实验内容
第17章 虚拟文件系统
17.1 实验目的
17.2 背景知识
17.2.1 虚拟文件系统的基本概念和原理
17.2.2 文件系统的安装和挂载
17.2.3 虚拟文件系统的结构和通用文件模型
17.3 实验内容
第18章 proc文件系统
18.1 实验目的
18.2 背景知识
18.2.1 proc文件系统简介
18.2.2 proc文件系统数据结构
18.3 实验内容
18.3.1 实验1 向proc文件系统中添加可读写文件
18.3.2 实验2 通过proc文件系统查看进程信息
第19章 设备驱动程序
19.1 实验目的
19.2 背景知识
19.2.1 基础知识
19.2.2 字符设备
19.2.3 块设备
19.2.4 磁盘I/O调度程序
19.3 实验内容
附录
附录A vi编辑器
附录B emacs编辑器
附录C Linux常用命令
附录D LimLx函数
附录E 操作系统实验报告内容
参考文献