orange's学习--第十一章:如何从硬盘引导

我们先回忆一下从软盘启动的过程:
1.  BIOS将引导扇区读入内存 0000:7c00处;
2.  跳转到 0000:7c00处开始执行引导代码;
3.  引导代码从软盘中找到loader.bin,并将其读入内存(按照FAT12文件系统查找文件);
4.  跳转到loader.bin开始执行;
5.  loader.bin从软盘中找到kernel.bin,并将其读入内存(按照FAT12文件系统查找文件,并且按照ELF格式移动kernel.bin文件);
6.  跳转到kernel.bin开始执行,到此可认为启动过程结束;
7.  系统运行中。
在第1步中,BIOS到底读软盘还是硬盘是由CMOS设置决定的,通常你可以找到一个叫做“Boot  Sequence”的选项,从中选择首选启动设备。在第3步和第5步中,对于软盘启动,代码将在软盘中寻找loader.bin和kernel.bin,对于硬盘启动,我们需要让引导扇区代码从硬盘中寻找loader.bin并让loader从硬盘中寻找kernel.bin。这便是软盘和硬盘启动的区别了。剩下的几步中,软盘和硬盘启动没有分别。
因此我们需要重写boot.asm和loader.asm,让它们读取硬盘而不是软盘。新的文件我们起名为hdboot.asm和hdldr.asm。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值