一、系统启动的顺序分为如下:
BIOS加电自检--》引导装载程序--》内核初始化--》启动父进程systemd
二、系统启动顺序状态:
1.系统处于完成关机状态
2.系统处于开机状态,使用命令来重启系统
三、分析系统启动顺序
1.BIOS加电自检
首先,BIOS的中文长称“基本输入输出系统”,是在PC兼容系统上的一种业界标准的固定接口。大当电脑启动时是第一个加载的软件。
BIOS加电,即当我们按下电源按钮,CPU就开始执行指令,将这个指令送到BIOS启动代码处。
BIOS自检,执行系统BIOS的启动代码,首先先进行POST(power on self test:加电自检),POST的主要任务是检测系统中的一些关键设备是否存在和能否正常工作,例如显卡,内存等,如果检查无误就会进行下一步。如果检查出现错误,例如找不到内存或者内存(金手指没擦干净之类)有问题,而POST过程只检查640K常规内存,因此是无法再屏幕上显示出来,这时系统POST通过喇叭发声来报告错误情况,比如声音的长短和次数都代表着不同的错误。但在正常情况下,BIOS加电自检的速度是非常快的,比如完全开机只有9秒的,那么你还觉得加电自检慢吗?
2.引导装载程序
引导加载器分为:GRUB、GRUB2、LILO。其中GRUB2是罪行的引导加载程序,也是使用最广泛的一个。
grub2配置文件加载顺序:
- 分区编号开始从1开始
- 配置文件支持脚本化编写,支持变量、条件、循环
- 提供环境块机制用以保存少量的启动过程信息(操作系统加载之前的)
- 能够支持多盘引导,可以通过磁盘标签、磁盘的UUID确定磁盘
- 支持更多的系统,包括PC BIOS、PC EFI等等
- 提供图形化的终端
- 支持更多的文件系统
- 支持LVM、RAID等机制
- 重新组织引导镜像,不再使用Stage 1, Stage 1.5, and Stage 2作为引导阶段
- 支持动态模块加载,可以根据需要加载不同的驱动
3.内核初始化
内核初始化的映像和存储设备映射表都存储在/boot目录下,一般这个目录称为引导目录(分区),而内核文件都是以自解压的压缩格式存储,进而节省存储空间。
在选定的内核加载到内存中并开始执行后,在器进行任何工作之前,内核文件首先必须从压缩格式解压自身。当内核自解压完成后,就加载systemd进程并转移控制权到systemd。
这就是引导过程的结束,Linux内核和systemd处于运行状态,而因没有其他程序在执行,所以没有任何与用户相关的功能性任务。
4.启动父进程systemd
systemd:是老式system V系统的init程序的代替。
systemd是所有的进程的父进程。它负责将Linux主机带到一个用户可操作的状态下。在这个状态下,可以管理运行中的Linux主机的许多进程,比如挂载文件系统(/etc/fstab)、开启和管理Linux主机的系统服务(/etc/目录下的服务)。systemd父进程会去读取自身的配置文件(/etc/systemd/system/default.target)决定Linux系统启动的状态和级别。
四、系统启动级别和状态
Linux启动系统级别和状态
因为上传文字表格的时候出现格式不兼容,所以我就用截图的形式写在博客这里。
请见谅,需要的可以保存下来,有空看一下,增加记忆。
原文地址:http://blog.51cto.com/leoheng/2161336