【问题标题】:Theory behind bootloader [closed]引导加载程序背后的理论[关闭]
【发布时间】:2010-11-01 14:34:18
【问题描述】:

我从 osdev 下载了几个引导加载程序并成功加载了内核。但现在我想学习引导加载程序背后的理论。我想知道系统启动的原因以及引导加载程序代码背后的所有内容。谁能给我一个链接或一本书的链接?提前致谢。 系统是x86。

【问题讨论】:

标签: operating-system x86 boot bootloader


【解决方案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)).

【讨论】:

    猜你喜欢
    • 2010-10-15
    • 2011-10-14
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多