系统运维Linux学习之Linux运维基础:Linux的引导过程
小职 2021-08-05 来源 : 阅读 857 评论 0

摘要:本文主要介绍了系统运维Linux学习之Linux运维基础:Linux的引导过程,通过具体的内容向大家展现,希望对大家系统运维Linux的学习有所帮助。

本文主要介绍了系统运维Linux学习之Linux运维基础:Linux的引导过程,通过具体的内容向大家展现,希望对大家系统运维Linux的学习有所帮助。


系统运维Linux学习之Linux运维基础:Linux的引导过程

计算机从开启电源到用户可以登录,主要经历了四个阶段:


初始化BIOS

执行启动加载程序

载入内核

启动systemd服务

BIOS

系统运维Linux学习之Linux运维基础:Linux的引导过程

    计算机通电后,首先由BIOS进行POST自检,然后依据BIOS内置的引导顺序从引导设备中读取引导模块。


    BIOS由两部分组成:POST代码和运行时服务。当POST完成之后,它被从内存中清理出来,但是BIOS运行时服务依然保留在内存中,目标操作系统可以使用这些服务。


    通常,Linux系统都是从硬盘上引导,其中主引导记录(MBR)中包含主引导加载程序。MBR是一个512B大小的扇区。位于磁盘上第一个扇区(0道,0柱面,1扇区),当MBR被加载到RAM中之后,BIOS就会将控制权交给MBR。


启动加载程序

    在单一MBR中只能存储一个操作系统的引导记录,当需要多个操作系统时就会出现问题,这时就需要更加灵活的引导加载程序。

    Linux系统支持两种常用的引导加载程序: LILO和GRUB,其中GRUB使用更加广泛。


GNU GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。


    相比于LILO,GRUB的功能更多,其拥有交互式界面,支持网络引导,同时其使用更加安全,避免因配置文件出错而出现系统无法启动的问题。


载入内核

内核(Kernel)是操作系统最重要的组件,用来管理计算机中所有的软硬件组件,以使操作系统具有基本能力。

Centos的许多功能,比如软件磁盘阵列,LVM,磁盘配额等,都是由内核提供的。


载入内核的过程就是将内核映像加载到内存中,内核镜像不是一个可执行的内核。内核映像的前面是一个例程,它实现少量硬件设置,并对内核映像中包含的内核进行解压缩,然后将其放入高端内存中。然后该历程会调用内核,开始启动内核引导过程。


Linux内核启动后,将依次完成四项工作:


检查所有硬件设备

驱动硬件设备

以只读方式挂载根文件系统

启动systemd服务

systemd 服务

在Centos7系统中,systemd进程是系统中所有进程的起点,是第一个运行的,而在Centos6中,第一个运行的进程是init。


systemd服务任务


建立系统使用环境。Centos7中所有的环境都是由systemd服务管控的,比如提供虚拟控制台,切换到其他Target等。

确保系统正常运行。Centos7上所有的进程都可视为systemd服务的衍生后代,如果Linux上出现了僵尸进程(Orphan Process),则systemd服务必须结束这些僵尸进程,以确保Linux系统正常运行。

监控串行端口的周边设备。systemd服务也会监控通过串行端口连接到的外部设备,比如UPS,调制解调器等。

扮演终结父进程的角色。系统总是可以确信systemd进程的存在,当出现孤儿进程的时候,孤儿进程会以systemd作为他们的父进程。

systemd服务的特点


PID永远为1,由于systemd服务是Centos7启动后第一个被启动的程序,因此,systemd服务第一个特性就是其进程标识符(Process ID,PID)永远为1。

无法被root用户终止。Centos7系统上所有的进程都可视为systemd的子进程,如果systemd可以被任意终止的话,那么系统中所有的进程都将会被结束掉。为避免这种情况发生,systemd服务被设计为无法被任何用户终止,包括超级用户(root)。

初始化系统环境

一般来说默认的default.target只是一个软链接,它所指向的是一个服务集合。

一个服务集合一般依赖于另外一个或多个服务集合。

可以通过 systemctl list-dependencies <target> 进行查看


部分target的分析


local-fs.target 和 swap.target


这两个target 主要用于管理本机 /etc/fstab 文件所记录的相关设备的挂载动作


sysinit.target


该target主要用于侦听硬件,载入所需核心模块。例如特殊文件系统的挂载,包括dev-hugepages.mount,dev-mqueue.mount等,RAID磁盘阵列,iSCSI存储,LVM逻辑卷等也使用该target管理,以及其他日志,终端字体,额外的核心参数等都用到该target


basic.target


该target用于加载主要的硬件驱动和防火墙等时,牵扯到firewalld防火墙,SELinux的安全设置,开机日志等模块的加载


multi-user.target


对于一般系统服务的加载,该target所定义的系统服务可在/usr/systemd/system目录下查看,一般性服务可在/etc/systemd/system目录下查看。


我是小职,记得找我

✅ 解锁高薪工作

✅ 免费获取基础课程·答疑解惑·职业测评

系统运维Linux学习之Linux运维基础:Linux的引导过程

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程