Linux初始化

Linux的初始化

0.参考

    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.SysV init 初始化

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启动方式的对比

Linux初始化_第1张图片

2.Systemd 的初始化

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 文件夹下面的系统初始化(初始化等级)

    Linux初始化_第2张图片

    5.2  /usr/lib/systemd/system/graphical.target

    Linux初始化_第3张图片

    5.3 需要的 /usr/lib/systemd/system/multi-user.target

Linux初始化_第4张图片

    5.4 需要 /usr/lib/systemd/system/basic.target

    Linux初始化_第5张图片

    5.5 需要 /usr/lib/systemd/system/sysinit.target

Linux初始化_第6张图片

    5.6 需要在local-fs.target 、swap.target 、emergency.service、emergency.target 

6 启动本地 rc.local

2.2 systemd的启动方式图

你可能感兴趣的:(linux,init,sysv,Systemd)