实验目的
<
编辑
>
?/p>
熟悉
hit-oslab
实验环境?/p>
?/p>
建立对操作系统引导过程的深入认识?/p>
?/p>
掌握操作系统的基本开发过程;
?/p>
能对操作系统代码进行简单的控制,揭开操作系统的神秘面纱?/p>
实验内容
<
编辑
>
此次实验的基本内容是?/p>
1.
阅读?/p>
Linux
内核完全注释》的?/p>
6
章,对计算机?/p>
Linux 0.11
的引导过程进行初?/p>
的了解;
2.
按照下面的要求改?/p>
0.11
的引导程?/p>
bootsect.s
3.
有兴趣同学可以做做进入保护模式前的设置程?/p>
setup.s
?/p>
改写
bootsect.s
主要完成如下功能?/p>
1.
bootsect.s
能在屏幕上打印一段提示信?/p>
“XXX is booting...?/p>
,其?/p>
XXX
是你给自?/p>
的操作系统起的名字,例如
LZJos
?/p>
Sunix
等(可以上论坛上秀秀谁的
OS
名字最帅,
也可以显示一个特?/p>
logo
,以表示自己操作系统的与众不同。)
改写
setup.s
主要完成如下功能?/p>
1.
bootsect.s
能完?/p>
setup.s
的载入,并跳转到
setup.s
开始地址执行。?/p>
setup.s
向屏
幕输出一?/p>
"Now we are in SETUP"
?/p>
2.
setup.s
能获取至少一个基本的硬件参数(如内存参数、显卡参数、硬盘参数等),
将其存放在内存的特定地址,并输出到屏幕上?/p>
3.
setup.s
不再加载
Linux
内核,保持上述信息显示在屏幕上即可?/p>
实验报告
<
编辑
>
在实验报告中回答如下问题?/p>
1.
有时?/p>
继承传统意味着别手蹩脚?/p>
x86
计算机为了向下兼容,
导致启动过程比较复杂?/p>
请找?/p>
x86
计算机启动过程中?/p>
被硬件强制,
软件必须遵守的两?/p>
?/p>
多此一?/p>
?/p>
的步?/p>
(多
找几个也无妨),说说它们为什么多此一举,并设计更简洁的替代方案?/p>