基于ucore的操作系统实验lab1
[练习1]
练习1.1
1、先编译链接生成kernel文件
2、再编译链接生成bootblock文件
3、生成ucore.imgsign.c生成bootblock
1.2 查看sign.c可以发现关键在于bootblock.out小于510bytes,且 buf[510] = 0x55; buf[511] = 0xAA;
[练习2]
练习2.1 从 CPU 加电后执行的第一条指令开始,单步跟踪 BIOS 的执行。
单步跟踪,方法如下:
1 修改 lab1/tools/gdbinit,内容为:
set architecture
i8086
target remote
:1234
2 在 lab1目录下,执行
make debug
3 在看到gdb的调试界面(gdb)后,在gdb调试界面下执行如下命令
si
即可单步跟踪BIOS了。
4 在gdb界面下,可通过如下命令来看BIOS的代码
x /2i $pc
//显示当前eip处的汇编指令
练习2.2 在初始化位置0x7c00设置实地址断点,测试断点正常。
在gdb中输入一下命令
b *0x7c00
//在0x7c00处设置断点。此地址是bootloader入口点地址,可看boot/bootas