UEFI 引导与 BIOS 引导在原理上有什么区别?

2017-12-2008:31:24 2 5,433
摘要

其实UEFI 引导与 BIOS 引导在原理上区别总结下来就是:BIOS把MBR读出来交给CPU执行,做MBR做想做的事。UEFI是查找磁盘里的\efi\boot\bootx64.efi文件,启动这个可执行程序,让这程序做想做的事。直接好处除了开机快点外,最重要的是装系统超级方便了。把微软爸爸的系统镜像解压到U盘就能装机去了,不用再各种启动盘制作工具艹U盘的MBR(那些年战XP战各种主板兼容回忆起来真的一脸血)。

前几天明月给自己制作了一个 Win PE 引导优盘(可参考【体验最好的 windows PE 是什么?』一文),很多人可能不是很理解 UEFI 和 BIOS 引导原理上的区别是什么,今天就收集整理出来分享给大家。算是一次科普知识分享吧。

其实 UEFI 引导BIOS 引导在原理上区别总结下来就是:BIOS 把 MBR 读出来交给 CPU 执行,做 MBR 做想做的事。UEFI 是查找磁盘里的\efi\boot\bootx64.efi 文件,启动这个可执行程序,让这程序做想做的事。直接好处除了开机快点外,最重要的是装系统超级方便了。把微软爸爸的系统镜像解压到 U 盘就能装机去了,不用再各种启动盘制作工具艹 U 盘的 MBR(那些年战 XP 战各种主板兼容回忆起来真的一脸血)。

UEFI 引导与 BIOS 引导在原理上有什么区别?

先从启动流程上看区别在哪里?

BIOS 启动流程

  • 系统开机 - 上电自检(Power On Self Test 或 POST)。
  • POST 过后初始化用于启动的硬件(磁盘、键盘控制器等)。
  • BIOS 会运行 BIOS 磁盘启动顺序中第一个磁盘的首 440bytes(MBR 启动代码区域)内的代码。
  • 启动引导代码从 BIOS 获得控制权,然后引导启动下一阶段的代码(如果有的话)(一般是系统的启动引导代码)。
  • 再次被启动的代码(二阶段代码)(即启动引导)会查阅支持和配置文件。
  • 根据配置文件中的信息,启动引导程序会将内核和 initramfs 文件载入系统的 RAM 中,然后开始启动内核。

UEFI 启动流程

  • 系统开机 - 上电自检(Power On Self Test 或 POST)。
  • UEFI 固件被加载,并由它初始化启动要用的硬件。
  • 固件读取其引导管理器以确定从何处(比如,从哪个硬盘及分区)加载哪个 UEFI 应用。
  • 固件按照引导管理器中的启动项目,加载 UEFI 应用。
  • 已启动的 UEFI 应用还可以启动其他应用(对应于 UEFI shell 或 rEFInd 之类的引导管理器的情况)或者
  • 启动内核及 initramfs(对应于 GRUB 之类引导器的情况),这取决于 UEFI 应用的配置。

UEFI 引导与 BIOS 引导在原理上有什么区别?

总结

区别其实很简单,传统 BIOS,我们也称之为 legacy bios,他的引导方式很简单,就是上电自检后,跑完 POST,干完一大堆活以后,会去读取启动设备的 0 磁道 1 扇区 上面的前 512 字节(MBR)的数据。这就是我们常说的启动扇区,boot sector,BIOS 会看最后两个字节是不是 55 AA,如果是就用一条 jmp 指令跳过去就是了

UEFI 引导则是基于文件系统的,理论上没有 MBR 这样的东西(当然,实际上为了兼容性等等一大堆问题,可能磁盘上还是会有个 MBR)。boot 的时候,加载启动设备上面的 uefi loader,换句话说,uefi loader 是一个永远也不会返回的 UEFI APP 就是了。

 

历史文章推荐:

  • 本博客公众号
  • 扫一扫关注!
  • weinxin
  • 本博客小程序
  • 微信内浏览本博客
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  1   博主  1

    • 趴在窗边数星星 趴在窗边数星星 5

      说实话,这个还真是不知道具体的区别!博主研究的真是深入呀! :eek: