Linux 系统的启动过程

Linux 系统的启动过程是一个精密且环环相扣的链式流程,从按下电源键到最终进入用户登录界面,主要经历了以下五个核心阶段。

🚀 阶段一:BIOS/UEFI 固件初始化

这是启动流程的物理起点,由主板上的固件负责,与操作系统无关。

  1. 加电自检 (POST):计算机通电后,固件(BIOS 或其继任者 UEFI)首先执行 POST,检测 CPU、内存、显卡等核心硬件是否正常。
  2. 初始化硬件:设置系统时钟、中断,并初始化键盘、鼠标等基本外设。
  3. 选择启动设备:固件根据预设的启动顺序(如硬盘、U盘、网络),查找并锁定第一个可用的启动设备。

BIOS vs UEFI

  • BIOS:传统固件,使用 MBR 分区表,支持硬盘最大 2TB,启动过程为串行,速度较慢。
  • UEFI:现代固件,使用 GPT 分区表,支持超大硬盘,启动更快,并提供安全启动(Secure Boot)等高级功能。

🎛️ 阶段二:引导加载程序 (Bootloader)

固件将控制权交给引导加载程序,它充当了固件与操作系统内核之间的桥梁。Linux 系统中最主流的引导加载程序是 GRUB (GRand Unified Bootloader)。

  • 加载位置
    • BIOS 模式:从硬盘的第一个扇区(主引导记录 MBR)加载 GRUB。
    • UEFI 模式:从专门的 EFI 系统分区(ESP)中加载 GRUB。
  • 核心任务
    1. 显示启动菜单:提供一个界面,允许用户选择要启动的内核版本或操作系统(在双系统环境中非常有用)。
    2. 加载内核与 initramfs :根据用户选择,将 Linux 内核镜像(vmlinuz)和一个临时的根文件系统镜像(initramfsinitrd)加载到内存中。
    3. 移交控制权:将 CPU 的控制权正式移交给 Linux 内核。

🐧 阶段三:Linux 内核初始化

内核被加载到内存后,开始接管系统,并进行全面的初始化。

  1. 硬件探测与驱动加载:内核识别 CPU、内存、硬盘、网络设备等所有硬件,并加载相应的驱动程序。
  2. 挂载 initramfs :内核首先挂载 initramfs。这是一个临时的根文件系统,其中包含了挂载真实根文件系统所必需的驱动和工具(例如 LVM、RAID 或特定文件系统的驱动)。
  3. 挂载真实根文件系统 :利用 initramfs 中的工具,内核根据启动参数找到并挂载硬盘上真正的根文件系统(/)。
  4. 启动 init 进程 :完成根文件系统的挂载后,内核启动用户空间的第一个进程------init 进程(其进程 ID 恒为 1)。

⚙️ 阶段四:init 系统与服务管理

init 进程是所有其他用户空间进程的"鼻祖",负责启动和管理系统服务。现代 Linux 发行版(如 CentOS 7+, Ubuntu 16.04+)普遍采用 systemd 作为默认的 init 系统,它取代了传统的 SysVinit

  • systemd 的核心概念
    • 目标 (Target)systemd 使用"目标"来替代传统 SysVinit 的"运行级别 (Runlevel)"。例如:
      • multi-user.target:对应运行级别 3,即多用户命令行模式,是服务器的常用模式。
      • graphical.target:对应运行级别 5,即多用户图形界面模式。
    • 并行启动systemd 能够并行启动多个服务,显著加快了系统的启动速度。
  • 核心任务systemd 根据默认的目标(可通过 systemctl set-default 命令设置),依次启动网络、SSH、防火墙、定时任务等一系列系统服务和守护进程。

🖥️ 阶段五:用户登录

当所有必要的系统服务都已启动,系统便进入了等待用户交互的状态。

  • 启动登录程序
    • 命令行模式 :启动 getty 进程,在终端上显示登录提示符。
    • 图形界面模式 :启动显示管理器(如 gdmlightdm),呈现图形化的登录界面。
  • 用户认证 :用户输入用户名和密码后,系统通过 /etc/passwd/etc/shadow 文件进行验证。
  • 进入系统:验证通过后,系统加载用户的 shell 环境或桌面环境,用户便可开始使用系统。



相关推荐
IMPYLH2 小时前
Linux 的 dircolors 命令
linux·运维·服务器·数据库
齐齐大魔王2 小时前
linux-基础操作
linux·运维·服务器
一个有温度的技术博主2 小时前
网安实验系列二:服务器信息收集
运维·服务器
bwz999@88.com2 小时前
ubuntu24.04更换国内源
linux·运维·服务器
腾科IT教育2 小时前
红帽认证考试全国考点信息新发布,便捷参考
运维·服务器·红帽认证·linux考试·rhcsa考试
历程里程碑2 小时前
Protobuf 环境搭建:Windows 与 Linux 系统安装教程
linux·运维·数据结构·windows·线性代数·算法·矩阵
软件资深者3 小时前
OpenClaw 本地安装 vs 网页版龙虾:全方位对比 + 2026 最新一键安装客户端(新手零门槛搭建专属 AI 助理)
运维·人工智能·自动化·飞书·数字员工·openclaw·龙虾
XXOOXRT3 小时前
Ubuntu搭建Java项目运行环境(JDK17+MySQL8.0)超详细教程
java·linux·mysql·ubuntu
吴声子夜歌3 小时前
TypeScript——类型基础(二)
linux·ubuntu·typescript