也许有关如何组织可启动媒体的一些细节可以帮助定义“是什么使可启动媒体可启动”。
启动程序因架构而异,因此我将只使用标准 PC(即 x86 架构)。
首先,要有效地“启动”,BIOS 需要在稍后的开机自检 (POST) 后选择介质。为此,媒体必须标记为 bootable,这意味着它必须在其第一个扇区中具有引导签名。这是使媒体可启动的第一件事。
然后,BIOS 加载并处理这个引导扇区(无论存储在那里……所以它很可能直接成为一个合适的实模式程序,但让我们坚持一个“正常”方案)。因此,要可引导,介质必须具有这样的功能引导扇区。
如果介质已分区,则在该扇区中安装主引导记录 (MBR)。此代码将负责检查分区表并找到设置了可引导标志的分区。然后,MBR 将加载该分区的第一个扇区,其中包含所谓的卷引导记录 (VBR)。请注意,在未分区介质的情况下,VBR 位于介质的第一个扇区,因此由 BIOS 直接调用。
VBR 包含一个引导程序。该程序必须初始化机器(即通过 A20 Gate 激活扩展内存,从实模式切换到保护模式等)以设置适合“现代”代码运行的环境,将此代码加载到内存中,然后“跳转” “到它。上述代码既可以是引导加载程序情况下的操作系统内核,也可以是链式加载情况下的多重引导系统(例如 GRUB、LILO)。无论如何,最终,需要运行一些可执行代码来启动媒体。
从可启动媒体组织的角度来看,接下来的内容(例如内核解压、初始 ramdisk 安装、在混合内核或服务器启动微内核的情况下加载模块等)并不严格相关。
注意:我描述的是硬盘和软盘的过程。但是,CD 的情况非常相似。此外,要可引导,CD 必须遵循 El-Torito 规范,这是 ISO9660 标准的扩展。最初,CD 需要包含可启动软盘映像(即实际上是 1.44M 映像),BIOS 将其视为软盘并相应地启动。更新的硬件允许在没有此解决方法的情况下直接启动。
| 归档时间: |
|
| 查看次数: |
4138 次 |
| 最近记录: |