计算机如何知道引导加载程序在文件系统中的位置?

How does a computer know where in the filesystem the bootloader is located?

计算机如何知道引导加载程序在文件系统中的位置?所有操作系统和所有计算机(可能不是所有计算机,而是所有体系结构)之间是否存在指向引导加载程序的公共文件?我知道 Raspberry Pi 总是从 SD 卡的第一个分区加载 bootcode.bin。 PC 是否共享这样的公共文件?

Master Boot Record 占据第一个硬盘的前 512 个字节,是 BIOS 加载的第一件事,将控制权移交给能够启动所需操作系统的程序。通常,引导加载程序安装在 MBR 中,删除其以前的内容。它们(在双引导情况下)可以共存,这被称为多重引导。

不同的架构是不同的。但通常有一个寄存器 cpu 在复位后从中读取其第一条指令以开始执行。该寄存器通常包含用于汇编跳转操作到另一个内存地址的位,该内存地址是引导代码的地址。在下一个时钟周期,它将获取该地址的操作,依此类推。

硬件设计者必须确定其实现方式。例如,第一条指令可能是从包含引导代码的 eeprom 芯片上的内存地址读取。

就 PC 而言,主板有自己的引导过程,该过程将加载 OS 引导加载程序。因此,您仍然可以启动 pc 并在没有安装 OS 的情况下查看 BIOS

的原因

或者至少那是我从我的 Comp 中记得的。拱。 class 很久以前。