2010-11-01 62 views
4

我已经从osdev下载了几个bootloader并成功加载了一个内核。但是现在我想学习bootloader背后的理论。我想知道为什么系统启动以及引导加载程序代码后面的所有内容。任何人都可以给我一个链接或链接到一本书?提前致谢。 系统是x86。Bootloader背后的理论

+0

维基百科有一个体面的开端:http://en.wikipedia.org/wiki/Booting – JOTN 2010-11-01 14:37:06

回答

1

https://pdos.csail.mit.edu/6.828/2014/xv6/book-rev8.pdf

在附录B,它给在第一段的简短概述:

当一个x86 PC启动时,它开始执行的程序调用的BIOS,其被存储在非在主板上的易失存储器。 BIOS的工作是准备硬件,然后将控制权交给操作系统。具体来说,它将控制权转移到引导扇区(引导扇区的第一个512字节扇区)加载的代码。引导扇区包含引导加载程序:将内核加载到内存中的指令。 BIOS在内存地址0x7c00加载启动扇区,然后跳转(将处理器的%ip)设置为该地址。当引导加载程序开始执行时,处理器模拟Intel 8088,加载程序的工作是将处理器置于更现代的操作模式,将xv6内核从磁盘加载到内存中,然后将控制权交给内核。 xv6引导加载程序包含两个源文件,一个是以16位和32位x86程序集(bootasm.S; (8900))和C(bootmain.c; ; (9000))的组合编写的。