当前位置:   article > 正文

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

orangeos 硬盘驱动

我们先回忆一下从软盘启动的过程:
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。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号