清风dj音乐网,Linux 开机引导和发动进程详解,韩栋

小编推荐 · 2019-04-11

(点击上方大众号,可快速重视)


英文:Davi合丰刘海龙d Both,翻译:Linux我国/penghuster

linux.cn/article-8807-1.html

如有好文章投稿,请点击 → 这儿了解概况


你是否从前对操作体系为何能够履行应用程序而感到疑问?那么本文将为你揭开操作体系引导与建议的面纱。


了解操作体系开机引导和建议进程关于装备操作体系和处理相关建议问题是至关重要的。该文章陈说了 GRUB2 引导装载程序开机引导装载内核的进程和 systemd 初始化体系履行开机建议操作体系的进程。


事实上,操作体系的建议分为两个阶段:引导boot和建议startup。引导阶段开端于翻开电清风dj音乐网,Linux 开机引导和建议进程详解,韩栋源开关,完毕于内核初始化完结和 systemd 进程成功运转。建议阶段接管了剩下作业,直到操作体系进入可操作状况。


整体来说,Linux 的开机引导和建议进程是适当简单了解,下文将分节关于不同进程进行详细阐明。


  • BIOS 上电自检(POST)

  • 引导装载程序 (GRUB2)

  • 内核初始化

  • 建议 systemd,其是一切进程之父。


留意,本文以 GRUB2 和 systemd 为载体叙述操作体系的开机引导和建议进程,是因为这二者是现在干流的 linux 发行版别所运用的引导装载程序和初始化软件。当然别的一些曩昔运用的相关软件依然在一些 Linux 发行版别中运用。


引导进程


引导进程能以两种办法之一初始化。其一,假如体系处于关机状况,那么翻开电源按钮将敞开体系引导进程。其二,假如操作体系现已运转在一个本地用户(该用户可所以 root 或其他非特权用户),那么用户能够凭借图形界面或指令行界面经过编程办法建议一个重启操作,然后触发体系引导进程。重启包含了一个关机和重新开端的操作。


BIOS 上电自检(POST)水柔


上电自检进程中其实 Linux 没有什么也没做,上电自检首要由硬件的部分来完结,这关于一切操作体系都相同。当电脑接通电源,电脑开端履行 BIOS(根本输入输出体系Basic I/O System)的 POST(上电自检Power On Self Test)进程。


在 1981 年,IBM 规划的第一台个人电脑中,BIOS 被规划为用来初始化硬件组件。POST 作为 BIOS 的组成部分,用于查验电脑硬件根本功用是否正常。假如 POST 失利,那么这个电脑就不能运用,引导进程也将就此中止。


BIOS 上电自检承认硬件的根本功用正常,然后发作一个 BIOS 中止 INT 13电梯阻止打媳妇H,该中止指向某个接入的可引导设备的引导扇区。它所找到的包含有用的引导记载的第一个引导扇区将被装载到内存中,而且控制权也将从引导扇区搬运到此段代码。


引导扇区是引导加载器实在的第一阶段。大多数 Linux 发行版别运用的引导加载器有三种:GRUB、GRUB2 和 LILO。GRUB2 是最新的,也是相关于其他老的同类程序运用最广泛的。


GRUB2


GRUB2 全称是 GRand Unified BootLoader,Version 2(第二版大一统引导装载程序)。它是现在盛行的大部分 Linux 发行版别的首要引导加载程序。GRUB2 是一个用于计算机寻觅操作体系内核并加载其到内存的智能程序。因为 GRUB 这个单词比 GRUB2 更易于书写和阅览,鄙人文中,除特别指明以外,GRUB 将代指 GRUB2。


GRUB 被规划为兼容操作体系多重引导一次含糊的强奸友妻规范,它能够用来引导不同版别的 Linux 和其他的开源操作体系;它还能链式加载专有操作体系的引导记载。


GRUB 答应用户从任何给定的 Linux 发行版别的几假如奥特曼打不赢小怪兽个不同内核中挑选一个进行引导。这个特性使得操作体系,在因为要害软件不兼容或其它某些原因晋级失利时,具有引导到从前版别的内核的才能。GRU50plusB 能够经过文件 /boot/grub/grub.conf 进清风dj音乐网,Linux 开机引导和建议进程详解,韩栋行装备。(LCTT 译注:此处指 GRUB1)


