这个问题的表达方式与什么是UEFI的引导序列?相同,但似乎不是我想要的。我想从教学角度了解UEFI序列。
例如,在BIOS启动模式下,以简化的方式,
相关文章:https://neosmart.net/wiki/mbr-boot-process/
但,
万一出现UEFI,我很难掌握这个序列。
我已经浏览了UEFI规范文档和OS部分。
UEFI:final.pdf
OS:https://wiki.osdev.org/UEFI
在BIOS模式下,这个efi_main()函数似乎是相当于0x7C00的点。但是怎么做呢?
UEFI固件是否在做类似的事情
jmp efi_main
在做了一系列的工作之后?
Q1.UEFI引导模式流如何?
Q2.是否有一个好的UEFI示例或教程,比如基于BIOS的BIOS示例或教程?
附注:
我已经看到了英特尔在2020年之前取消BIOS支持的消息(这些年已经过去了)。
https://www.anandtech.com/show/12068/intel-to-remove-bios-support-from-uefi-by-2020
上面写着
Once CSM is removed, the new platforms will be unable to run 32-bit operating systems, unable to use related software (at least natively), and unable to use older hardware, such as RAID HBAs (and therefore older hard drives that are connected to those HBAs), network cards, and even graphics cards that lack UEFI-compatible vBIOS (launched before 2012 – 2013)
Q3.这不意味着所有与BIOS启动相关的东西( 0x7C00和BIOS中断等的第一阶段引导加载程序)都不再受欢迎了吗?
发布于 2019-09-19 07:17:46
Q1:
UEFI引导序列分为多个“阶段”,您可以找到关于每个阶段这里的一些基本信息。
要加载SEC阶段,SecCore位于内存地址0xFFFFFFF0 (此地址映射到UEFI内存),因此是重置向量的目标。
在dxe阶段之后,可以在加载操作系统之前调用多个UEFI应用程序。
Q2:
如果你想对UEFI的工作原理有一个基本的理解,我会推荐这本书“超越BIOS”。
如果您想学习如何编写UEFI驱动程序/应用程序,我建议您看看EDK2存储库 (以及如何使用它构建应用程序。)中的一些示例应用程序,可以在规范中找到更多细节。
https://stackoverflow.com/questions/58002542
复制相似问题