详细介绍Linux引导过程
在本文中,我将为我们提供" Linux引导过程的逐步概述,并带有一些流程图",可以更好地理解。
Linux引导过程的阶段(流程图)
BIOS阶段
引导加载程序阶段
内核阶段
1. BIOS阶段
机器开机后,将首先调用BIOS,以验证机器中是否存在硬件以及硬件是否正常运行。
这是通过执行"开机自检"(POST)来完成的
测试成功后,BIOS将检查硬盘中的MBR(主引导记录),以检查其是否指向引导加载程序的位置。
2.引导加载程序阶段
如果系统上安装了操作系统,则将安装引导加载程序。
最常见的两种引导加载程序是
LILO(Linux加载程序)
GRUB(大型统一引导加载程序)
另请阅读:
了解如何提取和验证initrd图像内容,重建和创建自定义initrd图像
"引导加载程序"将向用户显示菜单项列表,每个菜单项对应于不同的操作系统
然后,引导加载程序将开始引导操作系统。
选择启动Linux的选项时,它将解压缩内存中的Linux内核
之后,
Linux内核
(我们选择从中启动)加载initrd
(初始ramdisk)。Linux内核将initrd用作内存中的临时文件系统
它包含工具和内核模块,这些工具和内核模块将继续引导过程,包括"临时安装虚拟根文件系统"。
代替使用initrd,某些Linux文件系统也将使用
initramfs
。它具有与initrd相同的目的,只是它是initrd的后继者
linuxrc是下一个生成的可执行文件,它探测大容量存储硬件并找到合适的内核模块来驱动大容量存储硬件
这是准备"真正的根文件系统以供Linux内核挂载"所必需的。
3.内核阶段
在Linux引导序列的内核阶段,基于`linuxrc结果的Linux内核可以挂载真正的根文件系统。
Linux中的实际根文件系统被称为" /",它是运行Linux时可见的所有其他子目录和文件的地方
然后,内核将"生成init进程",该进程始终具有进程标识符(PID)为" 1",因为它是内核在启动时启动的"第一个后台进程或者守护程序"。
其他所有"后台守护程序"都是从init进程中产生的。
因此,init进程将根据不同运行级别的配置加载其他系统守护程序
例如:
- 如果系统启动进入运行级别3,则init进程将从该运行级别启动所有守护程序。
重要的提示:
运行级别3指的是multi-user.target