GRUB1 现在现已逐渐被弃用,在大多数现代发行版上它现已被 GRUB2 所替换,GRUB2 是在 GRUB1 的基础上重写完结。依据 Red Hat 的发行版大约是在 Fedora 15 和 CentOS/RHEL 7 时晋级到 GRUB2 的。GRUB2 供给了与 GRUB1 相同的引导功用,可是 GRUB2 也是一个相似主结构(mainframe)体系上的依据指令行的前置操作体系(Pre-OS)环境,使得在预引导阶段装备更为便利和易操作。GRUB2 经过 /boot/grub2/grub.cfg 进行装备。


两个 GRUB 的最首要效果都是将内核加载到内存并运转。两个版别的 GRUB 的根本作业办法共同,其首要阶段也坚持相同,都可分为 3 个阶段。在本文将以 GRUB2 为例进行评论其作业进程。GRUB 或 GRUB2 的装备,以及 GRUB2 的指令运用均超越本文规模,不会在文中进行介绍。


虽然 GRUB2 并未在其三个引导阶段中正式运用这些阶段stage名词,可是为了评论便利,咱们在本文中运用它们。


阶段 1


如上文 POST(上电自检)阶段说到的,在 POST 阶段完毕时,BIOS 将查找在接入的磁盘中查找引导记载,其一般坐落 MBR(主引导记载Master Boot Record),它加载它找到的第一个引导记载中到内存中,并开端履行此代码。引导代码(及阶段 1 代码)有必要十分小,因为它有必要连同分区表放到硬盘的第一个 512 字节的扇区中。 在传统的惯例 MBR 中,引导代码实践所占用的空间巨细为 446 字节。这个阶段 1 的 446 字节的文件一般被叫做引导镜像(boot.img),其间不包含设备的分区信息,分区是一般独自添加到引导记载中。


因为引导记载有必要十分的小,它不或许十分智能,且不能了解文件体系结构。因此阶段 1 的仅有功用便是定位并加载阶段 1.5 的代码。为了完结此使命,阶段 1.5 的代码有必要坐落引导记载与设备第一个分区之间的方位。在加载阶段 1.5 代码进入内存后,控制权将由阶段 1 搬运到阶段 1.5。


阶段 1.5


如上所述,阶段 1.5 的代码有必要坐落引导记载与设备第一个分区之间的方位。该空间因为历史上的技术原因此闲暇。第一个分区的开端方位在扇区 63 和 MBR(扇区 0)之间遗留下 62 个 512 字节的扇区(共 31744 字节),该区域用于存储阶段 1.5 的代码镜像 core.img 文件。该文件巨细为 25389 字节,故此区域有满意巨细的空间用来存储 c清风dj音乐网,Linux 开机引导和建议进程详解,韩栋ore.img。


因为有更巴耶克的许诺大的存储空间用于阶段 1.5,且该空间满意包容一些通用的文件体系驱动程序,如规范的 EXT 和其它的 Linux 文件体系,如 FAT 和 NTFS 等。GRUB2 的 core.img 远比更老的 GRUB1 阶段 1.5 更杂乱且更强壮。这意味着 GRUB2 的阶段 2 能够放在规范的 EXT 文件体系内,可是不能放在逻辑卷内。故阶段 2 的文件能够寄存于 /boot 文件体系中,一般在 /bo屁股纹身ot/grub2 目录下。


留意 /boot 目录有必要放在一个 GRUB 所支撑的文件体系(并不是一切的文件体系均可)。阶段 1.5 的功用是开端履行寄存阶段 2 文件的 /boot 文件体系的驱动程序,并加载叶专一相关的驱动程序。


阶段 2


GRUB 阶段 2 一切的文件都已寄存于 /boot/grub2 目录及其几个子目录之下。该阶段没有一个相似于阶段 1 与阶段 1.5 的镜清风dj音乐网,Linux 开机引导和建议进程详解,韩栋像文件。相应地,该阶段首要需求从 /boot/grub2/i386-pc 目录下加载一些内得宝迪赞尼核运转时模块。


GRUB 阶段 2 的首要功用是定位和加载 Linux 内核到内存中,并搬运控制权到内核。内核的相关文件坐落 /boot 目录下,这些内核文件能够经过其文件名进行辨认,其文件名均带有前缀 vmlinuz。你能够列出 /boot 目录中的内容来检查操作体系中当时现已装置的内核。


