linux系统启动流程图
BIOS/UEFI阶段:
- 电源启动: 计算机通电,BIOS/UEFI固件开始执行。
- 自检和初始化: BIOS/UEFI进行硬件自检,初始化硬件设备。
- 引导设备选择: BIOS/UEFI从启动设备中选择一个,通常是硬盘或者其他存储设备。
Bootloader(引导加载程序)阶段:
- GRUB(GRand Unified Bootloader): 大多数Linux系统使用GRUB作为引导加载程序。GRUB加载内核映像和初始化ramdisk。
- 内核加载: 引导加载程序加载Linux内核映像(vmlinuz)到内存。
内核初始化阶段:
- 启动内核: 内核开始执行,初始化系统的基本部分。
- 初始化根文件系统: 内核会挂载根文件系统,这是文件系统的根目录。
- 初始化设备驱动: 内核初始化硬件设备和加载相应的设备驱动。
用户空间初始化阶段:
- init过程: 传统上,Linux系统使用init进程作为用户空间的第一个进程。最近的系统可能使用systemd等替代方案。
- 运行级别切换: init或类似的初始化进程会根据配置文件切换到指定的运行级别(如单用户模式、多用户图形模式等)。
系统初始化和登录阶段:
- 系统初始化脚本: 在用户空间,系统会运行一系列初始化脚本,配置网络、启动服务等。
- 登录管理器: 如果系统使用图形用户界面(GUI),登录管理器(如GDM、LightDM)将启动,并等待用户登录。
用户登录和图形环境阶段:
- 用户登录: 用户通过登录管理器登录系统。
- 启动用户会话: 登录后,用户的环境将会被设置,用户配置文件和启动脚本将会被加载。
- 图形环境启动: 如果用户选择了图形用户界面,相应的桌面环境(如GNOME、KDE)将被启动。