MIT6.828 LAB1 PART1 PC Bootstrap

   实验内容

1.PC Bootstrap

了解x86汇编语言

使用QEMU模拟器模拟x86的环境

了解PC的物理地址空间

相关知识

(简单记录)

PC的物理地址空间

BIOS占据着0x000F0000~0x00100000的地址空间,PC启动后,就会执行BIOS的指令,一些初始化操作完成后,就会从某个合适的地方加载操作系统。

gdb环境下可以看到PC启动后运行BIOS的第一条指令

[f000:fff0]    0xffff0:	ljmp   $0xf000,$0xe05b

gdb执行si命令(exercise2 内容)后,跟踪到了BIOS执行的几条指令

(gdb) si
[f000:e05b]    0xfe05b:	cmpl   $0x0,%cs:0x6ac8
0x0000e05b in ?? ()
(gdb) si
[f000:e062]    0xfe062:	jne    0xfd2e1
0x0000e062 in ?? ()
(gdb) si
[f000:e066]    0xfe066:	xor    %dx,%dx
0x0000e066 in ?? ()
(gdb) si
[f000:e068]    0xfe068:	mov    %dx,%ss
0x0000e068 in ?? ()
(gdb) si
[f000:e06a]    0xfe06a:	mov    $0x7000,%esp
0x0000e06a in ?? ()
(gdb) si
[f000:e070]    0xfe070:	mov    $0xf34c2,%edx
0x0000e070 in ?? ()
(gdb) si
[f000:e076]    0xfe076:	jmp    0xfd15c
0x0000e076 in ?? ()
(gdb) si
[f000:d15c]    0xfd15c:	mov    %eax,%ecx
0x0000d15c in ?? ()
(gdb) si
[f000:d15f]    0xfd15f:	cli    
0x0000d15f in ?? ()
(gdb) si
[f000:d160]    0xfd160:	cld    
0x0000d160 in ?? ()
(gdb) si
[f000:d161]    0xfd161:	mov    $0x8f,%eax
0x0000d161 in ?? ()

结论

扫描二维码关注公众号,回复: 11573629 查看本文章

从这一part的内容可以得知BIOS的作用是控制,初始化,检测各种底层设备。它最重要的功能是把操作系统从磁盘中导入内存。当BIOS确定了,操作系统位于磁 盘中,那么它就会把这个磁盘的第一个扇区,通常把它叫做启动区(boot sector)先加载到内存中,这个启动区中包括一个非常重要的程序--boot loader,它会负责完成整个操作系统从磁盘导入内存的工作,以及一些其他的非常重要的配置工作。最后操作系统才会开始运行。

参考博客

https://www.cnblogs.com/fatsheep9146/p/5078179.html

https://blog.csdn.net/a747979985/article/details/94334901

猜你喜欢

转载自blog.csdn.net/qq_43012789/article/details/107007190