2021年3月-第01阶段-Linux基础-Linux系统的启动流程

Linux系统的启动流程

理解Linux操作系统启动流程,能有助于后期在企业中更好的维护Linux服务器,能快速定位系统问题,进而解决问题。

2021年3月-第01阶段-Linux基础-Linux系统的启动流程

上图为Linux操作系统启动流程

1.加载BIOS

计算机电源加电质检,首先加载基本输入输出系统(Basic Input Output System,BIOS),BIOS中包含硬件CPU、
内存、硬盘等相关信息,包含设备启动顺序信息、硬盘信息、内存信息、时钟信息、即插即用(Plug-and-Play,PNP)
特性等。加载完BIOS信息,计算机将根据顺序进行启动。

2.读取MBR

读取完BIOS信息,计算机将会查找BIOS所指定的硬盘MBR引导扇区,将其内容复制到0x7c00地址所在的物理内存中。
被复制到物理内存的内容是Boot Loader,然后进行引导。

3.GRUB引导

GRUB启动引导器是计算机启动过程中运行的第一个软件程序,当计算机读取内存中的GRUB配置信息后,会根据其配置
信息来启动硬盘中不同的操作系统。

4.加载Kernel

计算机读取内存映像,并进行解压缩操作,屏幕一般会输出“Uncompressing Linux”的提示,当解压缩内核完成后,屏幕
输出“OK, booting the kernel”。系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的
初始化函数并初始化各种设备,完成Linux核心环境的建立。

5.设定Inittab运行等级

内核加载完毕,会启动Linux操作系统第一个守护进程init,然后通过该进程读取/etc/inittab文件,/etc/inittab文件
的作用是设定Linux的运行等级,
Linux常见运行级别如下:
•0:关机模式
•1:单用户模式
•2:无网络支持的多用户模式
•3:字符界面多用户模式
•4:保留,未使用模式
•5:图像界面多用户模式
•6:重新引导系统,重启模式

6.加载rc.sysinit

读取完运行级别,Linux系统执行的第一个用户层文件/etc/rc.d/rc.sysinit,该文件功能包括:设定PATH运行变量、设定
网络配置、启动swap分区、设定/proc、系统函数、配置Selinux等。

7.加载内核模块

读取/etc/modules.conf文件及/etc/modules.d目录下的文件来加载系统内核模块。该模块文件,可以后期添加或者修改及删除。

8.启动运行级别程序

根据之前读取的运行级别,操作系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。其中
以S开头表示系统即将启动的程序,如果以K开头,则代表停止该服务。S和K后紧跟的数字为启动顺序编号。

2021年3月-第01阶段-Linux基础-Linux系统的启动流程

2021年3月-第01阶段-Linux基础-Linux系统的启动流程

上图为运行级别服务

9.读取rc.local文件

操作系统启动完相应服务之后,会读取执行/etc/rc.d/rc.local文件,可以将需要开机启动的任务加入到该文件末尾,系统
会逐行去执行并启动相应命令。

2021年3月-第01阶段-Linux基础-Linux系统的启动流程

开机运行加载文件

10.执行/bin/login程序

执行/bin/login程序,启动到系统登录界面,操作系统等待用户输入用户名和密码,即可登录到Shell终端,输入用户名、
密码即可登录Linux操作系统,至此Linux操作系统完整流程启动完毕。

2021年3月-第01阶段-Linux基础-Linux系统的启动流程

系统登陆界面

拓展阅读@

扫一扫下面的二维码,关注我们,获取更多精彩活动资讯,有好礼相送哦~

2021年3月-第01阶段-Linux基础-Linux系统的启动流程

【腾讯云】618云上GO!云服务器限时秒杀,1核2G首年95元!

2021年3月-第01阶段-Linux基础-Linux系统的启动流程

【华为云】特惠专区,多款产品限时特价!

2021年3月-第01阶段-Linux基础-Linux系统的启动流程

【阿里云】上新必买抢先知,劲爆优惠不错过!

2021年3月-第01阶段-Linux基础-Linux系统的启动流程

【七牛云】优惠专区,多款云产品限时抢购!

2021年3月-第01阶段-Linux基础-Linux系统的启动流程

【又拍云】免费CDN专区,10G免费大放送!

2021年3月-第01阶段-Linux基础-Linux系统的启动流程

【知识星球】一个资料分享的站点,各种学习资料,随时分享

2021年3月-第01阶段-Linux基础-Linux系统的启动流程

微信赞助; 微信打赏 支付宝打赏

免责声明:本文所有内容均为互联网上收集而来,仅供学习交流,整理文章为传播相关技术,如有侵权,请联系删除

