Linux的启动过程

步骤1

当给机器通上电源,BIOS(Basic Input/Output System, 基本输入输出系统)或UEFI (Unified Extensible Firmware Interface, 统一可扩展固件接口)从NVM (non-volatile memory, 非易失性存储器)中加载,并执行POST (Power On Self Test, 上电自检)。

步骤2

BIOS/UEFI检查连接到系统的设备,包括CPU (Central Processing Unit, 中央处理器
),RAM (Random Access Memor, 随机访问存储器)和存储设备。

步骤3

从硬盘,网络或者CD-ROM (Compact Disc Read-Only Memory, 只读光盘)中选择一个启动设备来启动操作系统。

步骤4

BIOS/UEFI运行引导程序如GRUB,该程序提供了一个菜单来选择操作系统或者内核功能。

步骤5

当内核准备好后,从内核空间切换到用户空间。内核会启动第一个用户空间进程——systemd,来管理进程和服务,检测剩下所有的硬件,挂载文件系统以及运行桌面环境。

步骤6

当系统启动后,systemd会启动default.target 单元,其他单元也会被执行。

步骤7

系统运行一系列的启动脚本,并配置环境。

步骤8

系统准备就绪,用户登录窗口出现,用户可以登录系统。

名词解释

  • BIOS (Basic Input/Output System, 基本输入输出系统):从字义上称为“基本输出输入系统”,是在通电启动阶段执行硬件初始化,以及为操作系统提供运行时服务的固件,专门负责系统硬件各种参数设定,本质上是“程序”,也就是一组“代码”。
  • UEFI (Unified Extensible Firmware Interface, 统一可扩展固件接口):是一种个人电脑系统规格,用来定义操作系统与系统固件之间的软件界面,作为BIOS的替代方案。可扩展固件接口负责加电自检(POST)、联系操作系统以及提供连接操作系统与硬件的接口。
  • NVM (non-volatile memory, 非易失性存储器):是指当电流关掉后,所存储的资料不会消失的资料存储设备。
  • POST (Power On Self Test, 上电自检):又称为引导自我检测,是计算机BIOS的一个功能,在引导时会执行,针对计算机硬件如CPU、主板、存储器等进行检测,结果会显示在屏幕上。
  • CPU (Central Processing Unit, 中央处理器
    ):是计算机的主要设备之一,功能主要是解释计算机指令以及处理计算机软件中的数据。
  • RAM (Random Access Memor, 随机访问存储器):是与中央处理器直接交换数据的内部存储器。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时资料存储介质。
  • CD-ROM (Compact Disc Read-Only Memory, 只读光盘):是一种在电脑上使用的光盘。这种光盘只能写入数据一次,信息将永久保存在光盘上,使用时通过光盘驱动器读出信息。
  • GRUB:是一个来自GNU项目的启动引导程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

参考