计算机启动原理
启动流程概述
BIOS
BIOS 执行流程
UEFI 与 BIOS
MBR
GPT
BootLoader
GRUB 引导内核的过程
Linux Kernel 加载
启动流程图
CentOS 6.x 系统启动过程
其他
参考
启动流程概述
开机加电;
CPU 跳转到 BIOS 指令的的物理地址(在 Intel 平台为 0XFFFF0);
BIOS 执行 POST(Power-On Self Test,硬件自检);
找到可启动的设备;
从 MBR 加载引导扇区;
BIOS 将控制权移交给操作系统的 Boot Loader(引导加载程序)。
BIOS
BIOS(Basic Input/Output System)是基本输入输出系统,它为电脑提供最低级、最直接的硬件控制与支持,是联系底层的硬件系统和软件系统的桥梁。为了在关机后使 BIOS 不会丢失,早期的 BIOS 存储在 ROM(Read-Only Memory)中,并且其大小不会超过 64KB;目前的 BIOS 大多有 1MB 到 2MB,所以会被存储在 闪存(Flash Memory)中。
BIOS 是一组固化到计算机主板上一个 ROM 芯片中的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从 CMOS(一种 RAM 芯片)中读写系统设置的具体信息。
BIOS 通常与 硬件系统集成在一起(在计算机主板的 ROM 或 EEPROM 中),所以也被称为固件。
BIOS 执行流程
BIOS 存放在 ROM 中,所以断电后不会丢失。电脑开机时,CPU 加电后会跳转到 BIOS 的第一条指令的物理地址 0xFFFF0 上,BIOS 开始执行。
第一次启动检查计算机硬件和外围设备(第二次自检由内核完成),例如 CPU、内存、风扇灯。当 BIOS 启动,就会做一个自我检测的工作,自检过程被称为 POST(Power On Self Test);
如果自检没有问题,BIOS 开始对硬件进行初始化,并规定当前可启动设备的先后顺序,选择由哪个设备来开机。选择好开机设备后,就会从该设备的 MBR(主引导目录)中读取 Boot Loader(启动引导程序)并执行。启动引导程序用于引导操作系统启动(例如 GRUB)。
当 MBR 被加载到 RAM 之后,BIOS 就会将控制权交给 MBR,进入系统引导的第二阶段。
硬件自检(Power-On Self Test,POST)
如果硬件出现问题,主板会发出蜂鸣,终止启动;否则检查没有问题,则 BIOS 调用 GPU 在屏幕上显示出 CPU、内存、硬盘等相关信息。BIOS 在执行完硬件自检和初始化后,将自己复制到从 0xA0000 开始的物理内存中继续执行。
UEFI 与 BIOS
BIOS 存在一些问题:
开发效率低:BIO