1.走进Linux之systemd启动过程 https://linux.cn/article-5457-1.html
2.浅析 Linux 初始化 init 系统,第 3 部分: Systemd http://www.ibm.com/developerworks/cn/linux/1407_liuming_init3/index.html
3.Linux 的启动流程 http://www.ruanyifeng.com/blog/2013/08/linux_boot_process.html
4.CentOS7系统systemd详解 http://www.centoscn.com/CentOS/2015/0408/5116.html
1.1简化过程
1. 打开电源后,电脑所做的第一件事情就是BIOS初始化<检测设备是否可用>。BIOS会读取引导设备设定,定位并传递系统控制权给MBR(第一个磁道,第一个扇区)。
2. MBR从Grub或LILO引导程序读取相关信息并初始化内核,将系统控制权给kernel。
3. kernel:探测硬件-->加载驱动(initrd)--->挂载根文件系统->rootfs(/sbin/init) 。
4. 通过 /sbin/init 连接到/etc/inittab脚本
5. 初始化系统,应用软件
(
1.系统初始化:用户,网络
2.应用软件:通过chkconfig 添加的启动软件
通过/etc/rc.d/rcX.d 的文件来初始化(启动等级),这个文件夹存放的是init.d文件的连接,并且以S<启动>和K<关闭>开头
)
6. 执行 rc.local
1.2 缺点:启动时间过长
1.3 SysVinit和Upstart启动方式的对比
2.1 简化过程<centos7>
1. 打开电源后,电脑所做的第一件事情就是BIOS初始化<检测设备是否可用>。BIOS会读取引导设备设定,定位并传递系统控制权给MBR(第一个磁道,第一个扇区)。
2. MBR从Grub或LILO引导程序读取相关信息并初始化内核,将系统控制权给kernel。
3. kernel:探测硬件-->加载驱动(initrd)--->挂载根文件系统->rootfs(/sbin/init)
4. 通过 /sbin/init 连接到 /usr/lib/systemd/systemd 脚本
5. /usr/lib/systemd/systemd 脚本初始化系统、用户、应用
5.1 启动 /usr/lib/systemd/system 文件夹下面的系统初始化(初始化等级)
5.2 /usr/lib/systemd/system/graphical.target
5.3 需要的 /usr/lib/systemd/system/multi-user.target
5.4 需要 /usr/lib/systemd/system/basic.target
5.5 需要 /usr/lib/systemd/system/sysinit.target
5.6 需要在local-fs.target 、swap.target 、emergency.service、emergency.target
6 启动本地 rc.local
2.2 systemd的启动方式图