.. .
操作系统实验报告
实验名称
所在班级
指导老师
实验日期. 系统的引导 老师 2014年 3 月 29 日 word. …
: : : : .. .
一、实验目的
? ? ?
?
熟悉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向屏幕输出一行\。setup.s能获取至少一个基本的硬件参数(如存参数、显卡参数、硬盘参数等),将其存放在存的特定地址,并输出到屏幕上。setup.s不再加载Linux核,保持上述信息显示在屏幕上即可。
三、实验环境
. word. …
.. .
本实验使用的系统是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
. word. …
.. .
如上命令见图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
. word. …
.. .
见图7
图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行的数据为如下图所示的
. word. …