《Linux操作系统实验教程》PDF下载

  • 购买积分:9 如何计算积分?
  • 作  者:罗宇,陈燕晖,文艳军等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2009
  • ISBN:9787121082177
  • 页数:167 页
图书介绍:本书是国防科技大学国家精品课程“操作系统”配套教材,系统地讲解了Linux操作系统原理和基于Linux的各种编程,特别是Linux操作系统内核编程。本书内容分为三部分,第一部分介绍Linux操作系统原理;第二部分介绍10个基于Linux的实验;第三部分附录包含Linux环境下的操作及与编程相关的命令和函数列表。

第一部分 Linux操作系统基本原理 3

第1章 Linux操作系统简介 3

1.1 Linux的渊源和发展简史 3

1.2 Linux的基本特性 4

1.3 Linux内核的开发模式与内核版本号 5

1.4 Linux发行版介绍 6

1.5 Linux内核源代码组织结构 7

1.6 学习Linux的辅助软件介绍 8

第2章 Linux的进程管理 10

2.1 进程与进程描述符 10

2.2 进程状态及切换时机 11

2.2.1 Linux的进程状态 11

2.2.2 进程的切换时机 12

2.3 进程的调度算法 13

2.4 进程的创建与消亡 14

第3章 Linux的存储器管理 17

3.1 物理内存的管理 17

3.1.1 页帧与区域 17

3.1.2 伙伴算法 17

3.1.3 slab分配器 18

3.2 进程地址空间的管理 19

3.2.1 页表机制 20

3.2.2 vm_area_struct结构 21

3.2.3 进程地址空间的相关系统调用 22

3.2.4 页面异常的处理 22

第4章 Linux的文件系统 24

4.1 VFS 24

4.1.1 VFS的作用 24

4.1.2 进程描述符中与文件系统相关的成员 24

4.1.3 VFS的文件模型 25

4.1.4 文件系统的注册与安装 27

4.1.5 各种对象的操作接口 28

4.2 EXT2文件系统 30

4.2.1 EXT2在磁盘上的物理布局 30

4.2.2 主要的数据结构及其基本操作 31

4.2.3 磁盘块的分配与释放 34

4.3 主要文件系统的系统调用处理流程 34

4.3.1 文件的open操作 34

4.3.2 文件的read操作 35

第5章 Linux的设备管理 37

5.1 设备文件的概念 37

5.2 设备模型基础 37

5.3 相关数据结构 38

5.3.1 字符设备管理 38

5.3.2 块设备管理 39

5.3.3 buffer 40

5.3.4 设备请求队列和I/O调度算法 41

5.4 块设备文件的open和read操作 41

5.4.1 块设备驱动程序组成 41

5.4.2 open函数 41

5.4.3 read函数 42

第6章 中断、异常及系统调用 43

6.1 中断和异常的基本知识 43

6.2 异常处理函数 43

6.3 系统调用 44

6.4 中断的处理 45

6.4.1 中断控制器 45

6.4.2 管理中断的数据结构 45

6.4.3 中断的处理过程 47

6.5 软中断 47

第7章 Sys V进程间通信 49

7.1 共有的特性 49

7.2 信号量 50

7.3 消息队列 52

7.4 共享内存 54

第二部分 基于Linux操作系统的实验 59

第8章 用户态编程实验 59

8.1 实验1—bash脚本编程 59

8.1.1 实验内容 59

8.1.2 bash脚本编程简介 59

8.1.2.1 注释和简单命令 59

8.1.2.2 环境变量 60

8.1.2.3 控制结构 60

8.1.2.4 函数 64

8.1.3 实验指南 64

8.2 实验2—观察Linux行为 65

8.2.1 实验内容 65

8.2.2 proc文件系统简介 65

8.2.3 实验指南 69

8.2.3.1 Linux环境下C语言编程环境简介 69

8.2.3.2 实验程序框架 69

8.3 实验3—实现Linux命令解释器 70

8.3.1 实验内容 70

8.3.2 myshell的语法 70

