systemd开机启动脚本_Linux系统启动流程

01a052251386c39a801fc3c342239965.png

感谢各位大佬指出问题!!!

以前并没有关注过开机启动这块的内容,systemed都是在各个网站参考后写的自己的理解,有问题的话,望提出!

systemd:为何要创建一个新的init系统软件​www.wowotech.net linux rhel 7系统启动过程​blog.csdn.net
15ac931fa0cf120b8e02157b4eeef321.png
RHEL7与6开机过程比较_远华的博客-CSDN博客_启动rhel7的主机电源。​blog.csdn.net
565d2260da990694a879e4a529a06bac.png

Linux操作系统的开机流程详解

第一步: BIOS自检

这步是找到BIOS检查CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等,(启动顺很熟悉,每次gost装机的时候,要把开机首选项设置成从U盘启动)。

第二步: 读取MBR(Master boot Record)

MBR是位于一扇区,零磁道,0柱面的一个有512B的文件,里面有446B是引导区(PRE-BOOT) ,用来找到活动分区(active)并将活动区读入0×7c00内存,其实被复制到内存的就是我们说的BOOT Loader,准确到电脑上就是GRUB。还有66B是分区表(PARTITION PABLE)这里记录了硬盘信息。(分了几个区之类的)

第三步: 加载Boot Loader

Boot Loader的种类有很多, 其实是一段小程序,初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状 态,以便为最终调用操作系统内核做好一切准备。其中Grub、Lilo和spfdisk是常见的Loader。下面使用Grub(就是开机的时候选择哪一个内核)。

第四步:加载内核

系统将解压后的内核放置在内存中(这里说系统到底是哪一个系统呢?)开始调用start_kernel()函数, 来初始化各种设备,到这里内核环境已经建立起来了。

第五步:启动systemed单元目标

随之而来的是/etc/inittab文件无效。取而代之的是 /etc/systemd/system/default.target,这是一个软链接指向/usr/lib/systemd/system/graphical.target,当改变默认运行级别的时候,软连接指向的文件也随之改变

1.systemd将运行级别分成了不同的启动单元组

7d14e5ba953e146fdf4770f686e879f7.png

6d7aca450d0693fe2e9706f8a5d0623a.png

fb0838020d5331e19f5eb650b91a58f2.png

将相应的服务划分为一个单元(eg:graphical.target)

2cdccdde26882bbc9c9c8070e77cc833.png

2、systemed并行启动原理

1、解决socket依赖

2、解决D-Bus依赖(desktop-bus)

3、解决文件系统依赖


剖析Linux系统启动过程中的 mingetty​www.360doc.com
6fdf7be90339191a5d20021c9662c72f.png
linux开机流程详解 - 李建杰 - 博客园​www.cnblogs.com linux开机流程详解 - 李建杰 - 博客园​www.cnblogs.com linux /etc/rc.d/目录的详解​blog.csdn.net
80762546a9f581e853a7956e56fc8275.png
linux中grub是干嘛的-智传网优云课堂​www.linuxrumen.com
ac156d6e2d868a7fa0a855297258db5a.png

Linux操作系统的开机流程详解(rehl6、centos7)

开机需要十步

第一步:开机自检(BIOS)就是开始工作之前先对自己的工具进行检查是否正常。BIOS其实就是主板上的一给自检程序,开机先对主板上自带的和外接的一些开机必备的设备进行检测,像CPU,显卡,内存,硬盘等设备的自检过程就是自检

第二步:MBR引导,也就是根据装有linux系统的硬盘上的主引导区的记录进行引导,主引导记录处在硬盘上的第一给物理分区上,硬盘能够读取到数据也就是靠的这个最主要的MBR主引导记录,假如这给512字节丢失那这张硬盘就无法工作。它里面包含了硬盘的主引导程序和硬盘的分区表,分区表有四个分区记录每个分区占16个字节共64个字节,还有446字节放主引导程序,2字节用作校验。

第三步:GRUB菜单(Boot Loader),也就是操作系统引导菜单

第四步:加载内核(kernel),也就是启动操作系统的核心

第五步:运行INIT进程,init也就是主进程,它的PID号是1也就是第一个被运行的进程

第六步:读取/etc/inittab配置文件,也就是linux开机时默认的运行级别

第七步:init进程,执行/etc/rc.d/rc.sysinit初始化脚本,也就是init进程的初始化用来执行kernel的任务

第八步:执行/etc/rc.d/rc脚本,通过执行脚本找出默认启动模式选项要启动的进程

第九步:执行/etc/rc.d.rc.local个人配置脚本,也就是用户想要开机自启动的命令或者进程都放在这个脚本文件内,这样设置开机自启方式比较安全。开机时这给脚本文件内的所有命令全部执行一遍

第十步:启动mingetty进程(/sbin/mingetty)


init和systemed之间的一些特点:

Linux启动流程和服务管理(init和systemd)_谢公子的博客-CSDN博客_systemd与init​blog.csdn.net
5c7b24503d574cd2ee03bc2f5e5852d0.png
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值