Original: https://www.cnblogs.com/minvenus/p/Learning-Linux.html
Author: Destiny_Minvenus
Title: 2021年3月-第01阶段-Linux基础-Linux系统的启动流程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/586116/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • go——数组

    GO——数组 一、一维数组声明方式: 1. var 数组名 [数组长度] 数组类型 var arr [5]int //定义一个数组,有5个元素,数组类型为整形 2.var 数组名=…

    Linux 2023年6月7日
    0109
  • 继承与初始化

    了解包括继承在内的初始化全过程: 执行结果: 程序运行时,先试图访问Beetle.main()(一个static方法),访问Beetle类的静态方法将会使Beetle类加载,即加载…

    Linux 2023年6月8日
    0113
  • [python] boss直聘自动搜索简历聊天HR机器人

    前言 1、首先进行几个关键位置的标定 2、拖拽鼠标复制简历的文字,并进行字符串匹配,对候选人进行人物画像和打分 3、筛选、聊天、下一个全流程状态机 附录 前言 该机器人完全仿照人是…

    Linux 2023年6月8日
    0232
  • QT官方社区及版本说明

    Qt版本说明 版本分类 Qt商业版:提供给商业软件开发。它们提供传统商业软件发行版并且提供在协议有效期内的免费升级和技术支持服务。 Qt开源版:提供了和商业版本同样的功能。它是免费…

    Linux 2023年6月13日
    0173
  • 幸运的袋子 附加动图演示!

    幸运的袋子_牛客题霸_牛客网 (nowcoder.com) 厄运的袋子 用到了深度遍历 递归回溯法 这里假设一个例子: 1 1 1 2 2 3 4 5 7 8 因为要确认是否辛运,…

    Linux 2023年6月13日
    092
  • podman的基本用法

    podman的基本设置和使用 运行示例容器 列出正在运行的容器 检查正在运行的容器 测试 httpd 服务器 查看容器的日志 查看容器的 pid 检查点容器 恢复容器 迁移容器 停…

    Linux 2023年6月13日
    084
  • ssh远程连接服务(二)三台虚拟机之间的免密登录

    创建三台虚拟机主机名分别为node01、node02、node03 在node01虚拟机上生成密钥对 然后将生成的公钥分别复制到node02、node03的虚拟机上(前提三台虚拟机…

    Linux 2023年6月7日
    0101
  • 图解固件、驱动、软件的区别

    大家好,我是良许。 不管我们使用什么操作系统,无论是 Windows、macOS 还是 Linux ,里面都安装了许多软件、驱动程序和固件。但是,这三者概念有区别呢? 我在朋友圈做…

    Linux 2023年6月14日
    0106
  • 基于libevent的http服务器实现

    基于libevent的http服务器实现 //libevent的http服务器简单实现方式 #include #include #include #include //for st…

    Linux 2023年6月14日
    0112
  • JVM的监控

    JVM的监控 Table of Contents *一、jvm常见监控工具&指令 * 1、 jps:jvm进程状况工具 * 2、jstat: jvm统计信息监控工具 * 3…

    Linux 2023年6月13日
    0132
  • Linux 最小安装与 Xshell 远程工具的使用

    写在前面:本篇文章介绍了CtenOS的最小安装方法,以及使虚拟机使用VMware的桥接模式的方法。桥接模式下的虚拟机,相当于和物理机处于同一物理网络(网线、WIFI等)下。在多台物…

    Linux 2023年6月8日
    0116
  • python 内置模块

    #!/usr/bin/env python -*- coding:utf-8 -*- import time #时间模块 print(time.time())#当前时间戳 #本地时…

    Linux 2023年6月13日
    081
  • Linux-shell

    shell 为注释 !执行脚本的 解释器 为bash 权限问题 remark 调试 bash -x man test 变量 —>默认必须全局变量 局部变量必须给local a…

    Linux 2023年6月7日
    086
  • DSTAT, Versatile resource statistics tool, 多功能资源统计工具;

    之前用到的一个IO监控工具,今天要使用,却忘记了名字,记录一下: dstat命令是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具…

    Linux 2023年6月13日
    091
  • Redis 内存压缩原理

    Redis 无疑是一个大量消耗内存的数据库,因此 Redis 引入了一些设计巧妙的数据结构进行内存压缩来减轻负担。ziplist、quicklist 以及 intset 是其中最常…

    Linux 2023年5月28日
    0100
  • 打造一个红旗(redflag)Linux的基础镜像(base image)

    由于工作原因,想找一个红旗Linux的基础镜像(base image)。网上搜了一下,但没有现成的。起初是想找对应的centos版本来代替,但又怕有些莫名其妙的问题。 官方文档 不…

    Linux 2023年6月8日
    087
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球