发布网友 发布时间:2022-04-27 08:48
共1个回答
热心网友 时间:2023-09-15 06:14
1 计算机启动过程详解
关键词: 计算机启动 详解
打开电源启动机器几乎是电脑爱好者每天必做的事情,面对屏幕上出现的一幅幅启动画面,我们一点儿也不会感到陌生,但是,计算机在显示这些启动画面时都做了些什么工作呢?相信有的朋友还不是很清楚,本文就来介绍一下从打开电源到出现Windows的蓝天白云时,计算机到底都干了些什么事情。
首先让我们来了解一些基本概念。第一个是大家非常熟悉的BIOS(基本输入输出系统),BIOS是直接与硬件打交道的底层代码,它为操作系统提供了控制硬件设备的基本功能。BIOS包括有系统BIOS(即常说的主板BIOS)、显卡BIOS和其它设备(例如IDE控制器、SCSI卡或网卡等)的BIOS,其中系统BIOS是本文要讨论的主角,因为计算机的启动过程正是在它的控制下进行的。BIOS一般被存放在ROM(只读存储芯片)之中,即使在关机或掉电以后,这些代码也不会消失。
第二个基本概念是内存的地址,我们的机器中一般安装有32MB、MB或128MB内存,这些内存的每一个字节都被赋予了一个地址,以便CPU访问内存。32MB的地址范围用十六进制数表示就是0~1FFFFFFH,其中0~FFFFFH的低端1MB内存非常特殊,因为最初的8086处理器能够访问的内存最大只有1MB,这1MB的低端0KB被称为基本内存,而A0000H~BFFFFH要保留给显示卡的显存使用,C0000H~FFFFFH则被保留给BIOS使用,其中系统BIOS一般占用了最后的KB或更多一点的空间,显卡BIOS一般在C0000H~C7FFFH处,IDE控制器的BIOS在C8000H~CBFFFH处。
好了,下面我们就来仔细看看计算机的启动过程吧。
第一步: 当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向CPU发出并保持一个RESET(重置)信号,让CPU内部自动恢复到初始状态,但CPU在此刻不会马上执行指令。当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情),它便撤去RESET信号(如果是手工按下计算机面板上的Reset按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET信号),CPU马上就从地址FFFF0H处开始执行指令,从前面的介绍可知,这个地址实际上在系统BIOS的地址范围内,无论是Award BIOS还是AMI BIOS,放在这里的只是一条跳转指令,跳到系统BIOS中真正的启动代码处。
第二步: 系统BIOS的启动代码首先要做的事情就是进行POST(Power-On Self Test,加电后自检),POST的主要任务是检测系统中一些关键设备是否存在和能否正常工作,例如内存和显卡等设备。由于POST是最早进行的检测过程,此时显卡还没有初始化,如果系统BIOS在进行POST的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时只会检查0K常规内存),那么系统BIOS就会直接控制喇叭发声来报告错误,声音的长短和次数代表了错误的类型。在正常情况下,POST过程进行得非常快,我们几乎无法感觉到它的存在,POST结束之后就会调用其它代码来进行更完整的硬件检测。
第三步: 接下来系统BIOS将查找显卡的BIOS,前面说过,存放显卡BIOS的ROM芯片的起始地址通常设在C0000H处,系统BIOS在这个地方找到显卡BIOS之后就调用它的初始化代码,由显卡BIOS来初始化显卡,此时多数显卡都会在屏幕上显示出一些初始化信息,介绍生产厂商、图形芯片类型等内容,不过这个画面几乎是一闪而过。系统BIOS接着会查找其它设备的BIOS程序,找到之后同样要调用这些BIOS内部的初始化代码来初始化相关的设备。
第四步: 查找完所有其它设备的BIOS之后,系统BIOS将显示出它自己的启动画面,其中包括有系统BIOS的类型、序列号和版本号等内容。
第五步: 接着系统BIOS将检测和显示CPU的类型和工作频率,然后开始测试所有的RAM,并同时在屏幕上显示内存测试的进度,我们可以在CMOS设置中自行决定使用简单耗时少或者详细耗时多的测试方式。
作者: Starseeker_Cao 封 2006-2-11 14:08 回复此发言 删除
--------------------------------------------------------------------------------
2 计算机启动过程详解
第六步: 内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备,包括硬盘、CD-ROM、串口、并口、软驱等设备,另外绝大多数较新版本的系统BIOS在这一过程中还要自动检测和设置内存的定时参数、硬盘参数和访问模式等。
第七步: 标准设备检测完毕后,系统BIOS内部的支持即插即用的代码将开始检测和配置系统中安装的即插即用设备,每找到一个设备之后,系统BIOS都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、DMA通道和I/O端口等资源。
第八步: 到这一步为止,所有硬件都已经检测配置完毕了,多数系统BIOS会重新清屏并在屏幕上方显示出一个表格,其中概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。
第九步: 接下来系统BIOS将更新ESCD(Extended System Configuration Data,扩展系统配置数据)。ESCD是系统BIOS用来与操作系统交换硬件配置信息的一种手段,这些数据被存放在CMOS(一小块特殊的RAM,由主板上的电池来供电)之中。通常ESCD数据只在系统硬件配置发生改变后才会更新,所以不是每次启动机器时我们都能够看到“Update ESCD… Success”这样的信息,不过,某些主板的系统BIOS在保存ESCD数据时使用了与Windows 9x不相同的数据格式,于是Windows 9x在它自己的启动过程中会把ESCD数据修改成自己的格式,但在下一次启动机器时,即使硬件配置没有发生改变,系统BIOS也会把ESCD的数据格式改回来,如此循环,将会导致在每次启动机器时,系统BIOS都要更新一遍ESCD,这就是为什么有些机器在每次启动时都会显示出相关信息的原因。
第十步: ESCD更新完毕后,系统BIOS的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动。以从C盘启动为例,系统BIOS将读取并执行硬盘上的主引导记录,主引导记录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责读取并执行IO.SYS,这是DOS和Windows 9x最基本的系统文件。Windows 9x的IO.SYS首先要初始化一些重要的系统数据,然后就显示出我们熟悉的蓝天白云,在这幅画面之下,Windows将继续进行DOS部分和GUI(图形用户界面)部分的引导和初始化工作。
如果系统之中安装有引导多种操作系统的工具软件,通常主引导记录将被替换成该软件的引导代码,这些代码将允许用户选择一种操作系统,然后读取并执行该操作系统的基本引导代码(DOS和Windows的基本引导代码就是分区引导记录)。 上面介绍的便是计算机在打开电源开关(或按Reset键)进行冷启动时所要完成的各种初始化工作,如果我们在DOS下按Ctrl+Alt+Del组合键(或从Windows中选择重新启动计算机)来进行热启动,那么POST过程将被跳过去,直接从第三步开始,另外第五步的检测CPU和内存测试也不会再进行。我们可以看到,无论是冷启动还是热启动,系统BIOS都一次又一次地重复进行着这些我们平时并不太注意的事情,然而正是这些单调的硬件检测步骤为我们能够正常使用电脑提供了基础。
http://wwwno.blogchina.com/3757990.html
作者: Starseeker_Cao 封 2006-2-11 14:08 回复此发言 删除
--------------------------------------------------------------------------------
3 回复:计算机启动过程详解
深入理解XP的启动过程(一)
〔 作者:胡钦廷 转贴自:本站原创 点击数:476 更新时间:2005-12-12 文章录入:admin 〕
要正确使用Windows XP,一定要熟练掌握Windows XP的启动原理。Windows XP的启动过程所执行的操作可以看成是一个操作系统整体环境的快照或缩影,了解了Windows XP的启动原理,有助于深入了解Windows XP的多方面机制。
正如很多人所经常遇到的那样,Windows XP并不是十全十美的,如果操作失误,很可能导致Windows XP的各种故障。其中,启动故障比较常见,也比较难于对付。因为,如果系统启动不起来,对它的排错也就无从谈起。所以,熟练掌握对Windows XP启动故障的排除,也是一个“菜鸟”必不可少的技能。
Windows XP是基于NT技术的操作系统,它的启动过程同Windows NT和Windows 2000基本相同,但是同DOS、Windows 3.X、Windows 9.X和Windows ME大相径庭。Windows XP彻底抛弃了原先的基于字符的实模式环境,其启动过程比较复杂。
一般来说,Windows XP的启动过程,主要包括以下几个步骤:
l 电源开启自检过程。
l 初始化启动过程。
l 引导程序载入过程。
l 检测和配置硬件过程。
l 内核加载过程。
l 用户登录过程。
l 即插即用设备的检测过程。
一、电源开启自检过程
在打开计算机电源时,首先开始电源启动自检过程。在BIOS中包含一些基本的指令,能够帮助计算机在没有安装任何操作系统的情况下进行基本的启动。电源启动自检过程首先会从BIOS中载入必要的指令,然后进行如下一系列的自检操作:
² 进行硬件的初始化检查,例如检查内存的容量等。
² 验证用于启动操作系统的设备是否正常,例如,检查硬盘是否存在等。
² 从CMOS中读取系统配置信息。
在完成了电源启动的自检之后,每个带有固件的硬件设备,如显卡和磁盘控制器,都会根据需要完成内部的自检操作。
二、初始化启动过程
在完成了电源启动自检过程之后,存储在CMOS中的设置,例如磁盘的引导顺序等,能够决定由哪些设备来引导计算机。例如,可以设置磁盘的引导顺序为首先通过A盘引导,其次才通过C盘引导,则系统会首先尝试用A盘引导系统,如果A盘存在并可引导,则通过A盘引导。如果A盘不存在,则通过C盘引导系统。如果A盘存在,但不是引导盘,则系统地提示系统不可引导。
一般来说通常会使用硬盘引导。在进行硬盘引导时,启动过程通常按照如下的步骤进行:
ÿ 系统首先检测打开电源的硬盘。
ÿ 若该硬盘是启动盘,BIOS就将主引导记录(Main Boot Record――MBR)中的引导代码载入内存。
ÿ 接着,BIOS会将启动过程的运行交给MBR来进行。
ÿ 计算机搜索MBR中的分区表,找出活动分区(Active Partition)。
ÿ 计算机将活动分区的第一个扇区中的引导代码载入到内存。
ÿ 引导代码检测当前使用的文件系统是否可用。
ÿ 引导代码查找ntldr文件,找到之后启动它。
ÿ BIOS将控制权转交给ntldr,由ntldr完成操作系统的启动。
注意:这里简单介绍一下MBR的概念。MBR位于启动磁盘的第一个扇区,其中主要包含引导代码(Boot Code)和分区表(Partition Table)数据。引导代码主要用于引导系统。而分区表则主要用于标识基本分区和扩展分区。
三、引导程序载入过程
本过程主要由ntldr 文件完成。Ntldr从引导分区载入启动文件,然后完成如下一些任务。
1、在基于X86CPU的系统下,设置CPU的运行使用32位的Flat内存模式
对基于X86CPU的计算机来说,第一次启动的时候总是进入所谓的实模式(RealMode)。在实模式下CPU的某些特性不能完全发挥,这是因为它要保证同8位或16位的CPU(如8086、8088)相兼容。实模式下由于系统规格的*,无法对大容量内存进行直接存取,而必须通过分段的方式完成。对于32位的Windows XP来说,8位或16位的CPU显然是无用的。
ntldr首先会将CPU切换到32位的模式,从而确保Windows XP的正常。在CPU的32位模式下,可以对大容量内存进行直接存取,而彻底抛弃了原先在8位或16位下分段存取内存的不便。这也是为什么32位模式称作Flat内存模式的原因。
2、启动文件系统
ntldr 中包含相应的代码,能够帮助Windows XP完成对NTFS或FAT格式的磁盘进行读写。从而能够读取、访问和复制文件。
3、读取boot.ini 文件
在这一步中,ntldr 会分析boot.ini文件,确定操作系统分区所在的位置。
对于单引导的系统来说,ntldr 会通过启动ntdetect.com来初始化硬件检测状态。
对于多引导系统来说,首先由用户在操作系统菜单中选择要启动的操作系统然后而由ntldr进行相应的操作。
如果用户选择启动ntdetect.com来初始化硬件检测状态。
如果选择启动旧式的微软操作系统,如MS-DOS、Windows 9x/ME,ntldr会将从bootsect.dos文件中读取MBR代码,然后将控制权交给bootsect.dos中的MBR。
4、根据需要提供启动菜单
在这一步,如果用户按下F8键,则会显示启动菜单,允许用户选择不同的启动方式,例如使用安全方式启动,或是使用最后一次正确的配置启动等。
5、检测硬件和硬件配置
在这一步中,ntldr 启动ntdetect.com文件进行基本的设备检查,然后将 boot.ini文件中的信息,以及注册表中的硬件和软件信息传递给ntoskrnl.exe 程序。
四、检测和配置硬件过程
在处理完boot.ini文件之后,ntldr会启动ntdetect.com程序。在基于X86的系统中,ntdetect.com会通过调用系统固件程序收集安装的硬件信息,然后由ntdetect.com将这些信息传递送回ntldr。Ntldr获取从ntdetect.com发来的信息后,将这些信息组织成为内部的断气结构形式,然后由ntldr 启动ntoskrnl.exe ,并将这些信息发送给它。
Ntdetect.com 会收集如下类型的硬件信息:
& 系统固件信息,例如时间和日期等
& 总线适配器的类型
& 显卡适配器的类型
& 键盘
& 通信端口
& 磁盘
& 软盘
& 输入设备,例如鼠标
& 并口
& 安装在ISA槽中的ISA设备
完成信息的检测之后,Windows XP会在屏幕上显示那个著名的Windows XP商标,并显示一个滚动的,告诉用户Windows 的启动进程。
http://www.fxjy.cn/Article_Show.asp?ArticleID=504
作者: Starseeker_Cao 封 2006-2-11 14:12 回复此发言 删除
--------------------------------------------------------------------------------
4 回复:计算机启动过程详解
深入理解XP的启动过程(二)
〔 作者:胡钦廷 转贴自:本站原创 点击数:395 更新时间:2005-12-12 文章录入:admin 〕
五、内核加载过程
在此过程中,ntldr实施下列一些功能。
1、将内核(ntoskrnl.exe)和硬件抽象层(hal.dll)载入到内存
2、加载控制集信息
在这一过程中,ntldr从注册表中的HKEY_LOCAL_MACHINE\SYSTEM位置加载相应的控制集(Control Set)信息,并确定在启动过程中要加载的设备驱动。
3、加载设备驱动程序和服务
在这一步中,系统会在BIOS的帮助下开始加载设备驱动程序,以及服务。
4、启动会话管理器
完成上面的过程之后,内核会启动会话管理器(Session Manager),这是一个名为smss.exe 的程序,其作用表现如下:
(1)创建系统环境变量
(2)创建虚拟内存页面文件
六、用户登录过程
在这一过程中,Windows 子系统会启动winlogon.exe,这是一个系统服务,用于提供对Windows 用户的登录和注销的支持。Winlogon.exe 可以完成如下一些工作:
启动服务子系统(services.exe),也称服务控制管理器(Service Control Manager, SCM)。
启动本地安全授权(Local Security Authority , LSA)过程(lsass.exe)。
在开始登录提示的时候,对Crtl+Alt+Del组合键进行分析处理。
一个图形化的识别和认证组件收集用户的帐号和密码,然后将这些信息安全地传送给LSA以进行认证处理。如果用户提供的信息是正确的,能够通过认证,就允许用户对系统进行访问。
要注意的是,如果您的计算机中,只有Administrator这一个用户,那么在欢迎屏幕中就会显示Administrator 用户项。如果您的计算机中不仅有Administrator用户,还有别的可以交互登录的用户,那么欢迎屏幕中就只显示出Administrator之外的用户,而不显示Administrator用户。
如果用户希望以Administrator用户登录,该怎么办呢?实际很简单,直接在欢迎屏幕中按下两次Crtl+Alt+Del组合键,即可打开标准的登录窗口,可以再输入Administrator 的用户名和密码,以便用最高管理员的身份登录。
七、即插即用设备的检测过程
对即插即用设备的检测,实际上是和登录过程异步进行的。由系统固件、硬件、设备驱动和系统特性决定了Windows XP如何对新设备进行检测和枚举。当即插即用组件正常工作后,Windows XP会对新设备进行检测,为它们分配系统资源,并在尽量不要用户提供选择的情况下,为新设备安装一个合适版本的驱动程序。
至此,Windows XP已成功启动。
http://www.fxjy.cn/Article_Show.asp?ArticleID=505
作者: Starseeker_Cao 封 2006-2-11 14:13 回复此发言 删除
--------------------------------------------------------------------------------
共有帖子数4篇
参考资料:http://zhidao.baidu.com/question/3703849.html?si=1