哈工大操作系统实验---lab1:操作系统的引导

实验目标:

1、改写bootsect.s的代码,使得屏幕上可以输出"LiqingDongOS is loading..."

本实验的后面三项内容暂时未完成:
2、bootsect.s能够完成setup.s的载入,并跳转到setup.s开始执行处,并输出"Now we are in SETUP"
3、setup.s能获取硬件参数,并输出到屏幕上
4、完成了输出硬件参数的步骤后,不再继续加载linux内核,保持上述信息


步骤:

1、进入oslab目录,解压liunx0.11压缩文件,然后使用make all编译内核

2、改写bootsect.s的内容,将字符串内容改成"LiqingDongOS is loading..."
原本的字符串是18个字符,加上三对13,10(13为换行符,10为回车符),就是24个字符,
现在是28+6=32个字符,将cx #24 改成 cx #32

3、编译运行,
首先进入boot目录,使用下面的命令对bootsect.s进行编译

as86 -0 -a -o bootsect.o bootsect.s
ld86 -0 -s -o bootsect bootsect.o

可以使用hexdump -C bootsect 查看bootset.s的头几个字节,发现确实是01 03 10 04

hexdump -C bootsect

然后使用下面的指令去掉这32个字节

dd bs=1 if=bootsect of=Image skip=32

然后再进入文件系统的boot目录可以看到有一个512字节的Image文件,
将该文件复制并覆盖到linux-0.11目录下,
然后再切换到oslab的目录并运行linux-0.11,就会显示出"LiqingDongOS is loading..."
此时第一个目标已经达成

4、参考其他人的代码,但是还是运行不出来
未完成的任务:
1、不能正常输出"Now we are in SETUP"
考虑原因:bootsect载入setup出现了问题 、setup的输出有问题
2、不能获取硬件参数并打印出来

所需要的指令:

cd ~/oslab
tar zxvf hit-oslab-linux-20110823.tar.gz
cd oslab
cd linux-0.11
make all
as86 -0 -a -o bootsect.o bootsect.s
ld86 -0 -s -o bootsect bootsect.o

hexdump -C bootsect
dd bs=1 if=bootsect of=Image skip=32

Image(512bytes) => linux-0.11

cd ~/oslab/oslab
./run
=> LiqingDongOS is loading...

HIT-OS-LAB参考资料:
1.《操作系统原理、实现与实践》-李治军、刘宏伟 编著
2.《Linux内核完全注释》
3.两个哈工大同学的实验源码
4.Linux-0.11源代码
(上述资料,如果有需要的话,请主动联系我))

该实验的参考资料
网课
官方文档
参考实验报告

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值