BIOS启动原理
程序员文章站
2022-04-24 23:09:35
BIOS启动原理Intel的IBM PC上i386芯片是遵循Intel与IBM共同制定的Boot协议的1. PC机的复位线和系统中的所有部件相连,包括CPU的RESET引脚//本文引用自www.45it.com电脑软硬件应用网2. 系统上电开... 09-04-21...
intel的ibm pc上i386芯片是遵循intel与ibm共同制定的boot协议的
1. pc机的复位线和系统中的所有部件相连,包括cpu的reset引脚//本文引用自www.jb51.net
2. 系统上电开机时,主板电源系统发送低电平的"power good"信号,该信号送到复位接口电路的#res端,产生时钟同步的复位正脉冲信号reset,该脉冲发送到上面提及的复位线上,经由cpu的reset引脚被cpu采集到,当正脉冲从1返回0时(下降沿),cpu启动内部初始化程序,初始化完成后进入实地址模式,其中cs:ip寄存器的状态是cs=f000h,ip=0000fff0h;显然,cpu自初始化完毕后,系统的真正启动才开始,那么,也决定了第一条指令的地址为cs:ip=f000:fff0h=ffff0h单元。
3. 与此同时,ibm开机协议规定,reset时,bios rom被加载到f0000h~fffffh,几乎所有bios在ffff0h的指令为jmp bini,这个bini就是bios启动程序的首地址了
4. 结合2,3两点,pc机开机后的第一个程序就是bios启动程序了,这个启动程序的执行流程分为二步:
i. post(power on self test)
ii. 按bios设置好的顺序逐一尝试加载启动媒体(硬盘,光驱,软驱,usb盘)的启动程序。对于我们常用的硬盘,则把0面,0道,1扇区的内容(512字节),也就是我们说的mbr加载到0000:7c00h单元开始的区域
结论:
在pc机上的重启(其实重启也是正常启动的一种形式而已),post一定发生在加载mbr之前,这是由久而来的ibm开机协议所定的。只要你是使用pc机,你无法仅从操作系统的角度来改变这个事实,更何况,从逻辑上而言,这些发生在操作系统运作之前的舞台。或许你的bios提供这种设置,使bios启动程序中跳过post这一步(但也同样作用于正常启动,不能仅作用于重启),又或许你使用其他硬件架构如ppc或者arm嵌入式系统!
之所以产生这种设想,估计是误解了我们计算机教学一直以来的初级概念,软重启和硬重启。注意,前者的reset信号由键盘发出,后者的reset信号由物理按键动作发出!但无论是哪种重启,都必须遵循开机协议,post一定发生在加载mbr之前!
1. pc机的复位线和系统中的所有部件相连,包括cpu的reset引脚//本文引用自www.jb51.net
2. 系统上电开机时,主板电源系统发送低电平的"power good"信号,该信号送到复位接口电路的#res端,产生时钟同步的复位正脉冲信号reset,该脉冲发送到上面提及的复位线上,经由cpu的reset引脚被cpu采集到,当正脉冲从1返回0时(下降沿),cpu启动内部初始化程序,初始化完成后进入实地址模式,其中cs:ip寄存器的状态是cs=f000h,ip=0000fff0h;显然,cpu自初始化完毕后,系统的真正启动才开始,那么,也决定了第一条指令的地址为cs:ip=f000:fff0h=ffff0h单元。
3. 与此同时,ibm开机协议规定,reset时,bios rom被加载到f0000h~fffffh,几乎所有bios在ffff0h的指令为jmp bini,这个bini就是bios启动程序的首地址了
4. 结合2,3两点,pc机开机后的第一个程序就是bios启动程序了,这个启动程序的执行流程分为二步:
i. post(power on self test)
ii. 按bios设置好的顺序逐一尝试加载启动媒体(硬盘,光驱,软驱,usb盘)的启动程序。对于我们常用的硬盘,则把0面,0道,1扇区的内容(512字节),也就是我们说的mbr加载到0000:7c00h单元开始的区域
结论:
在pc机上的重启(其实重启也是正常启动的一种形式而已),post一定发生在加载mbr之前,这是由久而来的ibm开机协议所定的。只要你是使用pc机,你无法仅从操作系统的角度来改变这个事实,更何况,从逻辑上而言,这些发生在操作系统运作之前的舞台。或许你的bios提供这种设置,使bios启动程序中跳过post这一步(但也同样作用于正常启动,不能仅作用于重启),又或许你使用其他硬件架构如ppc或者arm嵌入式系统!
之所以产生这种设想,估计是误解了我们计算机教学一直以来的初级概念,软重启和硬重启。注意,前者的reset信号由键盘发出,后者的reset信号由物理按键动作发出!但无论是哪种重启,都必须遵循开机协议,post一定发生在加载mbr之前!
下一篇: JavaScript对象