主引导加载程序和辅助引导加载程序有什么区别?主要和次要是指引导加载程序的两个部分还是引导加载程序的两个阶段?我很迷惑。
主引导加载程序和辅助引导加载程序有什么区别?主要和次要是指引导加载程序的两个部分还是引导加载程序的两个阶段?我很迷惑。
Answers:
你很困惑,因为这是一种过于简单的描述过程的方式。如果您一直在阅读与上述相同的IBM文章 主要和辅助引导加载程序 ,这是一个人们似乎已经从中得出这个主要/次要概念的地方,请注意它需要一个相当狭窄的,仅限Linux的世界观(正如它在第一句中明确指出的那样),它是用2005年,它实际上是在区分 相同 引导加载程序(GRUB)安装在硬盘上的两个不同位置(MBR病毒区域和磁盘分区),而不是两个不同的引导加载程序之间,一个“主”和一个“二级”。
实际上,引导PC兼容和工作站类机器的大多数操作系统(根据问题上的标签)是一个 系列 加载程序,每一个加载下一个。主要/次要区别错误地暗示只有两个程序,或者(如Thayne的答案)错误地暗示序列中的几个程序中只有两个具有“主要”和“次要”的特殊状态,或者错误地暗示如今的PC甚至必须在MBR和VBR中使用引导加载程序。
这些连锁店的三个非常简短的例子,不仅仅是两个项目:
IBMBIO.COM
从中加载PC-DOS / DR-DOS的基本光盘操作系统部分的文件 IBMDOS.COM
文件。 OS2BOOT
加载程序加载 OS2LDR
加载程序加载 OS2KRNL
程序。 bootmgfw.efi
加载的程序 winload.exe
加载的程序 ntoskrnl.exe
程序。 将这些中的任何一个指定为比其他更“初级”没有好的理由。实际上,指定加载程序没有好的理由 内置于机器固件中 作为“主要”。如果详细看一下TianoCore,举个例子,就会发现甚至会出现一系列启动加载阶段 在固件内 并且甚至有一个被称为的概念 固件文件系统 。 (这些都远远超出了这个答案的范围,IBM MicroChannel Architecture机器的启动过程也是如此,它甚至在MBR启动加载程序之前从DASD加载了东西。)
GRUB 1相当着名的“阶段1.5”的事实应该告诉一个人,甚至忽略了这样一个事实,即显然有另一个加载程序首先加载GRUB“第1阶段”,即在PC中引导序列的想法兼容的世界只有两个阶段,引导程序整齐划分为“主要”和“次要”,与现实不符。
主引导加载程序是MBR上的引导加载程序。辅助引导加载程序位于其中一个分区上,由主引导加载程序启动。
例如,在双启动Linux和Windows系统中,如果选择了Windows,则grub将成为主引导加载程序并加载辅助Windows引导加载程序。
The BIOS reads the MBR from the storage device into physical memory, and then it directs the microprocessor to the start of the boot code