UID 1
精华
积分 76361
威望 点
宅币 个
贡献 次
宅之契约 份
最后登录 1970-1-1
在线时间 小时
首先嘛,开机对于大家来说也就是捅一下开机按钮,然后电脑开始嗡嗡叫,各种风扇转起来,显示器上显示了一个LOGO,最后就看到了Win7的启动动画。这个过程中,电脑详细都做了些什么呢?我在这里详细的说一说我的了解。(注意这只是我的了解,我还是很严谨的哦)
1、开机之后,主板的芯片组会给CPU发送一个RESET信号,CPU会挂起,并不马上执行指令(CS:EIP=0xFFFF:0x0000)
这个时候CPU完成初始化,内部恢复到初始状态。
等芯片组检测到电源已经稳定供电了,芯片组就撤去RESET信号,CPU从0xFFFF:0x0000开始执行。
这个时候电脑内存地址从0xC0000到0xFFFFF都是ROM-BIOS的地址。
0xFFFF:0x0000有什么呢?有一条远跳转指令,转入BIOS的初始化程序。
2、BIOS开始进行POST(Power-On Self Test,电脑自检,检查CPU,风扇等)一旦出错就蜂鸣报警。因为没有初始化显卡,所以无法打印信息到屏幕,只好蜂鸣报警。POST是很快的,所以一般来说这个过程也就是一瞬间的事。
3、完成POST之后,BIOS开始初始化显卡。BIOS先查找显卡BIOS,然后调用显卡BIOS使其进行自动初始化。这个时候显卡BIOS会打印一些文本,比如显卡的LOGO之类的,不过也通常也是一闪而过。BIOS还会再查找其他设备的BIOS,并调用其进行初始化。
4、初始化各个硬件之后,BIOS打印出了自己的信息,LOGO,BIOS类型等。大家也是在这个时候看到屏幕上显示了一句话:“请按F2或DEL进入设置,按F12设置引导菜单”(原文一般是“Press F2 or DEL to enter SETUP, or Press F12 to setup boot priority.”)不过不同的BIOS、主板打印的信息不同,因此键位也不一样,可能是F10进入设置,或F1设置引导菜单等。装系统的时候大家可以搓键盘,就像搓衣板一样,就搓F1到F12(同时也试着搓Enter、Del),这个时候就能快速进入设置了。
5、BIOS开始检查内存,有些BIOS会显示检查的进度。检查内存的目的主要是为了获取内存的大小。
6、检查完内存之后,BIOS开始检查电脑的一些标准设备,比如硬盘、CD-ROM、软驱、串口(COM)、并口(LPT打印机)等设备。
7、BIOS开始检查即插即用设备(USB等),同时为它分配DMA通道、IO口等。
8、BIOS开始进行扩展参数的设置。现在的主板比较屌,会有很多扩展功能,比如超频,开核等各种参数。
初始化完了以后内存的分配是这样的:
0x00000-0x003FF:中断向量表。有关中断向量表每个向量的详细信息请看这里:http://www.ctyme.com/intr/int.htm
0x00400-0x005FF:BIOS数据区。有关BIOS数据区的详细信息请参阅《PC技术内幕》
0x00600-0x07BFF:自由内存区。引导程序可自由使用。
0x07C00-0x07DFF:引导程序扇区的载入位置
0x07E00-0x9FFFF:自由内存区。引导程序可自由使用。
0xA0000-0xAFFFF:图形模式显存
0xB0000-0xB7FFF:单色文本模式显存
0xB8000-0xBFFFF:彩色文本模式显存
0xC0000-0xFFFFF:BIOS引导代码、自检代码、中断处理程序等
0x100000以上:高位内存。开启A20地址线之后才能访问
BIOS完成上面的几个初始化步骤之后,开始按照用户指定的引导菜单开始引导。所谓的引导就是从光盘、软盘、硬盘中找操作系统。
看起来挺屌,但是其实也就是从硬盘、软盘等读取第一个扇区,检查这个扇区的最后两个字节是不是0x55,0xAA(也就是0xAA55)如果是,就判定为“我找到操作系统了”于是跳转到引导扇区部分0x0000:0x7C00开始运行。
硬盘的第一个扇区是MBR,主引导扇区。软盘的第一个扇区是DBR,磁盘系统引导扇区。