Linux系统的开机过程是一个涉及多个硬件和软件组件的复杂流程,主要包括以下阶段:
BIOS/UEFI启动
- 加电自检(POST):开机后,BIOS首先执行自检,确保所有硬件设备正常工作。
- 硬件初始化:BIOS初始化硬件设备,如CPU、内存、硬盘等。
- 启动设备选择:根据CMOS设置,BIOS选择从哪个设备启动,通常是硬盘。
- 加载引导加载程序:BIOS将硬盘上的主引导记录(MBR)或GUID分区表(GPT)加载到内存中。
引导加载程序(Bootloader)
- GRUB:最常见的引导加载程序,负责加载操作系统内核。
- 功能:显示引导菜单,允许用户选择启动的操作系统或内核。
- 加载内核:根据配置,GRUB加载Linux内核到内存中。
内核加载
- 解压缩内核:内核开始解压缩并执行初始化代码。
- 硬件检测与驱动加载:内核检测硬件并加载必要的驱动程序。
- 初始化系统:设置内存管理、中断处理等核心子系统。
系统初始化
- init进程:内核启动第一个用户空间进程,通常是
/sbin/init
。 - 运行级别:init根据配置文件(如
/etc/inittab
或/etc/systemd/system/default.target
)决定启动的运行级别。 - 服务启动:根据运行级别,init启动相应的服务和守护进程。
用户登录
- 登录界面:系统显示登录界面,用户输入用户名和密码。
- 认证:系统验证用户身份。
- 用户会话:验证通过后,用户进入图形界面或命令行界面。
理解Linux的开机过程有助于在遇到启动问题时进行故障排除和系统优化。