操作系统为人机交互的平台,那么主机开机则伴随操作系统的启动。在此期间会涉及到硬件的自检,相应程序的运行等等过程。
一、几个概念
BIOS
BIOS即Basic Input/Output System, “基本输入/输出系统”,是一种所谓的“固件” ,负责在开机时做硬件启动和检测等工作,并且担任操作系统控制硬件时的中介角色。
UEFI&Legacy
可扩展固件接口(Extensible Firmware Interface,EFI)是Intel 为 PC 固件的体系结构、接口和服务出的建议标准。其主要目的是为了供一组在 OS 加载之前(启动前)在所有平台上一致的、正确指定的启动服务。
因为硬件发展迅速,传统式(Legacy)BIOS 成为进步的包袱,现在已发展出最新的UEFI(Unified Extensible FirmwareInterface)可扩展固件接口。
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,也不需要文件系统。
二、系统启动流程
三、Gurb 2
GNU GRUB 来自GNU项目的启动引导程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。
GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。
配置文件:
在基于传统的BIOS的主机里其配置文件位置:/boot/grub2/grub.cfg
在基于EFI主机里其配置文件位置:/boot/efi/EFI/redhat/grub.cfg
四、系统运行级别
传统的init定义了0-6共7个运行级别:
- 关机
- 单用户模式(文本模式)
- 多用户模式但不支持NFS(文本模式)
- 多用户(文本模式)
- 暂无定义
- 多用户图形界面模式
- 重启计算机