Linux系统启动详解是什么

Linux系统启动详解是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

成都网站设计、做网站的开发,更需要了解用户,从用户角度来建设网站,获得较好的用户体验。创新互联建站多年互联网经验,见的多,沟通容易、能帮助客户提出的运营建议。作为成都一家网络公司,打造的就是网站建设产品直销的概念。选择创新互联建站,不只是建站,我们把建站作为产品,不断的更新、完善,让每位来访用户感受到浩方产品的价值服务。

一 、 BIOS上电自检

BIOS(Basic Input Output System,基本输入输出系统)是指一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。

  • 当计算机接通电源(启动)时,便加载第一个软件——BIOS。对于所有的操作系统一样,BIOS是被设计来初始化硬件而产生。POST(Power On self Test,上电自检)作为BIOS的主要组成部分,用于检验电脑硬件的基本功能是否正常。如果POST失败,那么该计算机将不能使用,引导过程也会就此中断。

  • 当BIOS上电自检成功,确认硬件的基本功能正常后,会产生一个BIOS中断 INT 13H,从而转向第一块硬盘的第一个扇区,即MBR(Master Boot Record,主引导记录)。

二 、 引导装载程序

  • stage 1:当POST结束后,BIOS会将其跳转的主引导记录MBR加载至内存中,并开始执行该代码。控制权由BIOS转移至主引导记录代码。

  • 主引导记录代码必须非常小,因为它必须连同分区表放到硬盘的第一个 512字节的扇区中。在传统的常规MBR中,主引导程序实际所占用的空间大小为446字节,通常被叫做引导镜像(boot.img),其中不包含设备的分区信息(4×16字节),分区是一般单独添加到引导记录中。

  • 由于引导记录必须非常的小,它不可能非常智能,且不能理解文件系统结构。因此stage 1唯一功能就是定位并加载stage 2的代码(分页项中的起始及结束磁盘信息,寻找相应的存储区域)。为了完成此任务,stage 1的代码必须位于引导记录与设备第一个分区之间的位置。在加载stage 2代码进入内存后,控制权将由stage 1转移到stage 2。

-------MBR结构组成图-------

地址名称功能
0000-0088主引导程序主引导程序
0089-01BD出错信息数据区数据区
01BE-01CD分区项1(16字节)分区表
01CE-01DD分区项2(16字节)
01BE-01CD分区项3(16字节)
01DE-01ED分区项4(16字节)
01FE55结束标志
01FFAA

---------分页项(16字节)内容及含义---------

存贮字节位内容含义
第1字节引导标志:

80H—活动分区

00H—非活动分区
第2、3、4字节本分区的起始磁头号、扇区号、柱面号:

磁头号—第2字节

扇区号—第3字节的低6位

柱面号—第3字节高2位+第4字节8位
第5字节分区类型符:

00H—表示该分区未用(即没有指定)

06H—FAT16基本分区

0BH—FAT32基本分区

05H—扩展分区

07H—NTFS分区

0FH—(LBA模式)扩展分区

83H—Linux分区等
第6、7、8字节本分区的结束磁头号、扇区号、柱面号:

磁头号—第6字节

扇区号—第7字节的低6位

柱面号—第7字节的高2位+第8字节
第9、10、11、12字节本分区之前已用扇区数
第13、14、15、16字节本分区的总扇区数

  • stage 2:由于第一个扇区遗留下 62 个 512 字节的扇区(共 31744 字节),该区域用于存储stage 2的代码镜像 core.img 文件。该文件大小为 25389 字节,故此区域有足够大小的空间用来存储 core.img 文件。

  • 因为有更大的存储空间用于stage 2,且该空间足够容纳一些通用的文件系统驱动程序,如标准的 EXT 和其它的 Linux 文件系统,如 FAT 和 NTFS 等。GRUB2 的 core.img 远比更老的 GRUB1 在stage 2更复杂且更强大。这意味着 GRUB2 的stage 3能够放在标准的 EXT 文件系统内,但是不能放在逻辑卷内。故stage 3的文件可以存放于 /boot 文件系统中,一般在 /boot/grub2 目录下。

  • 注意: /boot 目录必须放在一个 GRUB 所支持的文件系统(并不是所有的文件系统均可)。stage 2的功能是开始执行存放stage 3文件的 /boot 文件系统的驱动程序,并加载相关的驱动程序。


  • stage 3:GRUB stage 3所有的文件都已存放于 /boot/grub2 目录及其子目录下。该阶段没有一个类似于stage 1与stage 2的镜像文件。相应地,该阶段主要需要从 /boot/grub2/i386-pc 目录下加载一些内核运行时模块。

  • GRUB stage 3的主要功能是定位和加载 Linux 内核到内存中,并转移控制权到内核。内核的相关文件位于 /boot 目录下,这些内核文件可以通过其文件名进行识别,其文件名均带有前缀 vmlinuz(内核文件)。你可以列出 /boot 目录中的内容来查看操作系统中当前已经安装的内核。

  • GRUB2 跟 GRUB1 类似,支持从 Linux 内核选择之一引导启动。Red Hat 包管理器(DNF)支持保留多个内核版本,以防最新版本内核发生问题而无法启动时,可以恢复老版本的内核。默认情况下,GRUB 提供了一个已安装内核的预引导菜单,其中包括问题诊断菜单(recuse)以及恢复菜单(如果配置已经设置恢复镜像)。

三 、 初始化内核

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

  • 在选定的内核加载到内存中并开始执行后,在其进行任何工作之前,内核文件首先必须从压缩格式解压自身。一旦内核自解压完成,则加载 systemd 进程(其是老式 System V 系统的 init 程序的替代品),并转移控制权到 systemd。

  • 这就是引导过程的结束。此刻,Linux 内核和 systemd 处于运行状态,但是由于没有其他任何程序在执行,故其不能执行任何有关用户的功能性任务。

四 、 启动systemd

  • systemd 是所有进程的父进程。它负责将 Linux 主机带到一个用户可操作状态(可以执行功能任务)。systemd 的一些功能远较旧式 init 程序更丰富,可以管理运行中的 Linux 主机的许多方面,包括挂载文件系统,以及开启和管理 Linux 主机的系统服务等。

  • systemd 挂载在 /etc/fstab 中配置的文件系统,包括内存交换文件或分区。据此,systemd 必须能够访问位于 /etc 目录下的配置文件,包括它自己的。systemd 借助其配置文件 /etc/systemd/system/default.target 决定 Linux 系统应该启动达到哪个状态(或目标态target)

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


当前文章:Linux系统启动详解是什么
分享路径:http://myzitong.com/article/jjgesj.html