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