操作系统实验指导:基于Linux 内核

操作系统实验指导:基于Linux 内核
作 者: 徐虹 何嘉 张钟澍
出版社: 清华大学出版社
丛编项: 高等学校教材·计算机科学与技术
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Linux
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《操作系统实验指导:基于Linux 内核》作者简介

内容简介

内容简介"操作系统"是计算机及相关专业的必修课程,本教材所介绍的"基于Linux内核的操作系统实验体系"可引导学生与操作系统申核交互以理解其原理。整个实验体系构架在Linux内核的基础上,按系统基本构架、系统五大功能和奉统与用户的接口三方面分为7个实验;:本书共有9章;从内容上分为两大部分。第一部分包括两章,介绍了Linux的基本机制和使用方法。第二部分是对7项实验的指导:进程管理实验、存储器管理实验、用户接口实验、模块编程实验、设备管理实验、文件系统实验和操作系统构成实验。这些实验很好地解决了配合操作系统课程教学来指导学生进行实践的问题。;本书所介绍的实验涵盖了操作系统所有重要的原理和机制,既可作为大专院校计算机及电子类各专业"操作系统"的实验教学课程教材,也可供相关专业的技术人员使用。"操作系统"是计算机及相关专业的一门重要的专业课,是一门实践性很强的技术课程。掌握操作系统原理、熟悉操作系统的使用是各层次计算机软硬件开发人员必不可少的基本技能。然而,困扰"操作系统"教学的问题是讲授理论原理比较容易,而如何指导学生进行实践则相对较难。其结果导致学生不能深刻地理解操作系统的本质,因而也不能在实际中应用所学的"操作系统"理论知识及操作系统所提供的功能来解决实际问题。目前,国内大专院校讲授"操作系统"课程时,实习环境大多在DOS或UNIX下练习一些操作系统的使用技巧(若是在DOS环境下,多是让学生练习TSR多任务程序的编写:若是在UNIX环境下,也仅是让学生实习UNIX的使用及shell命令)。这样的实习环境和效果,使学生既不能深刻理解操作系统的内部机制和体系结构,也不能利用现有的内核生成一个令自己满意的操作系统,更不清楚操作系统的资源管理的主要过程,也就不用说试图自己改变系统中的部分算法及资源分配方式了。在如何解决这个问题上,美国人A.S.Tanenbaum是位先驱,由他编写的教学"操作系统"Minix在很长一段时间里较好地解决了这一问题。然而,随着计算机系统的体系结构的变化,元器件以及相应软件的飞速发展,早年开发出的Minix在很多方面已经不能适应今天的"操作系统"教学的需要了。在当今计算机科学相对发达的国度,人们也已认识到这方面的问题,他们开发出适合他们自己教学用的操作系统:OSP、BACI、NACHOS、TOYOS等,其中OSP、BACI是基于裸机的操作实验系统,而NACHOS、TOYOS是基于模拟器...

图书目录

第一部分 Linux的基本机制和使用方法

第1章 Linux概述

1.1 Linux操作系统简介

1.1.1 Linux操作系统的发展

1.1.2 Linux操作系统的特点

1.1.3 目前流行的Linux版本

1.1.4 基于Linux内核的操作系统实验体系

1.2 Linux进程管理

1.2.1 描述进程的数据结构

1.2.2 进程调度

1.2.3 创建进程

1.2.4 进程通信机制

1.3 Linux存储管理

1.3.1 地址映射

1.3.2 内存空间的分配与回收

1.3.3 Linux的页面交换机制

1.3.4 Linux的高速缓冲机制

1.4 Linux设备管理

1.4.1 Linux设备管理结构

1.4.2 I/O控制方式

1.4.3 Linux设备驱动程序

1.4.4 字符设备驱动程序

1.4.5 块设备驱动程序

1.5 Linux文件系统

1.5.1 Linux文件系统概述

1.5.2 虚拟文件系统VFS

1.5.3 EXT2文件系统

1.5.4 Linux的几个重要文件系统

第2章 Linux的使用

2.1 安装Red Hat Linux

2.2 Linux文件系统结构

2.2.1 Linux目录结构

