康斯登表与浪琴谁好:详细 说明一台微机启动的过程(文件加载的顺序及过程假设为win2k系统)?

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 06:55:09
详细 说明一台微机启动的过程(文件加载的顺序及过程假设为win2k系统)?

系统的启动分三个步骤。第一个步骤从接通电源开始,系统BIOS对硬件设备进行例行的加电自检,即所谓的 POST(Power On Self Test)检查,包括RAM检查、软硬驱和CD-ROM驱动器检测等。接着,BIOS读取活动分区主引导记录MBR(Master Boot Record)的启动装载器。最后,当启动装载器初始化完成之后,操作系统启动过程正式开始。启动操作系统涉及到大量的任务,因此耗时也最长,典型的任务包括启动操作系统内核、装载磁盘卷、装入设备驱动程序、读取注册信息、寻找新硬件设备、初始化显示设备和显示出用户界面等。

同时,它还要连接网络,以及实施各种用户自定义的配置,例如安全配置等。Win 2000通过与硬件更有效地协作,加速了启动过程。

Windows我不太清楚,不过我可以告诉你Linux系统的启动过程,因为使用的都是相同的CPU,而CPU被初始化的方式是由CPU厂商规定的,因此,不管是Windows还是Linux启动时对硬件的配置都是大同小异的。

当PC电源打开后,80X86结构的CPU自动进入实模式,并从BIOS中的地址0xFFFF0开始执行程序代码。BIOS将执行系统检测,并在物理地址0初开始初始化中断向量。然后它将启动盘的第一个扇区(引导扇区)读入内存绝对地址0X7C00处,并跳转到这个地方。Linux中,引导扇区中的引导程序被读入后,就将自己整个移动到内存地址0x90000处,然后从磁盘中读出设置程序和系统模块,将设置程序放在紧接着自己的内存地址上,将系统模块放到内存地址0x10000处,然后把控制权交给设置程序,设置程序从BIOS的中断设置中读出系统的配置参数,写入到内存地址0x90000处供以后使用,然后将系统模块移到内存地址的头部(0x00000),然后加载描述符表基地址到描述符寄存器,为在保护模式下运行做好准备,接下来对中断控制硬件进行重新设置,最后将机器控制寄存器跳转到系统模块的开头,使CPU进入保护模式运行。然后系统模块对硬件进行监测和对内存进行分页管理的初始化,然后跳转到系统模块中的主程序开始执行。这时,开始运行操作系统的main()函数,打开父进程,然后父进程就开始进入一个无穷循环开始等待上层应用程序的调用。