8.3.3 myshell的程序框架 71

8.3.4 myshell命令行的语法分析 72

8.3.5 简单命令的执行 74

8.3.6 myshell的Makefile 74

8.3.7 实验指南 75

第9章 内核编程基础实验 76

9.1 实验4—内核模块 76

9.1.1 实验内容 76

9.1.2 Linux内核模块简介 76

9.1.3 内核符号表 76

9.1.4 内核模块编程介绍 77

9.1.4.1 内核模块实例 77

9.1.4.2 模块编程的基本知识 78

9.1.4.3 Makefile介绍 79

9.1.5 实验指南 80

9.1.6 测试 82

9.2 实验5—proc文件系统编程 83

9.2.1 实验内容 83

9.2.2 proc文件系统编程简介 83

9.2.2.1 proc文件系统编程示例 83

9.2.2.2 proc文件系统的核心数据结构 85

9.2.2.3 proc文件系统编程接口 86

9.2.3 实验指南 88

9.3 实验6—编译内核及增加Linux系统调用 88

9.3.1 实验内容 89

9.3.2 Fedora下编译内核 89

9.3.2.1 第1步—下载内核 90

9.3.2.2 第2步—生成内核配置文件.config 90

9.3.2.3 第3步—编译和安装新的内核 91

9.3.3 添加psta系统调用 92

9.3.4 测试新增系统调用psta 94

9.3.5 noexec系统调用的实现 95

第10章 内核编程综合实验 96

10.1 实验7—进程隐藏 96

10.1.1 实验内容 96

10.1.2 背景知识介绍 96

10.1.3 proc文件系统实现简介 98

10.1.4 实验指南 102

10.1.4.1 功能(1)的实现 102

10.1.4.2 功能(5)的实现 103

10.1.4.3 功能(7)的实现 106

10.2 实验8—字符设备驱动开发 106

10.2.1 实验内容 107

10.2.2 字符设备驱动开发介绍 107

10.2.2.1 测试字符设备 109

10.2.2.2 描述设备的数据结构 110

10.2.2.3 设备号的操作 110

10.2.2.4 字符设备的注册与注销 111

10.2.2.5 文件操作集 111

10.2.2.6 同步 112

10.2.3 字符设备chatdev的实现 113

10.2.4 聊天程序chat的实现 114

10.3 实验9—naive文件系统的设计与实现 115

10.3.1 实验内容 115

10.3.2 项目的准备工作及建议 115

10.3.3 实验指南 116

10.3.3.1 第1步—创建设备 116

10.3.3.2 第2步—格式化分区 116

10.3.3.3 第3步—定义并注册naive文件系统 117

10.3.3.4 第4步—安装/卸载文件系统分区 118

10.3.3.5 第5步—显示根目录的内容 121

10.3.3.6 第6步—在根目录下创建内容为空的文件 124

10.3.3.7 第7步—写文件和读文件 126

10.3.3.8 第8步—删除文件 127

10.3.3.9 第9步—创建目录 128

10.3.3.10 第10步—删除目录 129

10.4 实验10—块设备驱动开发 130

10.4.1 实验内容 130

10.4.2 实验基础和思路 130

10.4.2.1 参考驱动程序1—块设备驱动程序sbull 130

10.4.2.2 参考驱动程序2—USB字符设备驱动程序usb-skeleton 132

10.4.3 U盘驱动的帮助函数 133

10.4.3.1 函数原型及其使用 133

10.4.3.2 工作原理和过程 136

10.4.4 实验指南 138

第三部分 Linux环境下的操作及常用命令和函数 143

附录A Linux常用命令 143

A.1 用户终端命令 143

A.2 vi编辑器的用法 151

附录B Linux常用函数 154

B.1 进程管理函数 154

B.2 文件管理函数 156

B.3 进程间通信 158

B.4 多线程库 161

附录C 内核配置文件的生成 164

C.1 配置文件初步生成 164

C.2 修改内核配置文件 165

C.3 内核编译选项介绍 166

参考文献 167