从 CentOS7 版本开始,系统启动和服务管理器都交给 systemd 进行管理。

一、引导过程总览:

centos7 启动级别 centos7启动过程_centos7 启动级别


1、开机自检:

服务器开机后,将根据主板BIOS (基本输入系统),中的设置对CPU 、内存、显卡、键盘等设备进行初步检测,并初始化部分硬件。

2、MBR 引导:
当从本机硬盘中启动系统时,首先根据硬盘中第一个扇区中 MBR(主引导记录)的设置,将系统控制权传递给包含系统操作引导文件的分区;或者直接根据MBR 记录中的引导信息调用启动菜单。

3、GRUB 菜单:
对于linux系统来说,GRUB 算是使用最为广泛的多系统引导器程序了,系统控制权传递给GRUB 以后,将会显示提供用于选择,并根据选项加载linux 内核文件。

4、加载linux 内核与内存文件系统:
系统引导器程序会从本地硬盘中加载内核以及内存文件系统(centos7 中使用的是 initramfs),内存文件系统 initramfs 是经过gzip 的 cpio 归档,其中包含启动时所有必要的硬件内核模块、初始化脚本等。

5、加载硬件驱动以及初始化过程:
内核初始化在 initramfs 中找到驱动程序的所有硬件,然后作为PID 1 从initramfs 执行 /sbin/init,CtnOS7 中将其复制为 systemd,systemd启动 initrd.target 中所有单元,并挂载根文件系统 /sysroot,内核与文件由内存文件系统切换至系统根文件系统,并重新运行 /sysroot.systemd。systemd启动默认target (图形或者字符终端),最后等待用户登录。

二、init 进程:
1、由Linux 内核加载运行 /sbin/init 程序
2、是系统中的第一个进程
3、PID (进程标记)号永远为 1

三、Systemd 进程:
1、systemd 简介:
linux系统中的进程(运行中的程序),使用数字进行标记,每个进程的身份标记号称为 PID 。从CentOS7 版本的系统开始 systemd 称为PID 恒为1 的初始化进程,是内核第一个加载的程序。
systemd 进程是不允许被轻易终止的,当我们需要切换不同的系统时,可以向systemd 进程发送正确的命令。
systemd 的目的是为了将更多的服务并发启动,从而提高系统启动速度,最大的优点在于具有提供按需启动服务的能力。

2、Systemd 单元类型:

centos7 启动级别 centos7启动过程_centos7 启动级别_02


3、运行级别所对应的 Systemd 目标:

centos7 启动级别 centos7启动过程_linux_03


其中 3和 5 是我们平时学习和工作中较为常用的两个级别。