本节介绍 SPARC 和 x86 平台上的基本引导过程。有关特定硬件类型(包括具有服务处理器的系统和具有多个物理域的系统)的引导过程的更多信息,请参见特定硬件的产品文档,网址为 http://www.oracle.com/technetwork/indexes/documentation/index.html。
装入和执行独立程序的过程称为引导。通常,独立的程序是操作系统内核。但是,任何独立程序可代替内核进行引导。
在 SPARC 平台上,引导过程由以下基本阶段组成:
打开系统后,系统固件 (PROM) 会执行开机自检 (power-on self-test, POST)。
自检成功完成后,如果已在由计算机固件使用的非易失性存储区域中设置了相应的标志,则固件将尝试进行自动引导。
从磁盘引导时,二级程序是特定于文件系统的引导块;通过网络引导或使用自动化安装程序 (Automated Installer, AI) 引导时,二级程序是 inetboot 或 wanboot。
在基于 x86 的系统上,引导过程包含两个概念截然不同的阶段,即内核装入和内核初始化。内核装入是使用系统板上的固件以及外围板上 ROM 中的固件扩展通过 GRUB 实现的。系统固件装入 GRUB。装入机制有所不同,具体取决于系统板上附带的系统固件的类型。
打开与 PC 兼容的系统后,系统的固件将执行开机自检 (power-on self test, POST),从外围板 ROM 查找并安装固件扩展,并通过某种特定于固件的机制开始引导过程。
对于具有 BIOS 固件的系统,会将硬盘的第一个物理扇区(称为引导扇区)装入内存中并执行其代码。根据 GUID 分区表 (GUID Partition Table, GPT) 进行分区的磁盘必须具有行为不同的引导扇区代码,从另一位置装入代码,因为 GPT 方案不会保留每个分区的第一个扇区来存储引导扇区代码。如果 GRUB 在 BIOS 固件上运行,则该另一位置是称为 BIOS 引导分区的一个专用分区。在 GRUB 的引导扇区代码将 GRUB 的剩余部分装入内存后,引导过程将继续进行。
然后,该引导程序会装入下一阶段引导程序(在 Oracle Solaris 上,下一阶段引导程序就是 GRUB 本身)。在带有 BIOS 固件的系统上,从网络进行引导涉及不同的过程。请参见Chapter 5, 从网络引导系统(任务)。
对于具有基于 UEFI 的固件的系统,引导过程大不相同。UEFI 固件会在它所枚举的磁盘上搜索 EFI 系统分区 (EFI System Partition, ESP),并根据 UEFI 规范定义的过程装入和执行 UEFI 引导程序,结果是将 UEFI 引导应用程序装入内存并执行此应用程序。在 Oracle Solaris 中,该 UEFI 引导程序是 GRUB。此发行版中的 GRUB 版本被构建作为 UEFI 引导应用程序运行。然后,引导过程大致上像在具有 BIOS 固件的系统上那样继续进行。
有关特定硬件类型(包括具有服务处理器的系统和具有多个物理域的系统)的引导过程的更多信息,请参见特定硬件的产品文档,网址为 http://www.oracle.com/technetwork/indexes/documentation/index.html。