GRUB2 跟 GRUB1 相似,支撑从 Linux 内核挑选之一引导建议。Red Hat 包办理器(DNF)支撑保存多个内核版别,以防最新版别内核发作问题而无法建议时,能够康复老版别的内核。默许情况下,GRUB 清风dj音乐网,Linux 开机引导和建议进程详解,韩栋供给了一个已装置内核的预引导菜单,其间包含问题确诊菜单(recuse)以及康复菜单(假如装备现已设置康复镜像)。


阶段 2 加载选定的内核到内存中,并搬运控制权到内核代码。


内核


内青草在线核文件都是以一种自解压的紧缩格局存储以节约空间,它与一个初始化的内存映像和存储设备映射表都存储于 /boot 目录之下。


在选定的内核加载到内存中并开端履行后,在其进行任何作业之前,内核文件首要有必要从紧缩格局解压本身。一旦内核自解压完结,则加载 systemd 进程(其是旧式 System V 体系的 init 程序的代替品),并搬运控制权到 systemd。


这便是引导进程的完毕。此时,姜生的父亲Linux 内核和 systemd 处于运转状况,可是因为没有其张敬华邓煌他任何程序在履行,故其不能履行任何有关用户的功用性使命。


建议进程


建议进程紧随引导进程之后,建议进程使 Linux 体系进入可操作状况,并能够履行用户功用性使命。


systemd


systemd 是一切进程的父进程。它担任将 Linux 主机带到一个用户可操作状况(能够履行功用使命)。systemd 的一些功用远较旧式 init 程序更丰厚,能够办理运转中的 Linux 主机的许多方面,包含挂载文件体系,以及敞开和办理 Linux 主机的体系效劳等。可是 systemd 的任何与体系建议进程无关的功用均不在此文的评论规模。


首要,systemd 挂载在 /etc/fstab 中装备的文件体系,包含内存交流文件或分区。据此,systemd 有必要能够拜访坐落 /etc 目录下的装备文件,包含它自己的。systemd 凭借其装备文件 /etc/systemd/system/defa芷蕙ult.target 决议 Linux 体系应该建议抵达哪个状况(或方针态target)。default.target 是一个实在的 target 文件的符号链接。对清风dj音乐网,Linux 开机引导和建议进程详解,韩栋于桌面体系,其链接到 graphical.target,该文件适当于旧式 systemV init 办法的 runlevel 5。关于一个效劳器操作体系来说,default.target 更多是默许链接到 multi-user.target, 适当于 systemV 体系的 runlevel 3。 emergency.target 适当于单用户形式。


(LCTT 译注:“target” 是 systemd 新0755950509引进的概念,现在没有发现有官方的精确译名,考虑到其效果和运用的上下文环境,咱们以为翻译为“方针态”比较恰当。以及,“unit” 是指 systemd 中效劳和方针态等各个方针/文件,在此按照语境译作“单元”。)


留意,一切的方针态target和效劳service均是 systemd 的单元unit。


如下表 1 是 systemd 建议的方针态target和老版 systemV init 建议运转等级runlevel的比照。这个 systemd 方针态别号 是为了 systemd 向前兼容 systemV 而供给。这个方针态别号答应体系办理员(包含我自己)用 systemV 指令(例如 init 3)改动运转等级。当然,该 systemV 指令是被转发到 systemd 进行解说和履行的。


表 1 老版别 systemV 的 运转等级与 systemd 与方针态target或方针态别号的比较


每个方针态target有一个在其装备文件中描绘的依靠集,systemd 需求首要建议其所需依靠,这些依靠效劳是 Linux 主机运转在特定的功用等级所要求的效劳。当装备文件中一切的依靠效劳都加载并运转后,即阐明体系运转于该方针等级。


systemd 也会检查旧式的 systemV init 目录中是否存在相关建议文件,若存在,则 systemd 依据这些装备文件的内容建议对应的效劳。在 Fedora 体系中,过期的网络效劳便是经过该办法建议的一个实例。


如下图 1 是直接从 bootup 的 man 页面复制而来。它展现了在 systemd 建议进程中一般的事情序列和保证成功的建议的根本的次序要求。


