BIOS 或任何其他固件如何与存储设备通信以实现第一阶段引导加载程序目标?

BIOS 或任何其他固件如何与存储设备通信以实现第一阶段引导加载程序目标?

启动时,BIOS-CMOS 中的固件需要识别哪个卷具有引导加载程序,以便有效地开始高度运行。但是,在这个阶段,我认为没有驱动程序,也没有特定文件系统的处理程序可以帮助 BIOS/UEFI 找到引导加载程序文件并将其加载到 RAM 中。那么,这样的操作是如何完成的?相关设备的制造商是否遵循某种协议来提供 CPU 和存储设备之间的粗略通信?

答案1

BIOS 不能包含文件系统代码并不一定正确,尽管旧版 BIOS 在这方面相当粗糙,并且读取单一部门进入 RAM。这个扇区称为 MBR,包含从磁盘分区读取更多扇区的代码。需要强调的是,加载 MBR 本身非常简单:它是磁盘上的第一个扇区,通过验证两个字节是否等于硬编码序列来检查。

读取磁盘本身很容易,因为 BIOS 需要提供磁盘读取例程反正

如今,UEFI 机器拥有足够大的固件存储空间,可以轻松整合文件系统驱动程序、BIOS 设置的 GUI 等。例如,FAT16 驱动程序可以在少于 8 KB 的 AVR 代码;x86 上的 FAT32 驱动程序肯定可以在一个数量级内实现。同时,我的笔记本电脑的 BIOS 更新映像是 16 MiB,如果代码编写得当且紧凑,这个空间就足够了。

相关内容