2.2.2 目录功能简介

2.2.3 Linux文件系统的装载和卸载

2.3 Linux系统的基本操作

2.3.1 Linux系统的启动与退出

2.3.2 Linux系统对文件和目录的操作命令

2.3.3 文档备份与压缩命令

2.3.4 权限改变命令

2.3.5 Linux与用户有关的命令

2.3.6 Linux系统管理命令

2.3.7 Linux磁盘管理命令

2.3.8 进程管理命令

2.3.9 Linux其他命令

2.4 vi的使用

2.4.1 vi的操作模式

2.4.2 vi的进入与退出

2.4.3 vi的常用命令

2.5 Linux的编译器gcc

2.6 shell程序设计

2.6.1 shell程序的编写和执行

2.6.2 shell基础

2.6.3 程序设计

2.6.4 shell程序的调试

第3章 进程管理实验

3.1 实验目的

3.2 准备知识

3.2.1 基本概念

3.2.2 系统调用

3.2.3 相关函数

3.3 实验内容

3.3.1 编制实现软中断通信的程序

3.3.2 编制实现进程的管道通信的程序

3.4 实验指导

3.4.1 进程的软中断通信

3.4.2 进程的管道通信

第4章 存储器管理实验

4.1 实验目的

4.2 准备知识

4.3 实验内容

4.4 实验指导

4.4.1 FIFO页面置换算法

4.4.2 LRU页面置换算法

4.4.3 NUR页面置换算法

4.4.4 OPT页面置换算法

4.5 参考源程序代码

4.6 程序运行

第5章 用户接口实验

5.1 实验目的

5.2 准备知识

5.2.1 控制台命令接口

5.2.2 添加系统调用

5.3 实验内容

5.3.1 控制台命令接口实验

5.3.2 系统调用实验

5.4 实验指导

5.4.1 控制台命令接口实验指导

5.4.2 系统调用实验指导

第6章 模块编程实验

6.1 实验目的

6.2 准备知识

6.2.1 模块的组织结构

6.2.2 模块的编译

6.2.3 模块的加载

6.2.4 模块的卸载

6.2.5 模块链接到内核的示意图

6.2.6 模块程序中管理模块的几个文件操作

6.3 实验内容

6.3.1 编写一个简单的内核模块

6.3.2 模块加载前后的比较

6.3.3 向模块中再添加一些新函数

6.4 实验指导

6.4.1 一个简单的内核模块

6.4.2 模块加载前后的比较

6.4.3 向模块中添加新函数

6.4.4 模块的测试

第二部 实验指导

第7章 设备管理实验

7.1 实验目的

7.2 准备知识

7.2.1 设备驱动程序简介

7.2.2 设备驱动程序与外界的接口

7.2.3 设备驱动程序的组织结构

7.2.4 设备驱动程序的代码

7.3 实验内容

7.3.1 字符类型设备的驱动程序

7.3.2 块类型设备的驱动程序

7.4 实验指导

7.4.1 字符类型设备驱动程序

7.4.2 块类型设备驱动程序

7.5 参考源程序代码

7.5.1 字符设备驱动程序

7.5.2 块设备驱动程序

第8章 文件系统实验

8.1 实验目的

8.2 准备知识

8.2.1 外存管理

8.2.2 目录管理

8.2.3 文件系统的接口

8.2.4 Linux的EXT2文件系统

8.2.5 可能用到的编程技术

8.2.6 用内存模拟外存

8.3 实验内容

8.4 实验指导

8.4.1 文件系统的数据结构

8.4.2 程序设计思想

8.4.3 几个重要的算法处理

8.4.4 程序说明

第9章 操作系统构成实验

9.1 实验目的

9.2 准备知识

9.2.1 Linux操作系统的启动流程

9.2.2 开机载入程序——引导软件LILO

9.2.3 Linux根文件系统简介

9.3 实验内容

9.4 实验指导

9.4.1 实验设计思想

9.4.2 配置新内核bzImage

9.4.3 制作启动盘(Boot盘)

9.4.4 制作根文件系统盘

9.4.5 系统整合

9.4.6 系统测试

参考文献