计算机启动过程

2019-07-13 23:12发布

计算机启动过程: 一、开机上电       当我们按下主机电源开关时,电源向南桥芯片或主板I/O芯片发出开机触发信号,这时主板开机电路开始工作。同时,电源接头的第14脚变为低电压,ATX电源开始工作。电源本身工作电压稳定后,开始向电源的各个接头输出相应的规定电压,在所有输出电压工作正常后,南桥芯片内部复位电路开始工作。南桥芯片向系统时钟芯片发出复位信号,系统时钟开始工作,主板中的各种部件开始进行初始化工作。北桥芯片复位工作后,会向CPU发出一个Reset信号,让CPU内部自动恢复到初始状态。即CPU将大部分寄存器清零,将代码段寄存器CS设置为FFFFH,指令寄存器IP设置为0000H,即指向绝对地址FFFF0HBIOS芯片地址起始位置)。这时CPU从内存地址FFFF0HBIOS芯片的起始地址)处开始执行开机后的第一条指令,即跳转指令“JMPF000E05B”,使CPU跳转到BIOS中指定地址处执行POST程序。 二、POST自检       系统BIOS启动后会进行加电自检POSTPOST分两个步骤进行:首先进行核心部件的检测(检测CPU->校验BIOS的正确性->检测CMOS芯片->检测北桥芯片->检测南桥芯片->检测键盘控制器->检测前16KB内存->检测显卡BIOS->检测中断控制器->检测高速缓冲控制器)然后进行非核心部件检测(检测CMOS配置数据->检测显卡->检测16KB以上DRAM->检测键盘->检测串行接口->检测软驱->检测硬件->检测其它设备) 1.检测核心部件的正确性:检测系统中的一些关键设备(如CPUDRAMBIOS等)是否存在,以及它们是否正常工作,但并不进行初始化工作。 2.初始化主要部件: a.    初始化中断控制器:将系统中断向量移到000000H~0003FFH的地址,对中断控制器的每个内部寄存器进行读写检测,POST将屏蔽所有中断,然后检测每个中断,以确定是否有硬件中断冲突 b.   初始化DMA控制器:将DMA控制器的内部寄存器进行读写检测,然后初始化。 c.    初始化定时/计数器:对计数器发出的脉冲进行计数,以验证产生的时序是否适当。 d.   查找显卡BIOS(地址一般为C0000H),由显卡BIOS初始化显卡,这时显卡会在屏幕上显示一些初始化信息(如生产厂商,图形芯片等)。 3.显示BIOS类型和版本号 4.测试系统内存 POST将检测和显示CPU的类型和工作频率,然后对所有内存进行读写测试。 5.设置系统日期和时间 a.    检测键盘 b.   检测内存PSD芯片中的内存参数值设置 c.    检测硬盘数量、硬盘启动顺序、硬盘参数、工作模式等 d.   检测系统中安装的其它硬件设备。 6.检测即插即用设备 7.显示资源列表 8.扩展系统配置:系统BIOS用来与操作系统交换硬件配置信息的数据,这些数据被存放在CMOS中。 9.运行INT 13H        系统BIOS的启动代码将进行最后一项工作,即根据用户指定的启动顺序从硬盘、光驱或网络搜索启动程序。如果系统BIOS找到启动程序,BIOS将使系统的不可屏蔽中断NMI有效,并执行磁盘驱动中断服务:INT 13H,主机喇叭蜂鸣一声,意味着POST程序检测成功并结束,这时系统控制权交给INT13H
三、运行主引导记录过程       POST自检结束之前,INT 13H会检测硬盘中的主引导记录扇区。然后读取硬盘起始扇区中MBR的内容,执行其中的程序代码,分析并检测当前分区表的完整性和可用性。BIOS按照启动顺序,把控制权转交给排在第一位的储存设备。即根据用户指定的引导顺序从软盘、硬盘或是可移动设备中读取启动设备的MBR,并放入指定的位置(0x7c000)内存中。这时,计算机读取该设备的第一个扇区,也就是读取最前面的512个字节。如果这512个字节的最后两个字节是0x550xAA,表明这个设备可以用于启动;如果不是,表明设备不能用于启动,控制权于是被转交给启动顺序中的下一个设备。如果没有找到系统引导盘,则显示无操作系统并停机等待。 四、装载操作系统 1Windows系统引导核心文件:       初始化硬件设备,建立内存空间映射图,从而将系统地软件和硬件环境调配到一个合适的状态,以方便系统内核调用。 2Windows最小系统加载和初始化       当引导程序将Ntldr加载到内存后,就把系统控制权移交给了Ntldr程序,Ntldr装载用户配置的操作系统。 五、运行操作系统