《操作系统课程设计》
实验报告
学号: 1117404059
姓名: 姜栏
苏州大学计算机科学与技术学院
2014年9月
目 录
目 录1
一、实验环境2
二、实验报告总体要求2
实验一 编译Linux内核3
实验二 观察Linux行为7
实验三 进程间通信14
一、实验环境
Linux平台
硬件平台:普通PC机硬件环境。
操作系统:Linux环境,例如,红旗Linux或Red Hat Linux;启动管理器使用GRUB。
编译环境:伴随着操作系统的默认gcc环境。
工作源码环境:一个调试的内核源码,版本不低于2.4.20。
二、实验报告总体要求
在201年1月日前提交实验报告。实验报告至少要求包含以下内容:
引言:概述本次实验所讨论的问题,工作步骤,结果,以及发现的意义。
问题提出:叙述本篇报告要解决什么问题。注意不可以抄写实验要求中的表述,要用自己的话重新组织我们这里所提出的问题。
解决方案:叙述如何解决自己上面提出的问题,可以用小标题3.1, 3.2…等分开。这是实验报告的关键部分,请尽量展开来写。注意,这部分是最终课程设计的基本分的部分。这部分不完成,本课程设计不会及格。
实验结果:按照自己的解决方案,有哪些结果。结果有异常吗?能解释一下这些结果吗?同别人的结果比较过吗?注意,这部分是实验报告出彩的地方。本课程设计要得高分,应该在这部分下功夫。
结束语:小结并叙述本次课程设计的经验、教训、体会、难点、收获、为解决的问题、新的疑惑等。
附录:加了注释的程序清单,注释行数目至少同源程序行数目比1:2,即10行源程序,至少要给出5行注释。
实验一 编译Linux内核
实验时间
6小时实验目的
认识Linux内核的组成,掌握配置、编译、安装Linux内核的步骤。实验目标
下载2.6.19或更新的Linux内核,配置该内核使其支持NTFS,并在新的内核中修改其版本为Linux NameTestKernel x.x.x,其中,Name是你的名字(汉语拼音);x.x.x是新内核的版本号,最后在你的机器上编译安装这个新内核。
背景知识
参见《Red Hat Enterprise Linux 4入门与提高》第20章。
实验步骤
验证gcc的可用:在你自己的工作目录下,编译运行Hello World程序。
在上下载指定的内核,或者查找更新的稳定版内核并下载之。
准备相关工具。
提示:如当前运行的Linux内核是基于2.4版本的,则需要更新以下软件:module-init-tools和mkinitrd。具体更新信息可参见下载内核源代码中的Documentation/Changes这个文件。
把源代码解压缩至/usr/src中,最终形成/usr/src/linux x.x.x/目录(x.x.x是新内核的版本号)。
提示:这里的注意点是路径的选择,一般要放在/usr/src/linux x.x.x/目录下面,以满足Makefile对路径设置的初始要求。
进入源代码的根目录,找到合适自己的内核配置方法,并按照实验目标对其进行配置。
修改 /usr/src/linux x.x.x/include/linux/verson.h文件中的版本信息。
编译内核。
安装模块文件。
安装内核文件。
重新启动新内核。
实验结果
实验步骤1中,编译运行程序你下达了哪些命令?
实验步骤2中,你下载了哪个版本的内核文件?
实验步骤3中,你是否安装了相关工具?如安装,则写出安装过程。
实验步骤4中,你是用哪些命令解压缩内核文件的?
实验步骤5中,你用了哪种内核配置的方法?
你对实验步骤6中涉及的文件做了怎样的修改?
实验步骤7-9的过程
观察你机器中GRUB的配置文件,它在安装完新内核后发生了哪些变化?
新内核启动过程是否成功?如有错误,是哪些错误?你是如何消错的?
实验报告
”添加到源文件中
/*!
* \private
// 声明私有变量及分配存储空间声明私有变量及分配存储空间内核数据结构指针的核心数据lwsem struct PTR SEM检查PTR如果启用用户模式代码检查lwsem是否已经初始化因为轻量的核心组件,应用程序不需要在它创建的轻量级信号量创建组件
参数sem_ptr指针创建轻量级信号参数 initial_number初始数量的可用信号量。向服务器传送数据参数sem_ptr指针创建轻量级信号参数 initial_number初始数量的可用信号量。这个函数是一个相当于_lwsem_create() API调用可执行从用户任务或其他代码在CPU用户模式运行。
如下面的参数列表描述需要