Linux系统启动过程
来源:http://www.tudoupe.com时间:2022-04-07
Linux系统的初始化
- 关于BIOS
- 一,BIOS到底是什么?
- 二. 进化的邮件组件无法启动 。
- 三. BIOS要求装入断开矢量表,服务应用程序在内存中中断。
- i. 启用BIOS,以便准备断裂矢量和物理模式的服务中断。
- 一. 科技后自我评估
- 2. 初始化设备
- 3个BIOS运行的运行时间服务搜索设备以及基于启动序列的 MBR 。
- 二. 控制系统并准备采用保护模式
- 1. 分区表
- 二. 操作系统指导程序
- 三. 带有主控装载的加载程序 - 基本加载程序
- 四. 装货试点是一种与GRUB相似的精密装货软件。
- 《一卷《指南》记录情景A
- 二. 设想情况B:扩大司和逻辑司
- 四. 案件C:启动经理
- 三. 操作系统中的核装载
- 1. 启动内核模块
- 二. 在不同操作程度上运行脚本程序。
- 三、加载内核镜像
- 参考链接
就Linux系统的启动程序而言,我们可以将其分为以下几个步骤:
BIOS
- POST ⾃检
- BIOS(Boot Sequence)
引导操作系统
- 装入匹配的向导 MBR( 启动加载器) 。
- 正在装入 BootLaade 主指南设置
加载操作系统
关于BIOS
一,BIOS到底是什么?
“只读存储器”一词是1970年代初发明的。这篇文章是全球之声在线特稿的一部分。启动程序被编入ROM芯片计算机通电后,首先,你应该读读它。计算机,这个芯片的激活软件被称为基本输入/输出系统。简称为BIOS 。
这是一个软件 保存在机器内部的ROM芯片上它保留了计算机最重要的基本输入/产出程序, 自我审查软件, 以及系统自己的启动程序。它能够读取和写出来自首席财务干事的系统设置的规格。其主要目的是向计算机提供尽可能最简单和最直接的硬件设置和控制。
二. 进化的邮件组件无法启动 。
BIOS芯片的主要来源是:
- 自我诊断程序:通过阅读CMOSRAM的内容、自我检查和初始化来识别硬件配置
- CCOS 设置程序: 在定向过程中启动带有特定热键的启动, 配置它, 并将其存储在 CCOS 内存 。
- (a) 系统自负载程序:在成功进行自我检查后,磁盘上的试验程序被装入与0行道0区相对的内存,使其能够执行监督事务司系统。
- 主要I/O设备的驱动器和中断服务:由于BIOs直接与系统的硬件资源发生相互作用,它们总是针对某种类型的硬件系统,有不同类型的BIOS和不同硬件系统的硬件技术。
BIOS有许多版本,较新的版本比旧版本更实用。
BIOS(基本输入输出系统):完成计算机上自我检查后首先读到的是BIOS(基本输入输出系统)。投入/产出基本系统))BIOS节省了东道方董事会的芯片收藏和相关参数。如果 CPU 连接到接口设备, 启动设备的搜索序列、 硬盘信息、 系统时间、 内存信息、 时钟信息、 PnP 特性、 外部公交车、 各种接口设备的 I/ O 地址、 与 CPU 互动的 IRQ 断裂信息都会被记录 。所以,如果要成功开始,这将是一个很好的开端。第一步是读取 BIOS 设置 。
计算机最初装入 BIOS 信息源, 这非常关键, 必须在开始时找到 。
当计算机打开时, CPU 逻辑电路只用于执行内存程序; 它没有能力立即运行存储在磁盘或硬盘上的操作系统, 如果您想要运行这些系统, 您必须将其装入内存( 内存) 。
三. BIOS要求装入断开矢量表,服务应用程序在内存中中断。
BIOS程序存储在计算机的Maonframe上, 在一个小ROM芯片中。CS:IP现在针对这个地方。意思是BIOS准备出发了随着BIOS软件的安装,它在屏幕上显示信息,在屏幕上显示信息。内存数据表示 BIOS 软件正在评价一张图形卡内存,POST此时开始自我审查。操作系统需要启动一项任务。这是 BIOS 程序的起始地址 (0x00), 断线矢量表是在内存中生成的, 以及 BIOS 程序 (0x00), 其中使用一个 KB 内存空间 (0x00- 0x003FF) 来构建断线矢量表 。BIOS数据区域(0x00400x004FF)是从其附近的256KB内存空间建造的。在大约57KB(0x0e05b)之后,一些符合断开矢量时间表的中断服务程序被装入大约8KB。
断开矢量数据库中的每个断开矢量有四个字节,包括两个字节CS和两个字节IP。每个断开矢量对应一个不同的中断服务程序。
i. 启用BIOS,以便准备断裂矢量和物理模式的服务中断。
当计算机打开时, CPU 逻辑电路只用于执行内存程序; 它没有能力立即运行存储在磁盘或硬盘上的操作系统, 如果您想要运行这些系统, 您必须将其装入内存( 内存) 。
CPU硬件逻辑旨在迫使 CS 值即时化,这就是 BIOS 是如何开始的。0XF000
,IP 为0XFFF0
因此, " CS " : " IP " 指 " CS " 指 " CS " CS: " IP " 指 " CS "0XFFFF0
这个位置是 BIOS 程序输入地址 。
BIOS程序存储在计算机的Maonframe上, 在一个小ROM芯片中。现在CS:IP 已经指向了0XFFFF0
这个位置,意思是BIOS准备出发了
一. 科技后自我评估
BIOS活动的初始阶段是电子自我检查(POST)。
BIOS程序最初确定计算机硬件是否满足了操作的基本要求,即所谓的“Power-On-On-Test”,简称POST。
POST 的⼯作是检查硬件设备。如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中⽌。如果没有问题,随着BIOS软件的安装,它在屏幕上显示信息,在屏幕上显示信息。内存的信息等。
随着计算机主机的启动,他们将听到一滴滴声,系统将开始自我检查(自我测试的POST能力)。
这一程序最重要的方面是查明计算机硬件设备(如CPUs、RAM、主板、图形卡、CMOs等)的故障。
如果硬件故障,有两种可能性:
如果发生重大故障(致命故障),则关闭;在现阶段,由于不同的启动活动尚未完成,不得发出任何指示或警告。
如果没有问题,POST将完成转接任务,并将尾部工作交给BIOS处理;在非严重故障的情况下,提供提示或发出警报信号,等待用户处理;如果没有问题,POST将完成转接任务,并将尾部工作交给BIOS处理。
2. 初始化设备
BIOS的第二个行动是罗列和初始化本地设备。
操作系统需要启动一项任务。那就是BIOS 在内存中建⽴中断向量表和中断服务程序。
BIOS软件的初始内存位置0x00000
使用 RAM 1KB 记录和档案管理(0x00000~0x003FF
创建一个断开矢量表,以构建 BIOS 数据区域, 直接旁边有 256KB 内存空间( 256KB) 。0x00400~0x004FF
)和大约57KB之后的位置(0x0e05b
装入一套与折叠矢量时间表相对应的中断服务程序(约8KB)。
折叠矢量表中有256个断裂矢量,每个断裂矢量包含4个字节、2个字节CS和2个字节IP。
每个断开矢量对应一个不同的中断服务程序。
3个BIOS运行的运行时间服务搜索设备以及基于启动序列的 MBR 。
由于 BIOS 函数有许多应用, 它分为两部分: POST 和 Runtime 服务。 一旦 POST 完成, 它就会从内存中撤回, 但是 BIOS 运行时间服务会保留在目标操作系统上 。
为了启动操作系统,BIOS 运行时间服务将寻找正在激活或有能力激活的设备 。CFO 设置( 我们通常在 BIOS 中呼叫的启动顺序) 控制搜索顺序 。⼀个软驱,⼀台光驱,⼀个硬盘上的分区,连接到网络的USB闪存驱动器也可用作启动设备。
当然,Linux经常从硬盘上跳出来。硬盘的 MBR (主要启动记录) 包含一个基本的启动装货器, 用作生成探测系统的工具 。这是一个面积为512字节的部门。这是在磁盘的第一个区段(0磁带的一个区段)。当MBR被读入记忆时BIOS会把控制权交给MBR
二. 控制系统并准备采用保护模式
MBR的主要装货器是512字反射镜,其中不仅包括装货程序代码,而且包括一个简短的分隔表。
前446个字节是主要的启动装入器, 包含可执行代码和错误信息文本。 分区表格如下, 包含四个分区的每个分区的记录( 每个分区16个字节) 。0xAA55
(二进制等值为:1010101001010101
作为两个字节的最后一个字节0xAA55
这也是一个合法的核磁共振核查确认
⾸先对CPU 发送int 0x19
中断,导致 CPU 执行int 0x19
相关断开服务程序的中断导致软盘第一区段的程序被装入给定地点的内存。
主要布特装载器的工作是找到并装载部分根负荷(内核装载器)。
它通过分析分区表和查找活动分区来完成这项工作。 在确定活动分区后, 它会继续扫描分区表中的剩余分区, 以确保这些分区不活动 。
确认后, 活动分区的启动日志( 子启动装载器) 从设备读取到 RAM 并运行 。
在Linux, " 靴子装载器 " 通常被称为 " 格鲁布 " 。
如果我们完全部署启动装载器,我们可以看到以下操作系统的启动过程:
当然,不同的个人有不同的观点,不同的人对某些信息有不同的定义:
- 1. 以上图中红色方框中描述的章节,被一并称为GRUB方向的第一阶段和GRUB第1号,即第五阶段的定向。
- 2. 较晚的 " GRUB " 称为 " GRUB第二阶段方向 " 。
然而,将一和二合并称为GRUB定向阶段。
“初级铅记录”只有512字节长,没有包含多少信息。其主要目的是通知计算机在哪里找到硬盘。
查找操作系统。主要指南记录分为三节:
- 字节1-446:调用操作系统的机器代码。
- 分区表,按447-510字节排列。
- 511-512字节:总铅记录签字(0x55和0xAA)。
“区分表”义务的第二个组成部分是将硬盘分解到不同部门。
1. 分区表
使用硬盘分块有若干好处。由于每个部门都可能安装多个操作系统,“主要铅记录”必须了解向哪个区域转移控制。分区表只有64个字节长。⾥⾯⼜分成四项,每项16 个字节。所以,硬盘可以分割成多达四个一级分区。⼜叫做“主分区”。
每个主要分区由16个字节组成,分为六部分:
- 如果第一个字节为 0x80, 则主分区为活动状态, 控制权交给这个部门。 只有四个主要分部门中的一个在活动状态中 。
- 2-4字节:主要部门初始部门的实际位置(列、磁头、区号等)。
- 第五个字节指定了主分区的类型 。
- 字节6-8:主要部门最终部门的实际位置。
- 9-12字节:主分区第一个分区的逻辑地址。
- 初级分区部门总数:12-16字节。
主要部门的规模由最后四个字节(“主要部门部门总数”)决定,换句话说,一个主要分部门的部门总数不超过32x2。
由于每个部门有512个字节,单管不能超过2个TB。 由于这个部门的逻辑地址也是32个,因此单管硬盘的最大可用容量是2个TB。
使用更大的硬盘只有两种选择:
- 一种办法是增加每个部门字节的数量。
- ⼆是增加扇区总数。
铅装载器位于第一个可打开设备的第一个区段的主要导航区块内。
铅装载机(Boot装载机):读取内核文件并执行这些文件的软件。
启动操作系统运行 与内核文件。
二. 操作系统指导程序
当硬盘启动时,第一个迁移到第一个驱动器的部门,即主要铅记录(MBR)是BIOS。
- 装载记录
装货第二提示装货技术是基本上引领装货过程的唯一物品。 - 装载Grub
第二套铅装货软件实际上是一种更复杂的能力,使客户能够装载某种操作系统。 - 装载系统
GRUB,像Linux内核一样, 赋予计算机控制操作系统。
与微软操作系统不同的是,总指导记录只是显示操作系统所在地的初始部门,而微软操作系统是通过称为链装货的有指导程序启动的。
三. 带有主控装载的加载程序 - 基本加载程序
0号硬盘驱动器的第一个部门通常称为MBR,即主导件记录,它是主要指南记录,为512字节,并非很少,但提供启动前信息和分区表信息。
按照BIOS规定的系统配置启动程序。如果检测通过,对于第一类装置,我们开始按照手册(Boot Security)规定的顺序协助启动进程。我们的启动设备主要包括硬盘、USB、SD等等。通常使用硬盘驱动器。因此,硬盘是第一个读取的设备。第一个要读的是硬盘的 MBR( 磁盘推进记录) 。该系统然后可以开始核心确认工作,使用在开办地区安装的试点装载器(Boot装入器)。
作。
控制随后转至主要牵头代码,主要牵头代码的任务包括:
- 搜索当前( 可识别) 分区的分区表格 。 @ info: whatsthis
- 发现激活分割区所需的第一个扇区;
- 将活动分区的方向部分装入 7C00 内存;
- (a) 向牵头部门守则授权;
四. 装货试点是一种与GRUB相似的精密装货软件。
系统接收来自内存(通常为菜单 ) 的原始配置信息 。 - 我并不准备这样做. lst ), 并使用这些信息激活各种操作系统 。
当时,计算机的控制权交给了部分硬盘,而硬盘分为三种不同的情况。
《一卷《指南》记录情景A
上⼀节提到,四个主分区⾥⾯,只有⼀个是激活的。计算机将读取活动分区的第一个区段 。它被称为 卷靴记录。缩写为VBR )。“滚动制导记录”的主要功能是:告诉计算机,操作系统在这一行业中的作用。然后,操作系统将安装在PC上。
二. 设想情况B:扩大司和逻辑司
随着硬盘越来越⼤,四个主要司的不足。需要更多的分区。但是,分区表只有四项,因此,有一个限制,即只能指定一个区域为“扩展分割区”。所谓“扩展分区”,它表示土地分为几个部门。这是一个小区的类型。它被称为逻辑分割区
计算机首先读取扩展分区的第一个部分, 称为“ 扩展靴记录 ” (EBR) 。 它也包括一个 64 字节分区表, 但只有两个( 即两个逻辑分区 ) 。
计算机然后读取第二个逻辑分区的第一个部分,然后从分区表内找到第三个逻辑分区的位置,等等,直到一个逻辑分区的分区表只包括它本身(即,因此,分区的增长可能包含大量逻辑分区)。
然而,操作系统似乎很少以这种方式启动,如果操作系统被置于扩大的分区内,通常采用以下形式的激活。
四. 案件C:启动经理
在这种情况下,在阅读了446字节的机器代码之后,计算机不再将控制转移到一个部门,而是执行预先安装的“启动管理器”(启动处理器),允许用户选择启动哪个操作系统。
Grub是Linux系统中最常用的启动管理器。
启动装入器是一个短程序, 运行系统初始活动前运行 。通过这段⼩程序,我们可以初始化硬件,绘制一个记忆空间地图, 并绘制一个我们想要表现的地图。这将为该系统的硬件和软件使用环境做好准备。准备好一切准备 内核未来在操作系统中的部署
有几种类型的靴子装载器,最常见的是格鲁布、利洛和斯普夫迪斯。
遗产和UEFI模型的起点,从生物/Uefi到操作系统服务。
Legacy时代
如果硬件自我检查被用作生物启动的阶段前或准备前,典型的遗留服务器启动实际上包括四个部分:
指南/灌木分为三个阶段:第1阶段、第1.5阶段和第2阶段。
Stage1:
BIOS知道磁盘的路径,但是它不知道磁盘上的分区和文件系统,大部分是操作系统中的内核文件,因此,Bios闭上了眼睛,把磁盘第一区段的头部446字节拉到实际模式执行环境。
这446字节是指南/灌木组成部分的第一阶段, 引导过程的发射。Stage1.5:
从第1阶段的446个字节开始,所有指导程序都在底部进行,在限制执行区内,一个模块一个模块接一个模块被改变、转移,并在较小的程度上,在以下更困难的阶段为模块的实施设置了条件。
1. 阶段1 5的影响只是对磁盘上的/启动文件系统提供一种不存在的视图,以便可以读出操作系统内的软质菜单文件和内核文件。Stage2:
定向过程最终导致在文明开始之际,将最终制成食物发射菜单。
UEFI时代
三. 操作系统中的核装载
在内核图像装入内存并完成二级装载程序后,内核阶段开始。
BIOS必须用来提供装载程序。int 0x13
将进行中断的矢量导向服务中断过程。软件将启动磁盘第二部门,分四个部门,即:setup.s
相关软件已装入内存。SETUPSEG (0x90200 )
处。
该进程的第一和第二阶段与该进程的第一和第二阶段相连。它在X86个人电脑中找到。我们称之为 Linux 装载器(LILO) 或 GRand 统一靴装货器(GRUB)。GRUB已经调和了一些LOLOs。
存在的缺陷,让我们来看看GRUB(关于GRUB的更多信息,请到这里)。LLILO和讨论手头问题所需的资源。找到解决这一问题的办法,是行不通的,因为格鲁布集团无法解决这个问题。其中一个好处是,它包括了解Linux文件系统。与雇用裸体部门的LILO不同GRUB可读取 ext2 或 ext3 文件系统, 以装入 Linux 内核 。这是通过把两阶段装货器变成三阶段装货器来实现的。运行第一阶段(MBR) 5 启动装载器,以掌握 Linux 内核镜中不寻常的文件系统格式。例如,Reiserfs_ stage1-5 (用于从 reiserf 日志文件系统装入) 或e2fs + stage1-5 (用于从 wxt2 或 ext3 文件系统装载) 。当第 1. 5 级装货装入并执行时,第2阶段的根负荷只能装入 。当第2阶段启动时,GRUB将提供一份可根据请求选择的核心清单。 (内)/etc/grub.conf
在确定中间课程的同时,还存在一些软咒。/etc/grub/menu.lst
和/etc/grub.conf
我不知道你在说什么。 您可以选择一个内核, 并调整与此相关的内核设置。 同时, 您可以使用命令行 shell 来对启动过程进行更直接的控制 。
在用户选择要装入的内核后,取决于 /boot/grub.conf 剖析图参数的GRUB子目录装载器,从存储它的 / Boot/ 分区读取 Linux 内核图像 。内核图像随后被装入内存,Linux内核获得控制。
Linux控制了内核 开始做自己的事情
- 检测硬件
- 解开自己拉链,安装所需的司机。
- 设置与文件系统、LVM或RAID有关的虚拟设备。
- 装入 root 文件系统并挂在 root 目录上 。
- 之后,Linux 将内置软件加载到处理空间, 由内置来做它的工作。
grub 指定内核图像的路径 。系统读取内存映像,并进⾏解压缩操作。此时,屏幕通常显示“ 不压缩 Linux ” 的建议 。当减压核心完成后,屏幕上写着"启动内核"
内核被系统解压并装入内存。start_kernel()
功能, 启动启动启动功能序列和启动设备, 以完成 Linux 核心环境的建立 。 因此, Linux 内核已经形成, 以 Linux 为基础的软件应该可以运行 。
开始第五步, 用户层开始, 以根据 Initab 文件配置操作级别 。
内核被加载后,/sbin/init 是第一个运行的程序 。此文件将由 / etc/ initab 阅读 。本文件是启动程序的基础。实际上, / etc/ initab 文件最重要的功能是配置 Linux 的操作水平 。其设定形式是“:
id:5:initdefault:
因此,Linux必须在5级运作,Linux的作业如下:
Linux操作系统有七个级别(管理级别):
操作级别 0 : 系统已下线; 系统默认操作级别无法设定为零; 否则, 系统无法正常启动 。
运行 1: 禁用远程存取、 单一用户工作状态、 系统维护的根权限
执行第二级:多用户状况(无NSFS)
运行第3级:完成多用户能力(通过NFS),着陆后指挥线模式
4级业务:系统没有使用,而是保留。
着陆后,运行第6层 X11 控制台并输入图形图形图形图形界面模式。
6级业务:系统一般关闭并重新启动,操作水平不能改为6级,否则无法正确启动。
1. 启动内核模块
具体是依据/etc/modules.conf
⽂件或/etc/modules.d
从目录文件装入内核模块。
二. 在不同操作程度上运行脚本程序。
系统将通过 rc6.d 执行 rc0.d 通过 rc6.d 执行 rc0.d 相关脚本程序,其中初始化进程已经完成,相应的服务也开始,视操作程度而定。 d 相关脚本程序,其中初始化进程已经完成,相应的服务开始,视操作程度而定。
三、加载内核镜像
此时此刻,大多数 vmlinuz 文件和 Initrd 文件已装入 。
内核图像不是工作内核。这是被压缩的内核图像通常是一个图像(压缩图像)小于512KB)或介质(大压缩图片,大于512KB)。(大于512KB)它被Zlib先发制人。这是一个程序 运行在前面的这个内核。它可以做数量有限的硬件设置,然后解压内核图像的内核然后保存到高端内存设备上。如果存在初始的 RAM 磁盘图像,这是世界上唯一会发生的事情。并标明以后使⽤。该软件然后引用内核。然后开始内核制导程序
当引用 bizimage (i386 图像) 时./arch/i386/boot/head.S
开始开始汇编程序 。
⾏。
这个例子将开展基金会的部分艰苦工作,并将予以传达。./arch/i386/boot/compressed/head.S
中 的startup_32
,提供一个简单的环境(例如储存),然后调用一个名为Block Start的符号(BSS)。decompress_kernel
的 C 函数(在./arch/i386/boot/compressed/misc.c
以压抑内核。当内核压入记忆中时,你可以称之为内核。这是另一个。startup_32
尽管如此,这一职能./arch/i386/kernel/head.S
中。
参考链接
Linux操作系统的指导和启动--内核启动和启动(一)
启动期间Linux操作系统方向方向 -- -- 方向(2)
详细描述 Linux 系统启动程序 - 当引擎打开时发生的情况 - Linux 内部分析(零)
一纸纸 内核靴子了。
Linux 编译和连接系统的基石- ELF文件: 拔出外衣并检查字节代码大小
相关新闻
- 2023-05-07 u盘启动盘制作向导(如何制作u盘启
- 2023-05-07 小白u盘启动盘软件下载(u盘启动盘
- 2023-05-07 u盘启动盘里的iso文件需要解压(is
- 2023-05-07 k555lu盘启动盘(u盘启动盘怎么进入
- 2023-05-07 u盘启动盘cmos(U盘启动盘装系统)
- 2023-05-07 电脑pe制作u盘启动盘(微pe制作u盘启
- 2023-05-07 u盘启动盘改ntfs格式化吗(u盘格式化
- 2023-05-07 深度装机大师恢复u盘启动盘(深度装
- 2023-05-07 win7系统制作到u盘启动盘(如何制作
- 2023-05-06 u盘启动盘制作工具efi(U盘启动盘制
|
|
|
|
|
|
|
|
|
|