Linux操作系统启动流程

辰星3年前技术文章796

无论Windows还是Linux操作系统,启动之前都会对硬件进行检测,之后硬盘引导启动操作系统,下面是与启动系统相关的几个概念。


  1. BIOS

基本输入输出系统 是一组固化到计算机主板上的只读内存镜像芯片上的程序,主要功能是为计算机  提供最底层的最 直接的硬件设置和控制。

  1. MBR

全新硬盘在使用之前必须进行分区格式化,硬盘分区初始化的格式主要有两种,分别为MBR 格式和GPT 格式。

如果使用MBR 格式,操作系统将创建主引导记录扇区,主要功能是操作系统对磁盘进行读写时,判断分区的合法性以及分区引导信息的定位。在MBR 硬盘中,硬盘分区信息直接存储于主引导记录中,同时主引导记录还存储着系统的引导程序。

  1. GPT

在GPT 硬盘中,分区表的位置信息储存在GPT 头中。出千兼容性考虑,第一个扇区同样有一个与MBR 类似的标记,叫作受保护的主引导记录,作用是当使用不支持GPT 的分区工具时,整个硬盘将显示为一个受保护的分区,以防止分区表及硬盘数据遭到破坏,而其中存储的内容和MBR 一样,之后才是GPT 头。GPT 优点支持2TB 以上磁盘,MAC 、Linux 系统都能支持GPT 分区格式, Windows 7 /8 64位,Windows Server 2008 64 位支持GPT 。

  1. GRUB

GNU 项目的多操作系统启动程序(GRand unified bootloader, GRUB), 可以支持多操作系统的引导,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB 可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。它是一个多重操作系统启动管理器。


Linux 操作系统启动流程

初学者对Linux 操作系统启动流程深入理解,能有助于后期在企业中更好地维护Linux 服务器,能够快速定位系统问题,进而解决问题。Linux 操作系统启动流程如图所示。

image.png

1 . 加载BIOS

计算机电源加电质检,首先加载基本输入输出系统,包含硬件CPU,内存,硬盘等相关信息,设备启动顺序信息,硬盘信息,内存信息,时钟信息等。加载完BIOS 信息,计算机将根据顺序进行启动。

2. 读取MBR

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

3. GRUB 引导

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

4. 加载kernel

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

5. 设定inittab 运行等级

内核加载完毕,会启动Linux 操作系统第一个守护进程init, 然后通过该进程读取/etc/inittab,/etc/inittab 文件的作用是设定Linux 的运行等级。

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 开头,则代表停止该服务。


image.png

9. 读取rc.local 文件

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

image.png

10. 执行/ bin/ login 程序

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

image.png


相关文章

SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构(1)

SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构(1)

  1.0 云服务器的准备        使用云服务是为了可以得到一个 Linux 环境,比如说常用到的 Ubuntu 的配套程序。  &n...

大数据集群监控配置操作指导(一)prometheus+grafana部署

大数据集群监控配置操作指导(一)prometheus+grafana部署

1.prometheus+grafana部署(单独部署到一台服务器。4c8g。系统盘300G。操作系统建议7.6到7.9)1.1下载prometheus和grafana的二进制包mkdir /opt/...

MySQL运维实战之备份和恢复(8.7)将数据库恢复到指定时间点的另外一种方法

使用mysql原生复制功能实现时间点恢复使用mysqlbinlog解析并执行binlog是实现mysql时间点恢复的一种常用的方法。这里提供另外一种实现时间点恢复的方法:使用mysql的复制功能来实现...

kafka单条消息过大导致线上OOM

1 线上问题kafka生产者罢工,停止生产,生产者内存急剧升高,导致程序几次重启。查看日志,发现Produce程序爆异常kafka.common.MessageSizeTooLargeExceptio...

sqlserver迁移job步骤

sqlserver迁移job步骤

1)源服务器 sql server 找到sql server 代理,选中作业 2)按F7 弹出作业对象资源管理器,全选中作业 3)右击单出编写job 脚本窗口,将job 创建脚本保存到查询编辑器窗口 ...

NAS文件被删除问题排查

NAS文件被删除问题排查

一、问题现象客户业务方反馈服务器上挂载的nas文件被删除,业务中许多文件丢失,业务受到严重影响。需要我方协助排查。二、问题背景该nas挂载到两台业务服务器上,后端应用为java应用,存储内容为jpg、...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。