《国产操作系统之银河麒麟》银河麒麟服务器操作系统引导过程

2023-05-16

目录

系统引导过程

01. 系统启动流程概述

系统启动总流程

第一阶段:BIOS初始化

​编辑

第二阶段 GRUB2启动引导

​编辑

第三阶段 内核引导

​编辑

第四阶段 systemd进程

02. 固件与BIOS

BIOS启动流程

BIOS分类

legacy

MBR结构图

MBR

UEFI

UEFI + GPT

03. 启动管理器bootloader

04. 内核加载

kernel

05. systemd守护进程

systemd


系统引导过程

01. 系统启动流程概述

系统启动总流程

  1. BOIS加电 开机自检

  2. 把MBR加载到内存

  3. 加载grub引导程序

  4. Kernel自身初始化

  5. 启动第一个程序systemd

第一阶段:BIOS初始化

 

第二阶段 GRUB2启动引导

 

第三阶段 内核引导

 

第四阶段 systemd进程

 

02. 固件与BIOS

  • 固件

    固件,英文名为firmware,是计算机产品最底层的软件

    早期固件芯片一般采用ROM设计,它的Firmware代码是生产过程中固化的,用任何手段都无法修改。

    随着技术的不断发展,修改固件以适应不断更新的硬件环境成了用户们的迫切要求,所以可重复写入的可编程可擦除只读存储器EPROM(Erasable Programmable ROM)和flash出现了。

  • BIOS

    Bios是Basic Input Output System的缩写,译为基本输入输出系统。

    计算机主板上的BIOS在以前就被称为固件

BIOS启动流程

  • Power on

    本阶段是对机器加电、检查有哪些硬件设备,不执行初始化

  • POST

    POST(power on self test)阶段进行硬件自检,对相应设备进行初始化

  • bootloader

    硬件自检和初始化后,会开始读取并执行MBR,再执行MBR的对应位置的BootLoader程序,进入引导加载阶段

BIOS分类

  • legacy

    legacy启动模式是当前最常用的BIOS启动模式,读取MBR引导记录表

  • uefi

    uefi全称为Unified Extensible Fireware Interface,译名为统一的可拓展固件接口,是一种新型bios。Uefi的方式也是兼容传统legacy的启动方式的。所以在uefi启动模式下可以选择legacy boot也可以选择uefi boot。

legacy

legacy启动模式采用的是MBR(Main Boot Record,译为主引导记录)分区表。系统在开机的时候会主动去读取MBR的内容,这样系统才会知道程序的位置且如何开机。我们把包含MBR引导代码的分区称为主引导分区。主引导山区一共占用512个字节,分为3个部分:

  1. 主引导程序:第一部分为主引导程序所在位置,共占用446个字节

  2. 磁盘分区表:第二个就是磁盘分区表项(Disk Patition Table,简称DPT),保存磁盘的分区情况,它由4个分区表项构成,每一个分区表项为16字节,供64字节

  3. 结束标志:第三部分就是结束标志,值为AA55(但存储时高位在前,低位在后,所以一般表示为55AA),共2个字节

MBR结构图

 

MBR

BIOS+MBR

MBR有两个主要的缺点:

  • 最多支持4个主分区或最多支持3个主分区+1个拓展分区

  • 每个分区最多不能超过2T的容量

UEFI

UEFI,是一种新型BIOS,使用UEFI启动模式下安装的银河麒麟操作系统,会比传统legacy启动模式多一个叫ESP(EFI系统分区)分区。ESP对UEFI启动模式很重要,UEFI的引导程序是以后缀名为.efi的文件放在ESP分区中的,ESP分区采用fat32文件系统。麒麟操作系统直接将ESP这个分区挂载到/boot/efi,直接用文件夹浏览器进去就可以看到各种efi文件了。

UEFI + GPT

uefi的分区表为GPT(GUIF Partition Table),译为"全局唯一标识磁盘分区表"

优势:

  1. GPT分区表头中可自定义分区数量的最大值,也就是说GPT分区表的大小不是固定的,那么分区数量也就没有限制

  2. GPT分区表较MBR分区表的另一个优势就是可以支持大于2T的分区

  3. GPT分区表中逻辑块地址采用64位二进制数表示,最大可以表示2^64个逻辑块地址(也就是扇区号),也就是说一个分区的容量可以达到2^64*512字节,远远超过2T的容量

