学游者

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

2.Systemd 的初始化

2.1 简化过程

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

posted on 2024-06-19 10:37  学游者  阅读(26)  评论(0)    收藏  举报