Linux操作系统实验教程

出版时间:2009-2  出版社:电子工业出版社  作者:罗宇 等编著  页数:167  
Tag标签:无  

前言

操作系统是计算机系统必不可少的关键软件。操作系统教学不但需要讲授操作系统概念、原理与方法,还要让学生动手在实用操作系统上进行编程实践,只有这样才能让学生真正理解操作系统的概念、原理与方法。编写本书的目的就是为了在学习完操作系统原理后,为操作系统实践教学提供指导。Linux操作系统是源代码公开的广泛使用的操作系统,利用Linux作为操作系统课程的实验平台,不但能帮助学生进行以理解操作系统原理为目的的实验,同时也可以看作是操作系统开发实战的演练。由于Linux源代码公开以及Linux的广泛普及,我们认为将Linux作为操作系统实验教学平台还将为学生毕业后快速进入实战工作状态打下良好的基础。

内容概要

本书是国防科技大学国家精品课程“操作系统”配套教材,系统地讲解了Linux操作系统原理和基于Linux的各种编程,特别是Linux操作系统内核编程。本书内容分为三部分:第一部分介绍Linux操作系统原理;第二部分介绍10个基于Linux的实验;第三部分附录包含Linux环境下的操作及与编程有关的命令和函数列表。    本书适合作为高等学校计算机科学与技术、软件工程、信息安全、信息与计算科学、信息管理与信息系统等专业操作系统实验和课程设计教材,也是Linux开发人员熟悉Linux环境下应用及内核编程的入门参考书。

作者简介

罗宇,国防科技大学计算机学院教授,主持建设的操作系统课程获国家精品课程,是教育部专家库专家。1994年及1998年赴英国和美国学习和工作。参加了银河-1、银河-2、银河-3等国家重点科技工程操作系统开发以及863、国家自然科学基金重点项目、探索重点项目研究,主持了国防预研基金、装备预研基金、教育部骨干教师基金及企业联合等各类项目研究与开发,长期丛中操作系统课程教学,编写专著及教材8部,发表论文40多篇,曾荣获部委级科技进步奖4次。主要研究领域有:通用及嵌入式操作系统、集群与颁布式系统、网络存储、数据容灾及备份。

书籍目录

