01按下电源,不等于马上进入系统

你按下电脑的电源键以后,可能几秒钟后就看到了品牌 Logo, 再过一会儿出现登录界面或桌面。

这段看起来很短的时间里,电脑其实完成了很多工作: 供电 → 启动固件 → 初始化硬件 → 找到启动设备 → 加载操作系统 → 启动系统服务和界面

供电

让硬件开始工作

固件

CPU 先执行启动固件

初始化硬件

让主要设备进入可用状态

找到系统

选择可以启动的设备

进入系统

内核、服务和界面启动

02第一步:让硬件稳定地开始工作

电源键并不是直接“把 Windows 打开”。 它先向电脑的电源管理电路发出开机请求。

台式机的电源供应器、笔记本的电源管理系统等会让需要的电路得到稳定供电。 当电压等条件达到要求后,处理器和其他硬件才会进入正常启动状态。

按下电源键

产生开机请求

电源系统工作

为主要电路提供合适电能

处理器开始启动

进入预先规定的启动状态

03第二步:CPU 先运行固件

电脑刚开机时,操作系统还没有进入内存。 那 CPU 最先执行什么?

答案是主板上的固件(Firmware)。 现代 PC 通常使用 UEFI; 较老的电脑常使用传统 BIOS

主板上的固件存储

保存 UEFI / BIOS 代码和配置

CPU 处理器

CPU 开始执行

先运行启动固件,而不是直接运行操作系统

04第三步:发现并初始化硬件

固件开始运行后,会让启动所需的硬件逐步进入可用状态, 例如内存、显示相关硬件、存储控制器和一些外设。

准备内存

让后面的程序有地方运行和存放数据

准备显示

让电脑能够显示启动信息或 Logo

识别存储

发现 SSD、硬盘等可能的启动设备

准备部分输入设备

让启动菜单和设置界面可以被操作

POST 是什么?

传统资料里常把早期启动检查称为 POST(Power-On Self-Test,开机自检)。 现代 UEFI 系统的初始化过程更复杂,也不一定会把所有检查都明确显示给用户。

固件并不是“把每个硬件彻底测试一遍”以后才启动系统。 它主要完成启动所需要的检测、配置和初始化。

05第四步:找到可以启动的系统

硬件准备好以后,固件还要回答一个问题: 接下来应该从哪里启动?

电脑可能有 SSD、移动硬盘、U 盘,甚至网络启动等不同选择。 固件会根据启动配置,寻找合适的启动项。

SSD
U 盘
网络

选中启动项

找到下一阶段要运行的启动程序

06第五步:把操作系统真正启动起来

固件找到启动程序以后,就会把控制权交给下一阶段。 启动程序的任务之一,就是把操作系统最核心的部分加载起来。

1

启动程序

从启动设备运行

2

加载到内存

把操作系统内核等需要的内容放入 RAM

3

启动内核

操作系统最核心的部分开始运行

07第六步:从内核到登录界面和桌面

操作系统内核开始运行以后,还不能立刻说“开机完成了”。 它还要继续初始化更多设备和系统功能。

1

内核运行

管理 CPU、内存和设备等资源

2

驱动和设备

让更多硬件能够被系统使用

3

系统服务

启动网络、登录等后台功能

4

登录与桌面

终于来到你熟悉的界面

显示器

看到桌面,只是启动过程的“最后一站”之一

有些后台服务可能在你看到桌面以后仍继续启动。 所以“桌面出现”并不一定意味着所有后台工作已经完全结束。

你已经知道了什么

  • 按下电源键后,电脑首先要让硬件获得稳定供电并进入启动状态。
  • CPU 最先运行的通常不是操作系统,而是主板上的 UEFI / BIOS 固件。
  • 固件会完成启动所需的硬件检测、配置和初始化。
  • 然后固件会按照启动配置寻找可以启动的设备和启动程序。
  • 启动程序把操作系统内核等必要内容加载到内存,并把控制权交给操作系统。
  • 操作系统随后初始化更多设备、驱动和服务,最后显示登录界面或桌面。
  • 真实启动过程比“六步图”复杂,不同电脑和操作系统也可能有所不同。

下一个问题: 操作系统启动以后,为什么电脑还需要它一直运行在后台? 下一篇:操作系统是做什么的?