赞
踩
我们先回忆一下从软盘启动的过程:
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。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。