# 6.1计算机的启动

## 启动链

计算机启动时，处理器从平台规定的入口开始执行，逐步准备硬件环境并将控制交给操作系统。一个便于理解的简化顺序是：

1. 固件初始化必要硬件，并选择启动目标。
2. 启动加载程序准备内核映像和启动参数，随后把控制交给内核。
3. 内核初始化内存、设备与调度等运行环境，并启动用户空间的初始进程。
4. 用户空间的初始进程继续启动系统服务、会话或应用。

实际平台可以合并或细分这些步骤。例如固件也可能直接加载内核；设备的固件名称、验证机制和启动介质各不相同，不能把一种平台的具体实现当作所有设备的必经步骤。

[来源：计算机的启动过程](/knowledge/cs/operating-systems/computer-boot-process/#definition)

阅读本节时，先问每个阶段为下一阶段准备什么。教材区分的自检与初始化可放在固件职责中讨论；具体平台可能合并或细分步骤。

## 阶段之间的依赖

后续阶段依赖前面准备的条件：内核需要可用的执行环境和内核映像，用户空间服务需要内核提供进程和资源管理。阶段用于理解职责与控制权，不意味着每种硬件都先完成同样的自检项目，也不意味着系统服务或登录界面必须按固定次序启动。

[来源：计算机的启动过程](/knowledge/cs/operating-systems/computer-boot-process/#properties)

启动加载与内核初始化是不同工作：前者准备内核及参数，后者建立系统运行环境并启动用户空间进程。固件也可能直接加载内核，不能把独立加载程序视为所有平台的必经环节。

## 复习

按固件、加载程序、内核和用户空间画出一条简化控制权链。在每一步标出执行者和依赖条件，再考虑实际平台可能在哪里合并或增加阶段。系统运行后对硬件事件的响应见[硬件中断](/knowledge/cs/operating-systems/hardware-interrupt/)。
