3

关于PC的启动,我在某些方面不是很清楚。

术语:引导块、引导扇区、MBR、引导加载程序与引导程序、bios 与 cmos 及其功能。

以及这些与当前的引导加载程序(如 grub)有何关系。

我了解启动后的启动顺序和高级软件内容,但我真的很好奇当有人按下电源按钮时这些芯片内部发生了什么。

维基百科似乎有点神秘,所以我想也许 stackoverflow 可以给我一些清晰的答案,或者至少将我指向一个我可以找到简单解释的位置。

非常感谢您的帮助。

4

1 回答 1

9

好的。

您需要了解的第一件事是 CPU 的工作原理。有一种称为指令指针 (IP) 寄存器的东西,它指向包含 CPU 要执行的下一条指令的地址。每次启动新程序时,该程序都会加载到内存中,然后将 CPU 的 IP 设置为程序的起始地址。但是当你的 CPU 关闭时你会怎么做。如何让 CPU 运行“引导”程序。

为此,有一个叫做“引导向量”的东西,即 CPU 一上电就会跳转到的地址。

但是,谁会在引导向量处加载程序。自然不能将程序预加载到 RAM 中。因为 RAM 需要电源(易失性)。所以他们有一个叫做“引导闪存”的东西,它是 EEPROM,因此是非易失性的。该闪存包含一个名为“BIOS”的程序,其职责是将系统从死亡中唤醒。其想法是它必须具有最低限度和必要的功能。该引导闪存被烧录并固定在系统上,以使该程序的启动指令恰好位于 CPU 的“引导向量”处。

现在,您需要 BIOS 执行的下一个任务是加载操作系统。但是您的硬盘上可能安装了多个操作系统。因此,您首先要加载一个可以进一步加载操作系统的程序。这个程序称为引导加载程序(grub 就是一个例子)

那你怎么做。每个磁盘上都有一个称为“引导扇区”的东西。一般是磁盘的第一个扇区。它的大小一般为 512MB 左右。足以存储一个小程序。您告诉 BIOS 使用哪个磁盘(主要、次要、CD、USB、网络)进行进一步引导。最常见且默认情况下,它使用主硬盘。所以引导加载程序去获取那个程序并跳转到它。引导加载程序知道如何从该点引导操作系统。例如,在 grub 中,您指定内核名称等。

主引导记录是另一个术语,它更像是一个 Windows 世界术语。Window 的引导加载程序假定某种“记录”关于安装在引导扇区上的操作系统的性质。它将该记录称为 MBR。

希望这对你现在有好处。

于 2012-08-17T08:39:03.710 回答