03. 启动管理器bootloader

BootLoader即为启动管理器。在计算机读取MBR前面的446字节的机器码后,会将控制权交给BootLoader。BootLoader的主要功能如下:

  • 提供菜单:用户可以选择不同的启动项,这也是多重引导的重要功能

  • 加载内核文件:直接指向可启动的程序区段来开始操作系统

  • 转交其他loader:将引导装载功能转交给其他loader负责

linux下的BootLoader有grub、grub2、lilo、spfdisk

当前最新版银河麒麟操作系统使用的是grub2

04. 内核加载

kernel

kernel,内核,kernel是Linux系统最主要的程序,实际上,kernel的文件很小,只保留了最基本的模块,并以压缩的文件形式存储在硬盘中。内核文件放置在/boot目录下。

 从bios及BootLoader再到kernel的流程图

 

05. systemd守护进程

  • 麒麟操作系统先后才用过多种启动方式

    • Sysvinit

    • upstart

    • system

  • 麒麟操作系统V10版目前采用的启动方式是systemd

systemd

  • systemd是linux系统工具,用来启动守护进程,已成为大多数发行版的标准配置

  • systemd取代了initd,成为系统第一个进程(PID=1),其他进程都是它的子进程

  • systemd并不是一个命令,而是一组命令,设计到系统管理的方方面面

  • systemd主配置目录是/etc/systemd/system

systemd执行的第一个目标是default.target。但实际上图形化系统的default.target是指向graphical.target的软链接

graphical.target内容如图:

 

配置文件主要字段含义如下:

  • requires:需要依赖multi-user.target

  • conflicts:冲突字段。如果rescue.target或rescue.service正在运行,multi-user.target就不能运行,反之亦然

  • after:表示graphical.target在multi-user.target....等之后启动,如果他们有启动的话

注意:target配置文件里面没有启动命令

multi-user.target内容如下:

 

由此可见,每个target都有一个requires选项,直到最基本的target。systemd启动流程及依赖关系。

常用target对应到sysvinit的运行级别

运行级别 runlevel名称描述
basic.target启动基本系统,该target简介包含了所有的本地挂载点单元以及其他必须的系统初始化单元
default.target默认的启动target,通常指向multi-user.target或者graphical.target
5graphical.target专用于启动图形化登录界面的target,其中包含了multi-user.target单元
0halt.target专用于关闭系统但不切断电源时启动的单元
0poweroff.target停止系统运行并切断电源
0local-fs.target专用于集合本地文件系统挂载点的target
3multi-user.target专用于多用户且为命令行模式下启动的单元。所有用于要在多命令行多用户模式下启动的单元,其[Install]段都应该加上WantedBy=multi-user.target指令
1rescure.target专用于启动基本系统并打开一个救援shell时需要启动的单元
Semergency.target单用户模式,没有服务进程运行,文件系统也没挂载。这是一个最基本的运行级别,仅在主控制台上提供一个shell用于用户与系统交互。
local-fs-pre.target此目标单元自动排在所有需要自动挂载的本地文件系统挂载点(带有auto挂载选项)之前,。可用于确保在挂载本地文件系统之前启动某些单元。
6reboot.target重启系统,专用于重启系统时需要启动的单元

挂载文件系统后,再依次运行各target,最后才会运行到default.target链接到的target(默认是graphical.target和multi-user.target),至此用户就可以通过图形或者控制端来登录系统了。