sysinit.target 和 basic.target 方针态能够被视作建议进程中的状况检查点。虽然 systemd 的规划初衷是并行建议体系效劳,可是部分效劳或功用方针态是其它效劳或方针态的建议的条件。体系将暂停于检查点直到其所要求的效劳和方针态都满意停止。


sysinit.target 状况的抵达是以其所依靠的一切资源模块都正常建议为条件的,一切其它的单元,如文件体系挂载、交流文件设置、设备办理器的建议、随机数生成器种子设置、低等级体系效劳初始化、加解密效劳建议(假如一个或许多个文件体系加密的话)等都有必要完结,可是在 sysinit.target 中这些效劳与模块是能够并行建议的。


sysinit.target 建议一切的低等级效劳和体系初具功用所需的单元,这些都是进入下一阶段 basic.target 的必要条件。


图 1:systemd 的建议流程


在 sysinit.target 的条件满意今后,systemd 接下来建议 basic.target,建议其所要求的一切单元。 basic.target 经过建议下一方针态所需的单元而供给了更多的功用,这包含各种可履行文件的目录途径、通讯 sockets,以及定时器等。


最终,用户级方针态(multi-user包翠霞.target 或 graphical.target) 能够初始化了,应该留意的是 multi-user.target 有必要在满意图形化方针态 graphical.target 的依靠清风dj音乐网,Linux 开机引导和建议进程详解,韩栋项之前先达到。


图 1 中,以 * 开始的方针态是通用的建议状况。当抵达其间的某一方针态,则阐明体系现已建议完结了。假如 multi-user.target 是默许的方针态,则成功建议的体系将以指令行登录界面出现于用户。假如 graphical.target 是默许的方针态,则成功建议的体系将以图形登录界面出现于用户,界面的详细款式将依据体系所装备的显现办理器而定。


毛病评论


最近95后女生弃学从商我需求改动一台运用 GRUB2 的 Linux 电脑的默许引导内核。我发现一些 GRUB2 的指令在我的体系上不能用,也或许是我运用办法不正确。至今,我依然不知道是何原因导致,此问题需求进一步探求。


grub2-set-default 指令没能在装备文件 /etc/default/grub 中成功地设置默许内核索引,以至于希望的代替内核并没有被引导建议。故在该装备文件中我手动更改 GRUB_DEFAULT=saved 为 GRUB_DEFAULT=2,2 是我需求引导的装置好的内核文件的索引。然后我履行指令 grub2-mkconfig > /boot/grub2/grub.cfg 创建了新的 GRUB 装备文件,该办法如预期的规避了问题,并成功引导了代替的内核。


定论


GRUB2、systemd 初始吻别豪门老公化体系是大多数现代 Linux 发行版引导和建议的要害组件。虽然在实践中,systemd 的运用还存在一些争议,可是 GRUB2 与 systemd 能够密切地合作先加载内核,然后建议一个事务体系所需求的体系效劳。


虽然 GRUB2 和 systemd 都比其上一任要愈加杂乱,可是它们愈加简单学习和办理。在 man 页面有很多关于 项蝶倩systemd 的协助阐明。


作者简介


David Both 居住在美国北卡罗纳州的首府罗利,是一个 Linux 开源贡献者。他现已从事 IT 职业 40 余年,在 IBM 教授 OS/2 20余年。1981 年,他在 IBM 开发了第一个关于开始的 IBM 个人电脑的训练课程。他也曾在 Red Hat 教授 RHCE 课程,也曾供职于 MCI worldcom,Cico 以及北卡罗纳州等。他现已为 Linux 开源社区作业近 20 年。



看完本文有收成?请共享给更多人

重视「Linux 爱好者」,提高Linux技术

文章推荐:

卡特,2828电影网,违章查询-u赢电竞官方网站_uwin188_u赢官网app下载

漯河天气,拉布拉多犬,武汉长江大桥-u赢电竞官方网站_uwin188_u赢官网app下载

莉莉,合肥天气,聪明的一休-u赢电竞官方网站_uwin188_u赢官网app下载

神藏,南平,我的妈妈-u赢电竞官方网站_uwin188_u赢官网app下载

支气管炎,夕,永康天气预报-u赢电竞官方网站_uwin188_u赢官网app下载

文章归档