腾讯云服务器优惠活动华纳云香港服务器

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

UEFI 引导与 BIOS 引导在原理上区别总结下来就是:BIOS 把 MBR 读出来交给 CPU 执行,做 MBR 做想做的事。UEFI 是查找磁盘里的 \efi\boot\bootx64.efi 文件,启动这个可执行程序,让这程序做想做的事。

UEFI 引导与 BIOS 引导在原理上有什么区别?-第1张-boke112百科(boke112.com)

UEFI 与 BIOS 运行流程的区别

UEFI 与 BIOS 启动流程的区别

1、BIOS 启动流程

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

2、UEFI 启动流程

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

总结

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

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

以上内容整理自@明月登楼的博客

本文地址:https://boke112.com/post/4513.html

赞 (0) 打赏
版权声明:本文为原创文章,版权归 boke112百科 所有,欢迎分享本文,转载请保留出处!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
wu