Linux启动过程概述

操作系统为人机交互的平台,那么主机开机则伴随操作系统的启动。在此期间会涉及到硬件的自检,相应程序的运行等等过程。

一、几个概念

BIOS

BIOS即Basic Input/Output System, “基本输入/输出系统”,是一种所谓的“固件” ,负责在开机时做硬件启动和检测等工作,并且担任操作系统控制硬件时的中介角色。

图片[1] - Linux启动过程概述 - 正则时光

UEFI&Legacy

可扩展固件接口(Extensible Firmware Interface,EFI)是Intel 为 PC 固件的体系结构、接口和服务出的建议标准。其主要目的是为了供一组在 OS 加载之前(启动前)在所有平台上一致的、正确指定的启动服务。

因为硬件发展迅速,传统式(Legacy)BIOS 成为进步的包袱,现在已发展出最新的UEFI(Unified Extensible FirmwareInterface)可扩展固件接口。

问题:uefi和legacy的区别有哪些?

1、支持系统位数

  Legacy是传统模式的电脑引导模式,它可以引导32位的操作系统,也可以引导64位的操作系统;而UEFI不能引导32位操作系统,只能支持64位的操作系统。

  2、运行流程时间

  Legacy运行流程比较复杂,将电脑开机,接着经过BIOS初始化,然后经过BIOS自检,再到引导操作系统,最后才进入系统;而UEFI的运行流程是电脑开机,接着UEFI初始化,直接到引导修复系统,最后进入系统。

  3、对应磁盘分区

  Legacy对应MBR分区,UEFI对应GPT分区,其中UEFI与Legacy指的是系统引导方式,MBR与GPT代表的磁盘分区表类型,其实UEFi也可以对应MBR,Legacy也能对应GPT,只不过这里面就得要对相关程序进行设置,比较麻烦。

Boot Laoder

Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。

Linux 主流的Boot Loader程序:

• Lilo

• Gurb(Gurb2)

Initramfs

initramfs被称为初始化内存盘,为系统提供一系列内核映像无法提供的模块,这些模块对正确引导系统非常重要。它通常和存储设备及文件系统有关,但也可支持其它特性和硬件外设。

initramfs只是一种RAM filesystem而不是disk。initramfs实际是一个cpio归档,启动所需的用户程序和驱动模块被归档成一个文件。因此,不需要cache,也不需要文件系统。

二、系统启动流程

图片[2] - Linux启动过程概述 - 正则时光

三、Gurb 2

GNU GRUB 来自GNU项目的启动引导程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。

GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

配置文件:

在基于传统的BIOS的主机里其配置文件位置:/boot/grub2/grub.cfg

在基于EFI主机里其配置文件位置:/boot/efi/EFI/redhat/grub.cfg

四、系统运行级别

传统的init定义了0-6共7个运行级别:

  1. 关机
  2. 单用户模式(文本模式)
  3. 多用户模式但不支持NFS(文本模式)
  4. 多用户(文本模式)
  5. 暂无定义
  6. 多用户图形界面模式
  7. 重启计算机
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享