Linux启动流程
系统的启动流程可分为以下几个关键阶段,综合硬件初始化、引导加载、内核加载及用户空间初始化等过程。
流程图简化:
BIOS/UEFI → GRUB → 内核 → systemd → 目标状态 → 用户登录
BIOS/UEFI 初始化
计算机加电后,BIOS/UEFI 首先执行硬件自检(Power-On Self Test),检测 CPU、内存、存储设备等核心硬件状态
根据 BIOS/UEFI 配置的启动顺序(如硬盘、USB、网络等),加载目标设备的引导扇区代码(如 MBR 或 UEFI 分区)
GRUB 引导加载程序
BIOS/UEFI 将控制权移交至 GRUB(Grand Unified Bootloader),读取 /boot/grub/grub.cfg
配置文件并显示可引导的操作系统选项菜单
用户选择 Debian 启动项后,GRUB 将 Linux 内核(如 vmlinuz
)和初始内存磁盘镜像(initrd.img
)加载至内存,启动内核执行
内核初始化
内核初始化硬件设备(如磁盘控制器、网络接口),并挂载根文件系统
内核调用首个用户空间进程 systemd
(PID=1),取代传统的 SysV init 作为初始化系统
用户空间初始化
systemd
根据默认目标(如 multi-user.target
或 graphical.target
)激活基础服务(如网络、日志、定时任务)
- 级别 0 →
poweroff.target
(关机) - 级别 1 →
rescue.target
(单用户维护模式) - 级别 2-5 →
multi-user.target
(多用户模式) - 级别 6 →
reboot.target
(重启)
用户登录
若目标为图形界面(graphical.target
),systemd
启动显示管理器(如 GDM),进入登录界面
用户认证通过后,启动桌面环境(如 GNOME)或命令行 Shell
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 丘比特的小屋!
评论