系统启动完成

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《国产操作系统之银河麒麟》银河麒麟服务器操作系统引导过程 的相关文章

  • @zabbix6.0安装部署(centeros 8 stream)

    文章目录 1 系统版本2 zabbix server官方查看3 平台安装和配置Zabbix服务器4 数据库安装5 Zabbix server配置数据库6 Zabbix前端配置PHP7 zabbix相关组件服务启动8 zabbix web配置
  • 使用Python处理excel表格(openpyxl)教程

    现在有个小任务 xff0c 需要处理excel中的数据 其实就是简单的筛选 xff0c excel玩的不熟练 xff0c 而且需要处理的表有70多个 xff0c 于是想着写个脚本处理一下吧 python中的openpyxl包可以轻松实现读写
  • Linux 6.1/6.2发布新补丁:缓解AMD处理器fTPM间歇性卡顿问题

    导读早些时候 xff0c AMD承认 xff0c 在Linux系统中开启AMD锐龙处理器的fTPM xff0c 将可能导致系统出现间歇性的卡顿 死机等情况 据悉 xff0c 该Bug在Linux 6 1内核中表现得最为明显 xff0c 这是
  • 完美解决主机与虚拟机相互通信,相互ping等问题

    笔者最近在学习使用linux时 xff0c 使用到了vm virtue box的虚拟机服务来简单的安装linux xff0c 但是在使用的时候发现了一个严重的问题 xff1a 虚拟机可以ping通主机 xff0c 主机却无法ping通虚拟机
  • CSS——CSS的选择器

    概念 xff1a CSS在渲染 HTML 页面是 xff0c 为了得到 HTML 中的标签进行样式渲染 xff0c 为我们提供了大量好用的各种选择器 xff0c 以便于我们在CSS 中拿到 HTML 的标签进行样式设置 一 基本选择器 基本
  • OA工作流的浅谈

    如今 xff0c 越来越多的人意识到将工作流引入解决方案的重要性 随着信息技术的发展和商业竞争的日益激烈 xff0c 人们不再满足于独立 分散的办公自动化和计算机应用 xff0c 而需要全面 集成的解决方案 作为一种管理和集成常规事务的技术
  • GPG key retrieval failed: [Errno 14] curl#60 - “Peer‘s Certificate has expired.“

    GPG key retrieval failed Errno 14 curl 60 Peer s Certificate has expired GPG key retrieval failed Errno 14 curl 60 Peer
  • html,css常见的几种垂直居中方式

    一丶什么是垂直居中 指当前标签在父级容器中垂直方向是居中显示的 实现垂直居中的几种方式 xff1a 1 table cell 43 vertical align 属性配合使用 2 absolute 43 transform 属性配合使用 3
  • STM32用XCOM调试助手打印不出数据

    STM32用XCOM调试助手打印不出数据 被困扰了一段时间的串口终于解决了 xff0c 用STM332F103ZET6写串口 xff0c 但是不懂为什么打开串口调试助手就是打印不出数据 首先检查了代码有没有错 xff0c 因为是按照网上的代
  • 基于蚁群算法的机器人路径规划matlab——代码注释超级详细,都能看懂

    采用蚁群算法路径规划matlab 本文对基本蚁群算法代码进行了详细的注释 每一步都简单易懂 程序在matlab中可直接运行 适合刚开始学习本算法的同学入门 蚁群算法是由意大利学者Dorigo提出的一种仿生智能算法 最早运用在旅行商问题上 蚁
  • java集合类(collection)

    一 集合类 collection Java中有哪些容器 xff08 集合类 xff09 Java中的集合类主要由Collection和Map这两个接口派生而出 xff0c 其中Collection接口又派生出三个子接口 xff0c 分别是S
  • linux安装程序和软件

    文章目录 一 解析Linux应用软件安装包二 rpm命令2 1 安装有依赖关系的 rpm软件包 xff0c 2 2 升级或更新 rpm软件包2 3 实列2 4 查询未安装的 rpm软件包文件 一 解析Linux应用软件安装包 通常Linux
  • Postman入门教程【没有废话,直入实战,绝对给力!】

    基础篇 Postman功能 xff08 https www getpostman com features xff09 主要用于模拟网络请求包快速创建请求回放 管理请求快速设置网络代理安装 下载地址 xff1a https www getp
  • U3D开发的逆天级大型游戏有哪些

    1 World of Diving 潜水世界 一款潜水游戏 潜水世界 xff1a http dx60 downyouxi com qianshuishijie zip 氛围不错 xff0c 不过细看建模好像不是特别精细的样子 2 The F
  • 线程安全(实现线程方式+线程状态+通信方式,sleep,wait,守护线程)

    目录 用户自定义线程 Java中实现多线程的方法 xff1a 如何停止一个正在运行的线程 1 说说什么是线程安全 xff1f 如何实现线程安全 xff1f 2 Java中线程的状态有哪些 xff1f 线程间的通信方式有哪些 xff1f 追问
  • LINUX——远程访问控制ssh

    文章目录 一 什么是SSH xff1f 二 SSH远程管理 服务端2 1 SSH协议2 2服务监听选项2 3用户登录控制 Authentication xff1a 2 4登录验证方式 三 TCP Wrappers控制3 1 2保护机制的实现
  • 关于Visual studio 2010运行时闪退问题的解决

    在运行一个刚刚下载的visual studio 2010时候 xff0c 编程一个简单程序进行输出时候 xff0c 会出现闪退状况 明明成功编译了 xff0c 但是没有显示结果 xff0c 只是闪了一下就自己关闭了 解决方法1 在main函
  • GFF/GTF简介及格式转换

    最近做转录组的比对时 xff0c 在建立索引过程中 xff0c 遇见一个问题 xff0c 就是我从ncbi下载的序列文件和gtf文件中 xff0c 染色体命名规则竟然不一样 xff0c 但序列文件和gff文件染色体命名规则是一样的 xff0
  • Linux 系统上安装R及加载R包

    因为安装Hic Pro xff0c 需要依赖几个R包 xff0c 比如ggplot2 又依赖 gt 4 0的R xff0c 之前安的3 6 xff0c 再重新安装一遍最新的吧 xff0c 记录一下 xff0c 省去了以后再重复查资料的过程
  • BWA比对及Samtools提取目标序列

    今天想看一下自己的序列里面会不会有某细菌基因组存在 xff0c 主要使用BWA和Samtools xff1a bwa主要用于将低差异度的短序列与参考基因组进行比对 主要包含三种比对算法 xff1a backtrack SW和MEM xff0

