Linux操作系统启动流程

辰星2年前技术文章510

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


相关文章

ACOS统一监控之java应用断诊

ACOS统一监控之java应用断诊

一、前言对于一些使用Java语言搭建的应用架构,java的应用诊断可以帮助开发人员快速发现和解决应用程序中的问题,提高应用程序的性能和稳定性。以下是常用Java应用诊断方法:堆转储分析:使用工具如MA...

数据湖Iceberg

数据湖Iceberg

1、概述         Iceberg 是一个面向海量数据分析场景的开放表格式(Table Format)。表格式(Table  Format)可以理解为元数据以及数据文件的一种组织方式,处于计算框...

nginx配置反向代理某个url

nginx配置反向代理某个url

本文讲的这个漏洞 主要是为了解决漏洞扫描的问题我先介绍下这个漏洞主要是因为访问https://172.16.120.17:18090/ws/v1/cluster/info这个 yarn rest的一个...

大数据即席查询-Kylin

大数据即席查询-Kylin

一、Kylin 定义 Apache Kylin 是一个开源的分布式分析引擎,提供 Hadoop/Spark 之上的 SQL 查询接口 及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay I...

Redis 持久化机制 AOF

Redis 持久化机制 AOF

前言Redis 有两种持久化机制,分别是 RDB 与 AOF 本篇文章将介绍 AOF 的执行过程与应用。1. AOF 简介AOF (Append only file) 持久化是以独立日志的方式记录每次...

dolphinscheduler单机部署

dolphinscheduler单机部署

官网链接:https://dolphinscheduler.apache.org本次测试版本为:https://dolphinscheduler.apache.org/zh-cn/download/3...

发表评论    

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