主引导加载程序和辅助引导加载程序有什么区别?


0

主引导加载程序和辅助引导加载程序有什么区别?主要和次要是指引导加载程序的两个部分还是引导加载程序的两个阶段?我很迷惑。


你在哪里找到这种术语的用法? “主要/次要”也可能意味着重要性/重要性,这与引导加载程序无关。这真的是关于排序,第一/第二/第三阶段(或水平)是一个更好的描述IMO。
— sawdust

Answers:


3

你很困惑,因为这是一种过于简单的描述过程的方式。如果您一直在阅读与上述相同的IBM文章 主要和辅助引导加载程序 ,这是一个人们似乎已经从中得出这个主要/次要概念的地方,请注意它需要一个相当狭窄的,仅限Linux的世界观(正如它在第一句中明确指出的那样),它是用2005年,它实际上是在区分 相同 引导加载程序(GRUB)安装在硬盘上的两个不同位置(MBR病毒区域和磁盘分区),而不是两个不同的引导加载程序之间,一个“主”和一个“二级”。

实际上,引导PC兼容和工作站类机器的大多数操作系统(根据问题上的标签)是一个 系列 加载程序,每一个加载下一个。主要/次要区别错误地暗示只有两个程序,或者(如Thayne的答案)错误地暗示序列中的几个程序中只有两个具有“主要”和“次要”的特殊状态,或者错误地暗示如今的PC甚至必须在MBR和VBR中使用引导加载程序。

这些连锁店的三个非常简短的例子,不仅仅是两个项目:

  • 旧式PC98 / PC-AT机器的固件中的加载程序将加载程序加载到主引导记录中,该程序在加载PC-DOS / DR-的基本输入/输出系统部分的卷引导记录中加载加载程序。 DOS来自 IBMBIO.COM 从中加载PC-DOS / DR-DOS的基本光盘操作系统部分的文件 IBMDOS.COM 文件。
  • 旧式PC98 / PC-AT机器的固件中的加载程序将加载程序加载到主引导记录中,该程序将加载程序加载到卷引导记录中,该程序加载 OS2BOOT 加载程序加载 OS2LDR 加载程序加载 OS2KRNL 程序。
  • 新型EFI机器固件中的EFI Boot Manager程序加载了 bootmgfw.efi 加载的程序 winload.exe 加载的程序 ntoskrnl.exe 程序。

将这些中的任何一个指定为比其他更“初级”没有好的理由。实际上,指定加载程序没有好的理由 内置于机器固件中 作为“主要”。如果详细看一下TianoCore,举个例子,就会发现甚至会出现一系列启动加载阶段 在固件内 并且甚至有一个被称为的概念 固件文件系统 。 (这些都远远超出了这个答案的范围,IBM MicroChannel Architecture机器的启动过程也是如此,它甚至在MBR启动加载程序之前从DASD加载了东西。)

GRUB 1相当着名的“阶段1.5”的事实应该告诉一个人,甚至忽略了这样一个事实,即显然有另一个加载程序首先加载GRUB“第1阶段”,即在PC中引导序列的想法兼容的世界只有两个阶段,引导程序整齐划分为“主要”和“次要”,与现实不符。

进一步阅读


0

主引导加载程序是MBR上的引导加载程序。辅助引导加载程序位于其中一个分区上,由主引导加载程序启动。

例如,在双启动Linux和Windows系统中,如果选择了Windows,则grub将成为主引导加载程序并加载辅助Windows引导加载程序。


1
那么你怎么称呼引导程序而不是读取它 “MBR上的主要(?)引导程序...” 从磁盘到主内存?
— sawdust

@sawdust BIOS。 en.wikipedia.org/wiki/Master_boot_record 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
— noobprohacker
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.