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

  • 购买积分:15 如何计算积分?
  • 作  者:费翔林主编;李敏,叶保留编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2009
  • ISBN:9787040262940
  • 页数:467 页
图书介绍:学习操作系统的最好途径是理论和实践相结合,本书是与高等教育出版社出版的《操作系统教程》(笫4版)配套的操作系统实验教材,以Linux2.6内核版本为平台,精心设计系列实验题目,每个(组)实验题目包括:实验目的、背景知识、实验内容、解决方案、程序框架,为操作系统实践教学提供指导。

第1章 Linux的安装和编译 1

1.1 实验目的 1

1.2 背景知识 1

1.2.1 Linux简史 1

1.2.2 Linux内核的功能和结构 2

1.2.3 Linux内核的版本和发行版本 4

1.2.4 Linux内核的目录结构 4

1.3 实验内容 6

1.3.1 实验1 安装Ubuntu 8.0.4 6

1.3.2 实验2 编译Linux内核 11

1.3.3 实验3 Linux下C语言程序开发过程 15

第2章 进程与线程 28

2.1 实验目的 28

2.2 背景知识 28

2.2.1 进程与线程的概念 28

2.2.2 多进程编程 30

2.2.3 多线程编程 58

2.3 实验内容 66

2.3.1 实验1 创建进程 66

2.3.2 实验2 线程共享进程中的数据 67

2.3.3 实验3 多线程实现单词统计工具 68

第3章 传统的进程间通信 70

3.1 实验目的 70

3.2 背景知识 70

3.2.1 进程间通信的方式 70

3.2.2 信号通信 72

3.2.3 管道通信 84

3.3 实验内容 91

3.3.1 实验1 信号通信 91

3.3.2 实验2 匿名管道通信 94

3.3.3 实验3 命名管道通信 95

3.3.4 实验4 使用命名管道建立客户/服务器关联程序 96

第4章 System V的进程间通信 100

4.1 实验目的 100

4.2 背景知识 100

4.2.1 System V的进程间通信机制 100

4.2.2 消息队列 104

4.2.3 信号量 112

4.2.4 共享主存 122

4.3 实验内容 129

4.3.1 实验1 消息队列实现进程间通信 129

4.3.2 实验2 信号量实现进程同步 131

4.3.3 实验3 基于信号量采用多线程技术实现进程同步 134

4.3.4 实验4 共享主存实现进程间通信 137

第5章 Shell程序设计 139

5.1 实验目的 139

5.2 背景知识 139

5.2.1 Shell简介 139

5.2.2 Shell的主要功能 140

5.2.3 Shell主要功能的实现 141

5.2.4 Shell编程 145

5.3 实验内容 150

5.3.1 实验1 编写一个简单的Shell程序——MyShell 150

5.3.2 实验2 基于Shell的网络管理 159

第6章 页面替换算法 161

6.1 实验目的 161

6.2 背景知识 161

6.2.1 存储管理的目的和功能 161

6.2.2 存储管理涉及的基本概念 162

6.2.3 实存管理的原理和实现技术 164

6.2.4 虚存管理的原理和实现技术 166

6.3 实验内容 168

6.3.1 实验1 模拟实现动态分区存储管理 168

6.3.2 实验2 模拟实现请求分页虚存页面替换算法 171

第7章 文件系统的设计与实现 181

7.1 实验目的 181

7.2 背景知识 181

7.2.1 文件系统的基本概念 181

7.2.2 文件管理的数据结构 182

7.2.3 Ext2文件系统 185

7.3 实验 模拟实现一个Linux文件系统 188

7.3.1 实验说明 188

7.3.2 解决方案 188

7.3.3 主要功能模块设计 189

7.3.4 程序框架 221

第8章 时钟与定时器 225

8.1 实验目的 225

8.2 背景知识 225

8.2.1 定时器机制的概念 225

8.2.2 时间维护 225

8.2.3 定时器 229

8.3 实验内容 234

8.3.1 实验1 统计进程时间 234

