操作系统设计/初始化/引导加载程序
一个引导加载程序是一个小型的程序,它从硬盘、软盘、CD/DVD 或其他存储设备的 **主引导记录 (MBR)** 启动。在 BIOS 初始化系统硬件的一小部分后,它被计算机的 BIOS 加载。引导加载程序的作用是从存储设备加载操作系统,设置一个最小的环境供操作系统运行,并运行操作系统的启动程序。
由于大多数系统(特别是 IA-32 IBM 兼容系统)的引导加载程序只能占用很小的空间(软盘上只有 510 字节有效,硬盘上只有 446 字节),因此引导加载程序通常被分成多个阶段。第一阶段将从磁盘上的特定扇区加载第二阶段,然后第二阶段将初始化系统并从磁盘上的特定文件加载内核。这意味着第二阶段引导加载程序必须能够解释系统的文件系统。有时,在第一阶段和第二阶段之间会放置一个额外的阶段(通常称为 1.5 阶段),它也能够解释文件系统,并允许第二阶段引导加载程序在磁盘上移动,这可能是由于磁盘碎片整理或第二阶段引导加载程序的编辑造成的。
引导加载程序通常允许用户在多个不同的操作系统之间进行选择,并选择要启动哪个操作系统。此功能称为多重引导(或双重引导)。许多引导加载程序还支持向内核传递参数。这些参数类似于命令行参数,通常用于告诉内核系统的配置。有些甚至将“模块”加载到内存供操作系统使用。
对于 *nix 用户来说,LILO 和 GRUB 引导加载程序是最常见的。除了启动 Linux,它们还可以使用链式加载启动 Windows。微软 Windows 有它自己的专有引导加载程序。
LILO 是LInux LOader 的缩写。
GRUB 是GR and Unified Boot loader 的缩写。GRUB 在操作系统开发人员中很受欢迎,因为它可以毫不费力地将系统带到 32 位保护模式,之后内核可以像任何其他应用程序一样启动。GRUB 支持 Multiboot 规范,该规范指定了任何内核如何被 GRUB 加载。
GRUB 的下一个版本,GRUB2,支持 64 位系统,并将有一个新的可扩展的 Multiboot 规范实现。
ReactOS 引导加载程序是 ReactOS 项目的引导加载程序。它只支持 FAT,但可以加载 Windows、ReactOS 和 Multiboot 内核。
- X86 汇编/引导加载程序 描述了 x86 系统上的引导加载程序。
- 嵌入式系统/引导加载程序和引导扇区 描述了所有其他类型系统上的引导加载程序。
- LPI Linux 认证/故障排除引导加载程序
- Linux 内核/启动
- Linux 调试概述 讨论了一些引导加载程序调试工具和内核调试工具。