【发布时间】:2014-10-03 15:59:03
【问题描述】:
引导加载程序与引导加载程序有何不同。根据我的说法,引导加载程序存储在 ROM 中,引导加载程序存储在 MBR 的硬盘中(如果我错了,请纠正我)。引导加载程序是启动后执行的第一个程序。现在我不明白这些句子的含义:- 上电后,bootloader控制板子,不依赖linux内核。 和 引导加载程序充当引导加载程序和 linux 内核之间的粘合剂。 这些是什么意思?为什么我们同时需要它们?
【问题讨论】:
引导加载程序与引导加载程序有何不同。根据我的说法,引导加载程序存储在 ROM 中,引导加载程序存储在 MBR 的硬盘中(如果我错了,请纠正我)。引导加载程序是启动后执行的第一个程序。现在我不明白这些句子的含义:- 上电后,bootloader控制板子,不依赖linux内核。 和 引导加载程序充当引导加载程序和 linux 内核之间的粘合剂。 这些是什么意思?为什么我们同时需要它们?
【问题讨论】:
Bootstrap LoaderBootloader这是步骤
0 : Power On!
1 : CPU Power On! CPU try to find something in ROM(Or ERROM)
2 : Find BIOS (or other firmware). Run BIOS
3 : BIOS(bootstrap loader and other functions) run
4 : BIOS try to find something in MBR
5 : Find MBR(512 bytes) there is some useful information of the partition
6 : Copy the MBR content into physical disk 0x7c00 where is the location of the Grub.
7 : Grub(a type of bootloader) use the information of the MBR finds a linux! Prepare to run.
8 : Run your linux!
【讨论】:
许多架构使用引导加载程序或第二阶段加载程序将 Linux 内核映像加载到内存中。一些引导加载程序执行内核映像的校验和验证,并且大多数执行内核映像的解压缩和重定位。
在这种情况下,引导加载程序和引导加载程序之间的区别很简单:引导加载程序在上电时控制电路板,并且不以任何方式依赖 Linux 内核。相比之下,引导加载程序在生活中的主要目的是充当板级引导加载程序和 Linux 内核之间的粘合剂。引导加载程序负责为内核运行提供适当的上下文,并执行必要的步骤来解压缩和重定位内核二进制映像。
也称为引导、引导加载程序或引导程序,引导加载程序是驻留在计算机 EPROM、ROM 或其他非易失性存储器中的程序,在打开计算机时由处理器自动执行。引导加载程序读取硬盘驱动器引导扇区以继续加载计算机操作系统的过程。助推器一词来自古老的短语“用你的引导器振作起来”。具有可扩展固件接口 (EFI) 的计算机中的引导加载程序已被替换。引导加载程序现在是 EFI BIOS 的一部分。
【讨论】:
引导加载程序(例如 U-Boot 或 RedBoot)在开机后会立即控制硬件。另一方面,Boostrap 加载程序附加到内核映像以准备运行内核的适当上下文。例如,为ARM架构编译内核时,内核文件编译为piggy.o文件,boostrap loader文件为misc.o、big_endian.o和head.o。
【讨论】: