引导程序背后的理论

nar*_*tra 5 boot x86 operating-system bootloader

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

小智 2

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

\n\n

在附录 B 中,第一段给出了简短的概述:

\n\n
\n

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

\n
\n