我对启动加载器有一些了解但我必须知道bios代码如何跳转到启动加载器以及它何时初始化I / O设备以及BIOS的功能是什么?
是bios负责选择引导扇区,它将如何选择引导扇区?
还请告诉我重置向量将如何直接指向bios区域?
答案 0 :(得分:1)
我对启动加载器有一些了解,但我必须知道bios代码如何跳转到启动加载程序
从硬盘启动时,BIOS从硬盘第一扇区的主启动记录中读取启动加载程序,并将其加载到内存0000:7C00(或可能是07C0:0000 - {{3 }})。
什么时候初始化I / O设备,bios有什么功能?
in real mode, these refer to the same address简要概述了BIOS初始化系统时所执行的基本功能。建议的初始化顺序中的主要要点如下:
上电(复位矢量)处理
模式选择
准备记忆初始化
记忆初始化
后记忆初始化
杂项平台启用
中断启用
处理器中断模式
中断向量表(IVT)
中断描述符表(IDT)
计时器
内存缓存控制
处理器发现和初始化
I / O设备
PCI设备发现
引导旧版操作系统
记忆图
非易失性(NV)存储器
注意:引导传统操作系统部分后的大纲中列出了内存映射和非易失性存储部分,但是在文档中说明,并且如您所料,映射系统内存在切换到引导加载程序和引导操作系统之前发生。此外,在BIOS初始化期间也会发生对非易失性存储器的一些访问。 (例如,BIOS可能会读取存储在CMOS中的设置以确定主引导设备)
并且是bios负责选择引导扇区以及如何选择引导扇区?
BIOS根据设备类型找到引导扇区。
在大多数情况下(CD / DVD除外),bootsector将是设备的LBA 0(或等效地,CHS 0,0,1) - 请参阅特定设备的规格以找出它使用的寻址模式。对于CD / DVD,bootsector是LBA 17。
有关详细信息,请参阅OSDev上的Minimal Intel Architecture Boot Loader。
还请告诉我重置向量将如何直接指向bios区域?
CPU就是这样设计的。在置位复位信号时,CPU设置其寄存器,包括指向已知值的指令。例如,the quoted article,这是FFFFFFF0h,并且此地址映射到BIOS ROM。 on most x86 systems提供了更全面的解释。