购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.11 本章总结

到目前为止,我们已经讨论了主引导记录MBR和Windows内核加载器ntldr文件前半部分startup.com的相关知识。主引导记录的作用是找到文件ntldr,并将其加载到指定的内存地址0x20000。SU完成初始化工作,为Loader的执行做好预备工作和提供支持。SU首先进行物理内存的检测,生成一个内存描述符链表,供Loader使用。另外,SU需要开启A20地址线,以便在之后能将Loader加载到物理地址0x400000处去。接下来是重新定位描述符表GDT和IDT,并开启保护模式,Loader需要在保护模式下执行。SU最终将Loader加载到内存地址0x400000,并跳转到osloader.exe的入口地址去执行。至此,系统控制权从SU模块移交给Loader模块,SU模块完成了全部的初始化工作。

另外,考虑到实模式和保护模式之间相互切换的需求,SU模块的设计还提供了导出函数供Loader模块使用。本章并没有列出所有的导出函数,因为有一些我们暂时用不到。

读者除了需要深谙上述理论知识外,还需要同时学会Bochs调试这一重要技能。通过Bochs调试,跟踪所有汇编指令的执行,能更清楚地理解主引导记录和SU模块工作的全过程,不会忽略某些重要的细节。

本章中保护模式是重点,所以引入了一些Intel手册的介绍。 XftNQetn7g8S9z5Rpse6M2kz8H3CHvEQ57F7JSy3eHPaV2+qUDXvgNpoZI2WfDKR

点击中间区域
呼出菜单
上一章
目录
下一章
×