第一部分  Linux操作系统基本原理 第1章  Linux操作系统简介  1.1   Linux的渊源和发展简史  1.2   Linux的基本特性  1.3   Linux内核的开发模式与内核版本号  1.4   Linux发行版介绍  1.5   Linux内核源代码组织结构  1.6   学习Linux的辅助软件介绍 第2章  Linux的进程管理  2.1   进程与进程描述符  2.2   进程状态及切换时机   2.2.1  Linux的进程状态   2.2.2  进程的切换时机  2.3   进程的调度算法  2.4   进程的创建与消亡 第3章  Linux的存储器管理  3.1   物理内存的管理   3.1.1  页帧与区域   3.1.2  伙伴算法   3.1.3  slab分配器  3.2   进程地址空间的管理   3.2.1  页表机制   3.2.2  vm_area_struct结构   3.2.3  进程地址空间的相关系统调用   3.2.4  页面异常的处理 第4章  Linux的文件系统  4.1   VFS   4.1.1  VFS的作用   4.1.2  进程描述符中与文件系统相关的成员   4.1.3  VFS的文件模型   4.1.4  文件系统的注册与安装   4.1.5  各种对象的操作接口  4.2   EXT2文件系统   4.2.1  EXT2在磁盘上的物理布局   4.2.2  主要的数据结构及其基本操作   4.2.3  磁盘块的分配与释放  4.3   主要文件系统的系统调用处理流程   4.3.1  文件的open操作   4.3.2  文件的read操作 第5章  Linux的设备管理  5.1   设备文件的概念  5.2   设备模型基础  5.3   相关数据结构   5.3.1  字符设备管理   5.3.2  块设备管理   5.3.3  buffer   5.3.4  设备请求队列和I/O调度算法  5.4   块设备文件的open和read操作   5.4.1  块设备驱动程序组成   5.4.2  open函数   5.4.3  read函数 第6章  中断、异常及系统调用  6.1   中断和异常的基本知识  6.2   异常处理函数  6.3  系统调用  6.4   中断的处理   6.4.1  中断控制器   6.4.2  管理中断的数据结构   6.4.3  中断的处理过程  6.5   软中断 第7章  Sys V进程间通信  7.1   共有的特性  7.2   信号量  7.3   消息队列  7.4   共享内存第二部分  基于Linux操作系统的实验 第8章  用户态编程实验  8.1   实验1——bash脚本编程   8.1.1  实验内容   8.1.2  bash脚本编程简介    8.1.2.1  注释和简单命令    8.1.2.2  环境变量    8.1.2.3  控制结构    8.1.2.4  函数   8.1.3  实验指南  8.2   实验2——观察Linux行为   8.2.1  实验内容   8.2.2  proc文件系统简介   8.2.3  实验指南    8.2.3.1  Linux环境下C语言编程环境简介    8.2.3.2  实验程序框架  8.3  实验3——实现Linux命令解释器   8.3.1  实验内容   8.3.2  myshell的语法   8.3.3  myshell的程序框架   8.3.4  myshell命令行的语法分析   8.3.5  简单命令的执行   8.3.6  myshell的Makefile   8.3.7  实验指南 第9章  内核编程基础实验  9.1   实验4——内核模块   9.1.1  实验内容   9.1.2  Linux内核模块简介   9.1.3  内核符号表   9.1.4  内核模块编程介绍    9.1.4.1  内核模块实例    9.1.4.2  模块编程的基本知识    9.1.4.3  Makefile介绍   9.1.5  实验指南   9.1.6  测试  9.2   实验5——proc文件系统编程   9.2.1  实验内容   9.2.2  proc文件系统编程简介    9.2.2.1  proc文件系统编程示例    9.2.2.2  proc文件系统的核心数据结构    9.2.2.3  proc文件系统编程接口   9.2.3  实验指南  9.3  实验6——编译内核及增加Linux系统调用   9.3.1  实验内容   9.3.2  Fedora下编译内核    9.3.2.1  第1步——下载内核    9.3.2.2  第2步——生成内核配置文件.config    9.3.2.3  第3步——编译和安装新的内核   9.3.3  添加psta系统调用   9.3.4  测试新增系统调用psta   9.3.5  noexec系统调用的实现 第10章  内核编程综合实验  10.1   实验7——进程隐藏   10.1.1  实验内容   10.1.2  背景知识介绍   10.1.3  proc文件系统实现简介   10.1.4  实验指南    10.1.4.1  功能⑴的实现    10.1.4.2  功能(5)的实现    10.1.4.3  功能(7)的实现  10.2  实验8——字符设备驱动开发   10.2.1  实验内容   10.2.2  字符设备驱动开发介绍    10.2.2.1  测试字符设备    10.2.2.2  描述设备的数据结构    10.2.2.3  设备号的操作    10.2.2.4  字符设备的注册与注销    10.2.2.5  文件操作集    10.2.2.6  同步   10.2.3  字符设备chatdev的实现   10.2.4  聊天程序chat的实现  10.3  实验9——naive文件系统的设计与实现   10.3.1  实验内容   10.3.2  项目的准备工作及建议   10.3.3  实验指南    10.3.3.1  第1步——创建设备    10.3.3.2  第2步——格式化分区    10.3.3.3  第3步——定义并注册naive文件系统    10.3.3.4  第4步——安装/卸载文件系统分区    10.3.3.5  第5步——显示根目录的内容    10.3.3.6  第6步——在根目录下创建内容为空的文件    10.3.3.7  第7步——写文件和读文件    10.3.3.8  第8步——删除文件    10.3.3.9  第9步——创建目录    10.3.3.10  第10步——删除目录  10.4  实验10——块设备驱动开发   10.4.1  实验内容   10.4.2  实验基础和思路    10.4.2.1  参考驱动程序1——块设备驱动程序sbull    10.4.2.2  参考驱动程序2——USB字符设备驱动程序usb-skeleton   10.4.3  U盘驱动的帮助函数    10.4.3.1  函数原型及其使用    10.4.3.2  工作原理和过程   10.4.4  实验指南第三部分  Linux环境下的操作及常用命令和函数 附录A  Linux常用命令  A.1  用户终端命令  A.2  vi编辑器的用法 附录B  Linux常用函数  B.1  进程管理函数  B.2  文件管理函数  B.3  进程间通信  B.4  多线程库 附录C  内核配置文件的生成  C.1  配置文件初步生成  C.2  修改内核配置文件  C.3  内核编译选项介绍参考文献

章节摘录

插图:Linux内核是单体的(monolithic),即编译器把各个内核组件链接生成一个大的可执行文件。另一种内核结构是微内核(microkernel),它只把一些最基本的功能,如进程间通信、同步原语,做入内核,其他(如文件系统、存储器管理、设备驱动等)都作为用户态进程出现,相对普通的应用程序来讲,它们可以看成服务器进程,为应用程序提供服务。微内核有许多理论上的优势,如模块化更好、易于移植、更加稳定、不易崩溃等,但是在性能方面一直比不上单体内核,因为微内核体系导致的进程问通信开销非常大。Linux的内核模块(module)机制不仅可以弥补单体内核相对微内核的一些不足,而且对性能没有影响。内核模块是一个目标文件,可以动态载入内核,也可以动态卸载。实际上,Linux中大多数设备驱动程序或文件系统都以模块方式实现,因为它们数目繁多,体积庞大,不适合直接编译在内核中。而通过模块机制,在需要使用它们的时候再临时加载,是最适合不过的。另外一个明显的好处是,当采用模块技术进行开发时,用户修改代码后只需重新编译加载模块,而不必重新编译内核和引导系统。

编辑推荐

《Linux操作系统实验教程》在国家规划教材的基础上,进行全面更新,以适应高校课程与教堂改革的需要,并注意教材的可读性和可用性,为任课教师提供各种教堂服务(包括教学电子课件、教学指导材料、习题解答和实验指导等)。

图书封面

图书标签Tags

评论、评分、阅读与下载


    Linux操作系统实验教程 PDF格式下载


用户评论 (总计8条)

 
 

  •   巨流河是买来送朋友的,自己之前已经在kindle上看过了。。。Linux那本准备开始看
  •   看起来还不错,封面和商品的图不一样,比图片好看
  •   ly老师的书必买啊
  •   主要是实验偏重适合作为练习的材料
  •   不是很详细,有的东西没有解释看不懂
  •   一般,真一般,没什么好说的,
  •   这本Linux实验书还行,讲的还蛮细的。
  •   内容不是很深入,但是作为入门编程还是可以的
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7