Linux操作系统启动流程

辰星3年前技术文章853

无论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


相关文章

Nexus 制品管理平台

Nexus 制品管理平台

Nexus 官网:https://www.sonatype.com/nexus-repository-ossNexus 是一个很强大的私服软件,不仅仅是作为 Java 的 Maven 打包使用,同样的...

oracle回收站简介

一、回收站简介1、概念和功能回收站从ORACLE 10g开始引入,全称叫Tablespace Recycle Bin。回收站实际是一个逻辑区域,使用的已经分配的表空间,表被drop时,数据不会实际删除...

服务器cpu异常抖动排查

服务器cpu异常抖动排查

问题背景      当天下午某某客户服务器cpu使用率80%报警持续10分钟左右后又恢复了,联系客户排查,有出现不同的应用服务器都有收到cpu报警,而且出现这样的抖动不止一次,每隔一段时间就会出现类似...

Linux 文本三剑客 - Grep

grep 是一个最初用于 Unix 操作系统的命令行工具。在给出文件列表或标准输入后,grep 会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本。1970 年代,Uni...

HDP-Yarn开启CPU调度和隔离

HDP-Yarn开启CPU调度和隔离

进入到ambari主界面 点击yarn 点击config CPU Scheduling and Isolation 设置为enable修改高级配置点击ADVANCED搜索需要修改的配yarn.node...

A集群导入B集群中的高可用版rancher,一直处于pending状态

A集群导入B集群中的高可用版rancher,一直处于pending状态

问题现象:已知在B集群中采用helm方式部署了一个高可用版本的rancher,该rancher中已经配置导入了三套集群,并且三套集群状态在rancher控制台处均显示正常,日常可借助该rancher管...

发表评论    

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