8.3.2 实验2 通过alarm()实现sleep()函数功能 236

8.3.3 实验3 基于单定时器实现任意数目的逻辑定时器 238

第9章 网络通信编程 242

9.1 实验目的 242

9.2 背景知识 242

9.2.1 网间进程通信概念 242

9.2.2 网间进程通信协议 243

9.2.3 套接字编程 246

9.3 实验内容 253

9.3.1 实验1 UDP通信 253

9.3.2 实验2 基于TCP的客户/服务器程序 257

第10章 事件驱动编程 261

10.1 实验目的 261

10.2 背景知识 261

10.2.1 视频游戏的概念 261

10.2.2 curses库的历史 261

10.2.3 使用curses库 262

10.3 实验内容 273

10.3.1 实验1 利用curses库实现弹球游戏 273

10.3.2 实验2 利用多线程实现弹球游戏 280

第11章 综合实验:一个小型远程访问FTP服务系统 282

11.1 实验目的 282

11.2 背景知识 282

11.2.1 客户/服务器计算模型 282

11.2.2 中间件 283

11.2.3 FTP技术简介 285

11.3 综合实验功能设计 286

11.4 综合实验解决方案 287

11.4.1 服务器端接收客户请求的套接字结构 287

11.4.2 客户端发送套接字连接请求的核心代码 288

11.4.3 与线程处理相关的核心函数 289

11.4.4 接收客户请求与实现客户会话的线程 290

11.4.5 文件管理 292

11.4.6 套接字通信 293

11.5 综合实验程序框架 297

11.5.1 客户端代码框架 297

11.5.2 服务端代码框架 299

第12章 内核模块 301

12.1 实验目的 301

12.2 背景知识 301

12.2.1 内核模块概述 301

12.2.2 内核模块编程 302

12.2.3 内核模块机制的实现 308

12.3 实验内容 311

第13章 中断与系统调用 314

13.1 实验目的 314

13.2 背景知识 314

13.2.1 中断机制 314

13.2.2 系统调用的概念 320

13.2.3 系统调用的执行流程 321

13.2.4 新系统调用机制sysenter/sysexit 327

13.3 实验内容 333

第14章 同步机制 336

14.1 实验目的 336

14.2 背景知识 336

14.2.1 进程同步和同步机制 336

14.2.2 Linux内核的并发性和同步机制 342

14.3 实验内容 345

第15章 进程调度 353

15.1 实验目的 353

15.2 背景知识 353

15.2.1 调度策略和调度机制 353

15.2.2 Linux 2.4的调度算法及其不足 354

15.2.3 Linux 2.6调度算法的设计与实现 356

15.3 实验内容 367

第16章 存储管理 371

16.1 实验目的 371

16.2 背景知识 371

16.2.1 x86的分段机制 371

16.2.2 物理存储管理 373

16.2.3 进程虚拟存储管理 375

16.2.4 slab分配器 381

16.3 实验内容 384

第17章 虚拟文件系统 387

17.1 实验目的 387

17.2 背景知识 387

17.2.1 虚拟文件系统的基本概念和原理 387

17.2.2 文件系统的安装和挂载 389

17.2.3 虚拟文件系统的结构和通用文件模型 390

17.3 实验内容 393

第18章 proc文件系统 414

18.1 实验目的 414

18.2 背景知识 414

18.2.1 proc文件系统简介 414

18.2.2 proc文件系统数据结构 417

18.3 实验内容 420

18.3.1 实验1 向proc文件系统中添加可读写文件 420

18.3.2 实验2 通过proc文件系统查看进程信息 422

第19章 设备驱动程序 424

19.1 实验目的 424

19.2 背景知识 424

19.2.1 基础知识 424

19.2.2 字符设备 426

19.2.3 块设备 429

19.2.4 磁盘I/O调度程序 439

19.3 实验内容 441

附录 449

附录A vi编辑器 449

附录B emacs编辑器 452

附录C Linux常用命令 454

附录D Linux函数 461

附录E 操作系统实验报告内容 465

参考文献 466