摘要:
本文记录了我在设计通用引导程序过程中的思考与实践。从背景出发,分析了传统引导程序依赖软盘启动的局限性,并通过研究IBM BIOS文档发现了设备号保存在DL寄存器中的关键依据。基于此,我设计了一种兼容软盘和硬盘的引导程序,支持标准CHS寻址和扩展LBA读取模式。
引导程序的核心思路包括:
保存设备号以实现跨设备兼容。
分区表解析与FAT文件系统支持,确保灵活加载内核文件。
优化内核加载流程,使内核大小可动态调整,并适配文件管理系统的修改。
通过QEMU+GDB调试,我验证了BIOS中INT 19引导规范的实际表现,并在程序中避免了16位模式寻址范围的限制。然而,在进一步扩展时因误操作遗失部分代码,但整体设计框架得以保留,为后续优化提供了参考基础。 阅读全文