随机推荐

  • 核糖体rRNA分类-功能应用-数据库-Silva

    一 xff0e 分类 xff1a 原核生物的rRNA分三类 xff1a 5SrRNA 16SrRNA和23SrRNA 真核生物的rRNA分四类 xff1a 5SrRNA 5 8SrRNA 18SrRNA和28SrRNA S为大分子物质在超速
  • RepeatMasker基因组重复序列检测工具安装及使用

    一 RepeatMasker简介 基因组组装完成后 xff0c 进行基因预测和注释 由于基因组中存在重复序列结构区 xff0c 特别是高等真核生物 xff0c 重复序列占了相当大的比例 xff0c 会影响基因预测的质量 xff0c 也会带来
  • Seqkit:强大的序列处理工具

    Seqkit是一款专门处理fsata q序列文件的软件 github地址 https github com shenwei356 seqkit 下载地址 xff1a https bioinf shenwei me seqkit downlo
  • Minimap2:三代比对工具

    在使用Purge dups去冗余时 xff0c 用到了Minimaps2 xff0c 把学习的东西整理一下 先声明本文软件介绍的很多内容来自 生信算法 公众号文章 xff0c 用来作为自己的学习记录 xff0c 原文作者若不同意的话就删稿
  • 白盒测试:语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖

    语句覆盖 xff1a 所有的 语句 都要覆盖一遍 判定覆盖 xff1a 包含语句覆盖 xff0c 每个判断T F各一次 条件覆盖 xff1a 包含语句覆盖 xff0c 每个条件T F各一次 判定条件覆盖 xff1a 包含判定覆盖 条件覆盖
  • GMAP一款比对工具用于ALLHiC构建等位基因表

    在ALLHiC使用过程中需要构建Allele ctg table xff0c 用于过滤多倍体基因组中因等位序列相似引起的HiC噪音的必要输入 官网提供了两种办法 xff0c 一种是blastn xff0c 需要对草图基因组进行注释 xff0
  • 数据结构——平衡二叉树(AVL树)之插入

    文章目录 前言一 定义二 基本操作1 查找 xff0c 2 插入 如何调整 如何调整代码实现插入 前言 首先我们来思考一下一个普通二叉树保存数据 xff0c 如果想查找一个数据 xff0c 由于普通二叉树保存数据是随机的 xff0c 要找到
  • C++之引用怎么用

    1 引用的概念 引用并不是新定义一个变量 xff0c 而是给一个已存在的变量取一个别名 编译器并不会为引用变量开辟空间 xff0c 它和它应用的变量共用一块空间 也就是说引用是同一块变量空间的不同名字 格式 xff1a 类型 amp 引用变
  • 完全背包问题

    目录 一 什么是完全背包 二 完全背包问题的里外层循环可以交换吗 三 题 3 1 求组合数 3 2 求排列和 3 3 求最小值 一 什么是完全背包 完全背包问题一般是指 xff1a 有N件物品和一个能背重量为W的背包 xff0c 第i件物品
  • 如何从GitHub上下载开源项目

    作为开源代码库以及版本控制系统 xff0c Github拥有超过900万开发者用户 随着越来越多的应用程序转移到了云上 xff0c Github已经成为了管理软件开发以及发现已有代码的首选方法 GitHub上有无数优秀开发者正在开发和维护的
  • 进程间通信之共享内存

    目录 一 共享内存实现进程间通信的原理 二 管理共享内存的数据结构 三 共享内存函数 四 实现进程间通信 接博客 xff1a 进程间通信之管道 一 共享内存实现进程间通信的原理 共享内存实际是操作系统在实际物理内存中开辟的一段内存 共享内存
  • ICMP协议详解

    ICMP协议 一 概念 ICMP协议是一个网络层协议 和IP协议处于同一层 xff0c 但是ICMP协议底层用的是IP协议 一个搭建好的网络 xff0c 往往需要先进行简单的测试 xff0c 来验证网络是否通畅 单单使用IP协议并不提供可靠
  • C++11——右值引用

    目录 前言 一 右值引用的概念 1 1 左值和右值的概念 1 2 引用和右值引用比较 二 右值引用的作用 2 1引用的缺陷 2 1 移动语义 2 2 右值引用的具体应用 2 3 对比引用总结 三 右值引用引用左值 move 四 完美转化 前
  • C++11——lambda表达式

    目录 前言 一 lambda表达式用法 二 lambda表达式语法 三 lambda表达式的原理 前言 在显示生活中 xff0c 我们在用手机购物时 总是可以在页面上看到下面这样的选项 我们知道底层这是通过排序来完成的 xff0c 但是当我
  • MySQL索引

    目录 前言 一 认识磁盘 二 MySQL与磁盘的交互基本单位 三 索引的理解 3 1 引出索引 3 2 MySQL管理Page 3 2 1 单个Page的情况 3 2 2 多page的情况 3 3 什么是索引 四 聚簇索引和非聚簇索引 4
  • 100道测试工程师笔试的Linux笔试题及答案

    单选题 xff1a 1 cron 后台常驻程序 daemon 用于 xff1a A 负责文件在网络中的共享 B 管理打印子系统 C 跟踪管理系统信息和错误 D 管理系统日常任务的调度 2 在大多数Linux发行版本中 xff0c 以下哪个属
  • Redis应用问题及解决

    目录 一 缓存穿透 1 1 问题描述 1 2 解决方案 二 缓存击穿 2 1 问题描述 2 2 解决方案 三 缓存雪崩 3 1 问题描述 3 2 解决方案 当数据库压力变大 xff0c 导致服务访问数据库响应变慢 xff0c 导致服务的压力
  • Shell脚本练习

    求100以内正奇数和 注意点 xff1a 和 xff1a 是进行数学运算的 支持 43 xff1a 分别为 加 减 乘 除 取模 但是注意 xff0c bash只能作整数运算 xff0c 对于浮点数是当作字符串处理的 a b xff1a 表
  • sed命令_Linux sed命令:替换、删除、更新文件中的内容

    sed 是 stream editor 的缩写 xff0c 中文称之为 流编辑器 sed 命令是一个面向行处理的工具 xff0c 它以 行 为处理单位 xff0c 针对每一行进行处理 xff0c 处理后的结果会输出到标准输出 xff08 S
  • 《国产操作系统之银河麒麟》银河麒麟服务器操作系统引导过程

    目录 系统引导过程 01 系统启动流程概述 系统启动总流程 第一阶段 xff1a BIOS初始化 编辑 第二阶段 GRUB2启动引导 编辑 第三阶段 内核引导 编辑 第四阶段 systemd进程 02 固件与BIOS BIOS启动流程 BI