全球旧事资料 分类
状态和行为,理解操作系统启动后的工作方式。
22实验内容:1准备实验:启动OSLab,新建一个EOSKe
el项目2调试EOS操作系统的启动过程:使用Bochs作为远程目标机调试BIOS程序
(1)启动调试后,Bochs在CPU要执行的第一条指令处中断(2)在Co
sole窗口中输入调试命令sreg后按回车,显示当前CPU中各个段寄存器的值。其中CS寄存器信息行中的“s0xf000”表示CS寄存器的值为0xf000。(3)输入调试命令r后按回车,显示当前CPU中各个通用寄存器的值,如图103。其中“rip0x000000000000fff0”表示IP寄存器的值为0xfff0(4)输入调试命令xp1024b0x0000,查看开始的1024个字节的物理内存。在Co
sole中输出的这1K物理内存的值都为0,说明BIOS中断向量表还没有被加载到此处。输入调试命令xp512b0x7c00,查看软盘引导扇区应该被加载到的内存位置。输出的内存值都为0,说明软盘引导扇区还没有被加载到此处。
调试软盘引导扇区程序(1)输入调试命令vb0x00000x7c00,这样就在逻辑地址0x00000x7c00处添加了一个断点,输入调试命令c继续执行,输入调试命令sreg验证CS寄存器的值,输入调试命令r验证IP寄存器的值;(2)输入调试命令xp1024b0x0000验证此时BIOS中断向量表已经被载入,输入调试命令xp512b0x7c00显示软盘引导扇区程序的所有字节;(3)输入调试命令xp512b0x0600验证图32中第一个用户可用区域是空白的。输入调试命令xp512b0x7e00验证图32中第二个用户可用区域是空白的。自己设计两个查看内存的调试命令,分别验证这两个用户可用区域的高地址端也是空白的。
f(4)输入调试命令xp512b0xa0000验证图32中上位内存已经被系统占用。自己设计一个查看内存的调试命令,验证上位内存的高地址端已经被系统占用;
(5)输入调试命令vb0x00000x7d81添加一个断点,输入调试命令c继续执行,到断点处中断。按照打开bootlst文件的方法打开loaderlst文件,输入调试命令xp8b0x1000查看内存0x1000处的数据,验证此块内存的前三个字节和loaderlst文件中的第一条指令的字节码是相同的。
(6)根据之前记录的loaderbi
文件的大小,自己设计一个查看内存的调试命令,查看内存中loader程序结束位置的字节码,并与loaderlst文件中最后指令的字节码比较,验证loader程序被完全加载到了正确的位置。
调试加载程序:(1)使用添加物理地址断点的调试命令pb0x1513添加一个断点,输入调试命令c继续执行,到断点处中断。
(2)使用查看虚拟内存的调试命令x1wx0x80001117查看内存中保存的32位函数入r
好听全球资料 返回顶部