当前位置:文档之家› 操作系统实验报告

操作系统实验报告

操作系统实验报告
实验名称: 系统的引导
所在班级:
指导老师: 老师
实验日期: 2014年3 月29 日
一、实验目的
◆熟悉hit-oslab实验环境;
◆建立对操作系统引导过程的深入认识;
◆掌握操作系统的基本开发过程;
◆能对操作系统代码进行简单的控制,揭开操作系统的神秘面纱。

二、实验容
1. 阅读《Linux核完全注释》的第6章引导启动程序,对计算机和Linux 0.11的引导过程进行初步的了解。

2. 按照下面的要求改写0.11的引导程序bootsect.s。

3. 有兴趣同学可以做做进入保护模式前的设置程序setup.s。

4. 修改build.c,以便可以使用make BootImage命令
5. 改写bootsect.s主要完成如下功能:
bootsect.s能在屏幕上打印一段提示信息XXX is booting...,其中XXX是你给自己的操作系统起的名字,例如LZJos、Sunix等。

6. 改写setup.s主要完成如下功能:
bootsect.s能完成setup.s的载入,并跳转到setup.s开始地址执行。

而setup.s 向屏幕输出一行"Now we are in SETUP"。

setup.s能获取至少一个基本的硬件参数(如存参数、显卡参数、硬盘参数等),将其存放在存的特定地址,并输出到屏幕上。

setup.s不再加载Linux核,保持上述信息显示在屏幕上即可。

三、实验环境
本实验使用的系统是windows系统或者是Linux系统,需要的材料是osexp。

四、实验步骤
1. 修改bootsect.s中的提示信息及相关代码;
到osexp\Linux-0.11\boot目录下会看到图1所示的三个文件夹,使用UtraEdit 打开该文件。

将文档中的98行的mov cx,#24修改为mov cx,#80。

同时修改文档中的第246行为图2所示的情形。

图1图2
图3
2. 在目录linux-0.11\boot下,分别用命令as86 -0 -a -o bootsect.obootsect.s和
ld86 -0 -s -obootsectbootsect.o编译和bootsect.s,生成bootsect文件;
在\osexp目录下点击MinGW32.bat依此输入下面的命令:
cd linux-0.11
cd boot
as86 -0 -a -o bootsect.obootsect.s
ld86 -0 -s -o bootsectbootsect.o
如上命令见图3。

这个时候在osexp\Linux-0.11\boot下我们发现与图1对比多了两个文件这两个文件是bootsect和bootsect.o见图4。

图4
3. 在windows系统下使用UtraEdit删除掉前32个字节的容,将文件名改为成Image文件,并复制Image到linux-0.11目录下。

在windows系统下用UtraEdit打开bootsect我们使用ctr+x组合键删除第一行和第二汗的数据见图然后保存。

这是我删除bootsect.bak文件并且修改bootsect文件名为Image,将修改后的文件复制到osexp\Linux-0.11目录下。

图6
4. 运行run命令验证运行结果是否正确;
在刚才未关闭的MinGW32.bat窗口下输入如下命令
cd ..
cd ..
run
图7
这是会看到如下的窗口显示,同时显示了我们修改的容ZSK’s OS is Loading ..
图8
5.重新用make命令生成BootImage,结合提示信息和makefile文件修改build.c;重新打开MinGW32.bat窗口下输入如下命令
cd linux-0.11
makeBootImage
见图9和提示信息
图9
打开osexp\Linux-0.11\tools目录下的build.c修改第208行的数据为如下图所示的
图10
打开osexp\Linux-0.11\boot目录下setup.s文件修改为附录中代码部分的容。

同时删除setup.o和setup.bin和bootsect.bin这三个文件。

6. 验证:用make是否能成功生成BootImage。

再执行一次如下命令:
cd linux-0.11
makeBootImage
图11
在MinGW32.bat窗口下输入如下命令
cd ..
run
看到如下的窗口:
图12
实验完成。

五、小组成员
六、感悟:
通过本次试验,第一次接触到有关操作系统的东西,了解了一些基本的命令语句,也对本门课程产生了浓厚的兴趣,对今后对这门课程的学习有很大的帮助。

相关主题