01按下电源,不等于马上进入系统
你按下电脑的电源键以后,可能几秒钟后就看到了品牌 Logo, 再过一会儿出现登录界面或桌面。
这段看起来很短的时间里,电脑其实完成了很多工作: 供电 → 启动固件 → 初始化硬件 → 找到启动设备 → 加载操作系统 → 启动系统服务和界面。
供电
让硬件开始工作
固件
CPU 先执行启动固件
初始化硬件
让主要设备进入可用状态
找到系统
选择可以启动的设备
进入系统
内核、服务和界面启动
02第一步:让硬件稳定地开始工作
电源键并不是直接“把 Windows 打开”。 它先向电脑的电源管理电路发出开机请求。
台式机的电源供应器、笔记本的电源管理系统等会让需要的电路得到稳定供电。 当电压等条件达到要求后,处理器和其他硬件才会进入正常启动状态。
按下电源键
产生开机请求
电源系统工作
为主要电路提供合适电能
处理器开始启动
进入预先规定的启动状态
03第二步:CPU 先运行固件
电脑刚开机时,操作系统还没有进入内存。 那 CPU 最先执行什么?
答案是主板上的固件(Firmware)。 现代 PC 通常使用 UEFI; 较老的电脑常使用传统 BIOS。
主板上的固件存储
保存 UEFI / BIOS 代码和配置
CPU 开始执行
先运行启动固件,而不是直接运行操作系统
04第三步:发现并初始化硬件
固件开始运行后,会让启动所需的硬件逐步进入可用状态, 例如内存、显示相关硬件、存储控制器和一些外设。
准备内存
让后面的程序有地方运行和存放数据
准备显示
让电脑能够显示启动信息或 Logo
识别存储
发现 SSD、硬盘等可能的启动设备
准备部分输入设备
让启动菜单和设置界面可以被操作
POST 是什么?
传统资料里常把早期启动检查称为 POST(Power-On Self-Test,开机自检)。 现代 UEFI 系统的初始化过程更复杂,也不一定会把所有检查都明确显示给用户。
固件并不是“把每个硬件彻底测试一遍”以后才启动系统。 它主要完成启动所需要的检测、配置和初始化。
05第四步:找到可以启动的系统
硬件准备好以后,固件还要回答一个问题: 接下来应该从哪里启动?
电脑可能有 SSD、移动硬盘、U 盘,甚至网络启动等不同选择。 固件会根据启动配置,寻找合适的启动项。
选中启动项
找到下一阶段要运行的启动程序
06第五步:把操作系统真正启动起来
固件找到启动程序以后,就会把控制权交给下一阶段。 启动程序的任务之一,就是把操作系统最核心的部分加载起来。
启动程序
从启动设备运行
加载到内存
把操作系统内核等需要的内容放入 RAM
启动内核
操作系统最核心的部分开始运行
07第六步:从内核到登录界面和桌面
操作系统内核开始运行以后,还不能立刻说“开机完成了”。 它还要继续初始化更多设备和系统功能。
内核运行
管理 CPU、内存和设备等资源
驱动和设备
让更多硬件能够被系统使用
系统服务
启动网络、登录等后台功能
登录与桌面
终于来到你熟悉的界面
看到桌面,只是启动过程的“最后一站”之一
有些后台服务可能在你看到桌面以后仍继续启动。 所以“桌面出现”并不一定意味着所有后台工作已经完全结束。
你已经知道了什么
- 按下电源键后,电脑首先要让硬件获得稳定供电并进入启动状态。
- CPU 最先运行的通常不是操作系统,而是主板上的 UEFI / BIOS 固件。
- 固件会完成启动所需的硬件检测、配置和初始化。
- 然后固件会按照启动配置寻找可以启动的设备和启动程序。
- 启动程序把操作系统内核等必要内容加载到内存,并把控制权交给操作系统。
- 操作系统随后初始化更多设备、驱动和服务,最后显示登录界面或桌面。
- 真实启动过程比“六步图”复杂,不同电脑和操作系统也可能有所不同。
下一个问题: 操作系统启动以后,为什么电脑还需要它一直运行在后台? 下一篇:操作系统是做什么的?