1、 打开电源启动机器几乎是电脑爱好者每天必做的事情,面对屏幕上出现的一幅幅启动画面,我们一点儿也不会感到陌生,但是,计算机在显示这些启动画面时都做了些什么工作呢?相信有的朋友还不是很清楚,本文就来介绍一下从打开电源到出现 Windows 9x 的蓝天白云时,计算机到底都干了些什么事情。首先让我们来了解一些基本概念。第一个是大家非常熟悉的 BIOS(基本输入输出系统) ,BIOS 是直接与硬件打交道的底层代码,它为操作系统提供了控制硬件设备的基本功能。BIOS 包括有系统 BIOS(即常说的主板 BIOS) 、显卡 BIOS 和其它设备(例如IDE 控制器、SCSI 卡或网卡等)的 BIOS,其中
2、系统 BIOS 是本文要讨论的主角,因为计算机的启动过程正是在它的控制下进行的。BIOS 一般被存放在 ROM(只读存储芯片)之中,即使在关机或掉电以后,这些代码也不会消失。第二个基本概念是内存的地址,我们的机器中一般安装有 32MB、64MB 或128MB 内存,这些内存的每一个字节都被赋予了一个地址,以便 CPU 访问内存。32MB的地址范围用十六进制数表示就是 01FFFFFFH,其中 0FFFFFH 的低端 1MB 内存非常特殊,因为最初的 8086 处理器能够访问的内存最大只有 1MB,这 1MB 的低端 640KB 被称为基本内存,而 A0000HBFFFFH 要保留给显示卡的显存
3、使用,C0000HFFFFFH 则被保留给 BIOS 使用,其中系统 BIOS 一般占用了最后的 64KB 或更多一点的空间,显卡BIOS 一般在 C0000HC7FFFH 处,IDE 控制器的 BIOS 在 C8000HCBFFFH 处。好了,下面我们就来仔细看看计算机的启动过程吧。#1 第一步:当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向 CPU 发出并保持一个 RESET(重置)信号,让 CPU 内部自动恢复到初始状态,但 CPU 在此刻不会马上执行指令。当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情)
4、,它便撤去 RESET 信号(如果是手工按下计算机面板上的 Reset 按钮来重启机器,那么松开该按钮时芯片组就会撤去 RESET 信号) ,CPU 马上就从地址 FFFF0H 处开始执行指令,从前面的介绍可知,这个地址实际上在系统 BIOS 的地址范围内,无论是 Award BIOS 还是 AMI BIOS,放在这里的只是一条跳转指令,跳到系统 BIOS 中真正的启动代码处。#1 第二步:系统 BIOS 的启动代码首先要做的事情就是进行 POST(PowerOn Self Test,加电后自检) ,POST 的主要任务是检测系统中一些关键设备是否存在和能否正常工作,例如内存和显卡等设备。由于
5、 POST 是最早进行的检测过程,此时显卡还没有初始化,如果系统 BIOS 在进行 POST 的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时只会检查 640K 常规内存) ,那么系统 BIOS 就会直接控制喇叭发声来报告错误,声音的长短和次数代表了错误的类型。在正常情况下,POST 过程进行得非常快,我们几乎无法感觉到它的存在,POST 结束之后就会调用其它代码来进行更完整的硬件检测。#1 第三步:接下来系统 BIOS 将查找显卡的 BIOS,前面说过,存放显卡 BIOS 的 ROM 芯片的起始地址通常设在 C0000H 处,系统 BIOS 在这个地方找到显卡 BIOS 之后
6、就调用它的初始化代码,由显卡 BIOS 来初始化显卡,此时多数显卡都会在屏幕上显示出一些初始化信息,介绍生产厂商、图形芯片类型等内容,不过这个画面几乎是一闪而过。系统 BIOS 接着会查找其它设备的 BIOS 程序,找到之后同样要调用这些 BIOS 内部的初始化代码来初始化相关的设备。查找完所有其它设备的 BIOS 之后,系统 BIOS 将显示出它自己的启动画面,其中包括有系统 BIOS 的类型、序列号和版本号等内容。#1 第四步: #1 第五步:接着系统 BIOS 将检测和显示 CPU 的类型和工作频率,然后开始测试所有的RAM,并同时在屏幕上显示内存测试的进度,我们可以在 CMOS 设置中
7、自行决定使用简单耗时少或者详细耗时多的测试方式。#1 第六步:内存测试通过之后,系统 BIOS 将开始检测系统中安装的一些标准硬件设备,包括硬盘、CDROM 、串口、并口、软驱等设备,另外绝大多数较新版本的系统 BIOS 在这一过程中还要自动检测和设置内存的定时参数、硬盘参数和访问模式等。#1 第七步:标准设备检测完毕后,系统 BIOS 内部的支持即插即用的代码将开始检测和配置系统中安装的即插即用设备,每找到一个设备之后,系统 BIOS 都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、DMA 通道和 I/O 端口等资源。#1 第八步:到这一步为止,所有硬件都已经检测配置完毕了,
8、多数系统 BIOS 会重新清屏并在屏幕上方显示出一个表格,其中概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。#1 第九步:接下来系统 BIOS 将更新 ESCD(Extended System Configuration Data,扩展系统配置数据) 。ESCD 是系统 BIOS 用来与操作系统交换硬件配置信息的一种手段,这些数据被存放在 CMOS(一小块特殊的 RAM,由主板上的电池来供电)之中。通常 ESCD 数据只在系统硬件配置发生改变后才会更新,所以不是每次启动机器时我们都能够看到“Update ESCD Success”这样的信息,不过,某些主板的系
9、统 BIOS 在保存 ESCD 数据时使用了与Windows 9x 不相同的数据格式,于是 Windows 9x 在它自己的启动过程中会把 ESCD 数据修改成自己的格式,但在下一次启动机器时,即使硬件配置没有发生改变,系统 BIOS 也会把ESCD 的数据格式改回来,如此循环,将会导致在每次启动机器时,系统 BIOS 都要更新一遍 ESCD,这就是为什么有些机器在每次启动时都会显示出相关信息的原因。#1 第十步:ESCD 更新完毕后,系统 BIOS 的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动。以从 C 盘启动为例,系统 BIOS 将读取并执行硬盘上的主引
10、导记录,主引导记录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责读取并执行 IO.SYS,这是 DOS 和Windows9x 最基本的系统文件。 Windows 9x 的 IO.SYS 首先要初始化一些重要的系统数据,然后就显示出我们熟悉的蓝天白云,在这幅画面之下,Windows 将继续进行 DOS 部分和 GUI(图形用户界面)部分的引导和初始化工作。如果系统之中安装有引导多种操作系统的工具软件,通常主引导记录将被替换成该软件的引导代码,这些代码将允许用户选择一种操作系统,然后读取并执行该操作系统的基本引导代码(DOS 和 Windows 的
11、基本引导代码就是分区引导记录) 。上面介绍的便是计算机在打开电源开关(或按 Reset 键)进行冷启动时所要完成的各种初始化工作,如果我们在 DOS 下按 CtrlAlt Del 组合键(或从 Windows 中选择重新启动计算机)来进行热启动,那么 POST 过程将被跳过去,直接从第三步开始,另外第五步的检测 CPU 和内存测试也不会再进行。我们可以看到,无论是冷启动还是热启动,系统 BIOS 都一次又一次地重复进行着这些我们平时并不太注意的事情,然而正是这些单调的硬件检测步骤为我们能够正常使用电脑提供了基础。系统启动过程简介系统启动过程主要由一下几步组成(以硬盘启动为例):BIOS 芯片是
12、主板上一块长方型或正方型芯片,BIOS 中主要存放:自诊断程序:通过读取 CMOS RAM 中的内容识别硬件配置,并对其进行自检和初始化; CMOS 设置程序:引导过程中,用特殊热键启动,进行设置后,存入 CMOS RAM 中; 系统自举装载程序:在自检成功后将磁盘相对 0 道 0 扇区上的引导程序装入内存,让其运行以装入 DOS 系统; 主要 IO 设备的驱动程序和中断服务;1. 开机 :-)2. BIOS 加电自检 ( Power On Self Test - POST )内存地址为 0ffff:00003. 将硬盘第一个扇区 (0 头 0 道 1 扇区, 也就是 Boot Sector)
13、读入内存地址 0000:7c00 处.4. 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于则转去尝试其他启动介质, 如果没有其他启动介质则显示“No ROM BASIC“ 然后死机 .5. 跳转到 0000:7c00 处执行 MBR 中的程序.6. MBR 首先将自己复制到 0000:0600 处, 然后继续执行.7. 在主分区表中搜索标志为活动的分区. 如果发现没有活动分区或有不止一个活动分区, 则转停止.8. 将活动分区的第一个扇区读入内存地址 0000:7c00 处.9. 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于则显示 “Mi
14、ssing Operating System“ 然后停止, 或尝试软盘启动.10. 跳转到 0000:7c00 处继续执行特定系统的启动程序.11. 启动系统 .以上步骤中 2,3,4,5 步是由 BIOS 的引导程序完成. 6,7,8,9,10步由 MBR 中的引导程序完成.一般多系统引导程序 (如 SmartFDISK, BootStar, PQBoot 等)都是将标准主引导记录替换成自己的引导程序, 在运行系统启动程序之前让用户选择要启动的分区.而某些系统自带的多系统引导程序 (如 lilo, NT Loader 等)则可以将自己的引导程序放在系统所处分区的第一个扇区中, 在 Linux
15、中即为 SuperBlock (其实 SuperBlock 是两个扇区).注: 以上各步骤中使用的是标准 MBR, 其他多系统引导程序的引导过程与此不同./了解计算机系统启动过程此文译自 Windows XP Resource Kit Web Resource 中 Understanding the Startup Process 一章为了诊断和修复启动故障,您需要理解启动过程中发生了什么。第一步隔离启动问题,判断问题是发生在 Microsoft Windows XP Professional 启动之前还是之后。 启动失败的根本原因,包括相关因素,可能是来自多方面的, 比如用户错误,应用程序错
16、误,硬件问题,病毒问题。如果问题过于严重,您可能需要重新安装 Windows XP Professional 或者从备份介质中恢复文件。在基于 x86 的系统上,发生在启动故障 operating system loader (Ntldr) 可能意味着启动文件丢失或者被删除,或者硬盘主引导记录 (MBR)损坏, 或者分区表,或者引导扇区的损坏。如果问题发生在启动期间,那么系统可能存在不兼容的软件或者驱动,不兼容或者设置错误的硬件,或者系统文件损坏。基于 Itanium 系统的计算机启动或者和 x86 系统类似。详见后面的章节 “Startup Phases for Itanium-based
17、Systems“ 基于 x86 系统的启动过程Windows XP Professional 启动过程和 Microsoft Windows NT version 4.0 and Microsoft Windows 2000 类似,区别于 Microsoft MS-DOS, Microsoft Windows 95, Microsoft Windows 98, and Microsoft Windows Millennium Edition (Windows Me) 这些系统。所有运行 Windows XP Professional 的系统都遵循如下启动顺序:上电自检 (POST) 阶段 初始
18、化启动阶段 启动装载阶段 检测、设置硬件阶段 系统核心装载阶段 登陆阶段上述的启动过程适用于正常关机后的系统启动或者重新启动,从休眠或者待机状态恢复的情况例外,后者请参考后面的章节 “Resolving Power Management Problems on x86-based Systems“ 为了 Windows XP Professional 能够引导,系统和启动分区必须包含表 28.1.中的文件。表 28.1 基于 x86 系统上 Windows XP Professional 的启动文件文件名 文件所处位置 描述 Ntldr 系统分区根目录 操作系统装载器 Boot.ini 系统分
19、区根目录 该文件指定 Windows XP Professional 的安装路径。对于多引导系统 Boot.ini 包含一个显示在启动菜单上的操作系统选择菜单。 Bootsect.dos (仅适用于多引导系统) 系统分区根目录 Ntldr 将会装载此文件,以读取可能包含 MS-DOS, Windows 95, Windows 98, or Windows Me 等 OS 的 Windows XP Professional 多引导系统设定。 Bootsect.dos 包含这些操作系统的引导扇区,文件属性为系统、隐藏。 N 系统分区根目录 此文件将扫描硬件设置信息,并传递给 Ntldr Ntboo
20、tdd.sys 系统分区根目录 (SCSI 或者 ATA 等固件本身禁用或者不支持 INT-13 中断扩展调用的设备需要此文件). 该驱动程序用于访问不使用 BIOS,而连接到 SCSI 或者 ATA 的硬盘驱动器, The contents of this file depend on the startup controller used. Ntoskrnl.exe systemrootSystem32 Windows XP Professional 操作系统的核心 (也被叫做 kernel) 。作为 kernel 的一部分,运行在处理器特权模式下的代码,允许直接访问系统数据和硬件。 在安
21、装 Windows XP Professional 操作系统期间,如果是单处理器系统,setup程序从操作系统光盘上复制 Ntoskrnl.exe 文件,如果是多处理器系统,Setup 从安装光盘上复制 Ntoskrnlmp.exe 并将它重命名为 Ntoskrnl.exe. Hal.dll systemrootSystem32 硬件抽象层动态(HAL)链接库文件。HAL abstracts 从操作系统提取底层硬件信息,并给相同类型的设备,提供公用编程接口。 Microsoft Windows XP Professional 操作系统光盘包含若干 Hal 文件,Setup 将适合您系统硬件设置
22、的文件复制到您的计算机,并重命名为 Hal.dll. System registry file systemrootSystem32ConfigSystem 此注册表文件包含创建KEY_LOCAL_MACHINESYSTEM 注册表键值所需要的数据。该键值包含了操作系统启动设备和系统服务所需要的信息。 Device drivers systemrootSystem32Drivers 一些硬件设备的驱动程序文件,比如键盘、鼠标、显卡。 注:Windows NT 4.0, Windows 2000, and Windows XP Professional 定义 “系统“ 和 “启动“ 分区有别于启
23、动操作系统。系统卷包含启动 Windows XP Professional 所必须的文件,比如 Windows loader (Ntldr)。启动卷 Windows XP Professional 操作系统文件和文件夹比如 systemroot 和 systemrootSystem32。在基于 x86 系统的计算机上,启动卷和系统卷可以但不一定是同一个卷。在表 28.1 中,systemroot 是众多环境变量之一,用于将象文件和文件路径这样的字符串关联到变量,以便 Windows XP Professional 应用程序和服务使用。例如,通过使用环境变量,脚本不同修改就可以运行在不同环境设置
24、的计算机上。您可以通过在命令行执行 set 命令查看环境变量列表。关于环境变量,请参考 Windows XP Professional 中关于 “To add or change the values of environment variables“ 的描述;关于系统文件的信息,详见 “System Files Reference“ 上电自检当您打开计算机的时候,中央处理器单元 (CPU) 开始执行存放在基本输入输出系统 (BIOS)中的指令。 BIOS, 一种固件,包含一些代码,处理器依靠这些代码启动计算机,与外围标准设备通讯,形成一个最小环境,从而得以加载其他复杂代码,它与计算机所安装的
25、操作系统无关。 计算机启动过程的第一步就是上电自检 (POST),POST 负责完成如下系统和检测功能:执行硬件初始化检测,比如测试当前内存总数 校验启动操作系统所必须的设备,比如硬盘 从位于主板上的 CMOS 中检索系统设置 即便当您停机后, CMOS 存储器中也会保持一些信息,例如存储在 CMOS 存储器中的硬件设置包含启动设置和即插即用信息。当主板上电自检(POST)完成后,那些拥有自己固件的附加板卡 (比如显卡和硬盘控制器) 开始执行自我检测。设定这些系统和外围设备固件参数,请参考相关厂商提供的系统文档。初始化启动阶段在上电自检( POST)阶段后,存储在 CMOS 存储器中的那些设定
26、,比如启动设定,指明了可以引导操作系统的设备。比如,如果启动设定指定软盘作为启动的首选设备,而将硬盘作为次要设备(有些固件中显示为 “A, C“),那么启动时将可能发生如下情形:软驱中插有软盘BIOS 将搜索设定为启动软盘的软驱,如果存在,将会把 0 面 0 道 1 扇区(软盘的启动扇区)加载到内存。如果软盘不能启动,将会提示如下错误:Non-system disk or disk errorReplace and press any key when ready计算机将会一直显示上面的信息,直到您插入一张启动软盘或者驱出软盘重新启动计算机。软驱中没有软盘如果您重新启动计算机后没有插入软盘,计
27、算机将会装载位于主引导记录 (MBR)所在区域的指令。MBR 位于启动硬盘的第一个扇区,包含一些指令(称为启动代码) 和一个标示主分区和扩展分区的表(称为分区表 )。 BIOS 将 MBR 加载到内存,并将控制权移交给 MBR中的代码。计算机然后搜索分区表,查找激活分区。激活分区的第一个扇区包含启动代码,这些代码允许计算机进行如下操作:确定所使用的文件系统 定位并启动操作系统装载文件, Ntldr.如果激活分区不存在或者启动扇区信息丢失、错误,系统将提示如下信息:Invalid partition tableError loading operating systemMissing opera
28、ting systemBOOT: Couldnt find NTLDRNTLDR is missing如果激活分区定位成功,启动分区中的代码将会找到并开始启动 Ntldr ,随后 BIOS 完成使命,释放控制权关于磁盘和文件系统,MBR, 分区以及启动扇区的一些更为详细的信息,请查看 “File Systems“ 和 “Troubleshooting Disks and File Systems“ 指定其他启动设备的启动顺序除此之外,一些计算机固件允许从其他设备引导操作系统,比如:CD-ROMs 网卡 可移动存储介质,比如 LS-120 驱动器或者 Iomega Zip 驱动器 接驳在便携式计
29、算机上的一些存储器在大多数的计算机上都允许您指定启动次序,比如“CDROM, A, C“. 当您指定 “CDROM, A, C“ 这样的启动顺序的时候,那么启动时就会是如下情况:计算机搜索 CD-ROM 作为启动介质。如果存在可以启动的 CD (光盘), 计算机将使用作为启动设备,否则计算机将按照设定的启动次序寻找下一个启动设备。 计算机搜索软盘作为启动介质。如果存在可以启动的软盘,计算机将使用软盘作为启动设备。否则将给出错误信息,并按照设定的启动次序寻找下一个启动设备。 计算机使用硬盘作为启动设备。当 CD-ROM 驱动器和软盘驱动器都是空的时候,计算机将只会使用硬盘作为启动设备。 不过,引
30、导介质上的代码对硬盘进行传输控制的情况是个例外。比如,当您使用可引导的Windows XP Professional 操作系统光盘引导系统的时候, Setup 程序将会检测是否存在可用的硬盘以用于 Windows XP Professional 安装过程,如果检索到,那么系统将会提示如下字样 Press any key to boot from CD ,这将给您一个选择,如果不按任何键就会跳过 CD-ROM 启动。您不能使用一个不能启动的光盘引导系统,同时一张无法启动的光盘将可能增加系统启动时间,如果不打算从光盘引导系统,请在启动前将光盘从 CD-ROM 驱动器中取出。关于启动顺序的选项,请参
31、考您的系统文档。启动装载阶段Ntldr 从启动分区装载启动文件,然后进行如下步骤:设置 x86 系统处理器进入 32 位内存保护模式运行基于 x86 的计算机启动的时候运行在实模式,此在模式下,处理器禁止了一些功能,以便兼容于运行于 8 位和 16 位处理上的软件。随后 Ntldr 将处理器切换到 32 位模式,这种模式下,允许访问大容量内存,并可以运行 Windows XP Professional 启动文件系统 Ntldr 包含一些允许 Windows XP Professional 读写 NTFS 或者文件分配表(FAT16 or FAT32) 文件系统所需要的程序代码。读取 Boot.
32、ini 文件Ntldr 分析 Boot.ini 文件以确定操作系统启动分区的位置。如果使用单系统启动设定,那么 Ntldr 将随后启动 N 初始化硬件检测. 如果存在多系统启动,这可能包括 Windows XP Professional, Windows 2000, Windows NT 4.0, Windows 95, Windows 98, Windows Me, 或者 MS-DOS 以及其他可能的操作系统,您将会在启动的时候看到一个操作系统的选择菜单。注:运行 Windows NT 4.0 的计算机如果需要访问之前挂载在 Windows 2000 or Windows XP Profes
33、sional 下的 NTFS 卷,需要安装至少 Service Pack 4 。关于 NTFS 互操作性信息,请参考 “File Systems“ 如果您选择 Windows XP Professional, Windows 2000, or Windows NT 4.0, Ntldr 将随后启动硬件检测阶段,如果没有就会引导启动扇区的其他系统。如果您选择 Windows 95, Windows 98, Windows Me, or MS-DOS, Ntldr 将会扫描 Bootsect.dos 文件,读取其中所包含的 MBR 代码,并执行它。关于 Boot.ini 的其他信息请参考“Revi
34、ewing and Correcting Boot.ini Settings on x86-based Systems“ 检测硬件和硬件配置文件进入此阶段,Ntldr 启动 N, 后者将执行基础硬件扫描。随后 Ntldr 扫描 Boot.ini 信息,以及保存在注册表中的硬件和软件信息,传送给 Ntoskrnl.exe。N 检测硬件配置信息 (比如 便携计算机上接驳或未接驳设置) 和保存在 Advanced Configuration and Power Interface (ACPI) 表中的信息。 ACPI 兼容固件允许 Windows XP Professional 检测设备电源管理功能
35、和设备资源需求。关于 ACPI 请参考 http:/ Boot.ini 并完成其任务后, Ntldr 启动 N。在 x86 系统上 N 调用系统例行程序收集已经安装的硬件信息,并将收集的信息返回给Ntldr,Ntldr 将这些信息收集后存入内部数据库 ,然后启动 Ntoskrnl.exe 并将信息传递给它。N 所收集的硬件设备的信息如下:信息固件信息,比如日期和时间 总线和板卡类型 显卡 键盘 通讯端口 硬盘 软盘 输入设备 (比如鼠标) 并行端口 安装在 Industry Standard Architecture (ISA) 总线上的设备N 在非 ACPI 兼容计算机的设备扫描中扮演了重要
36、的角色。因为在这些类型的计算机上,固件而不是操作系统决定了分配给设备的资源,对于使用 ACPI 固件的计算机,Windows XP Professional 对硬件设备分配资源。在这个阶段,N 收集硬件信息,Windows XP Professional 为桌面计算机创建一个单独的默认硬件配置文件,而为便携计算机创建两个缺省的配置文件。对于便携计算机,操作系统基于当前计算机上硬件状态选择适当的配置文件。桌面型计算机. Profile 1 便携式计算机. Docked Profile Undocked Profile硬件配置文件对于便携式计算机是非常有用的,因为这些计算机的硬件状态通常都不是静态
37、的,启动的时候,没有列表在特定的硬件配置文件中的设备驱动是不会被加载的。关于创建和使用硬件配置文件的信息,请参考 Windows XP Professional 帮助和支持中心,也可以参考知识库文档 225810, “How to Create Hardware Profiles on Windows 2000Based Mobile Computers,“ 查找此文档,请查询 Web Resources 页面 http:/ 上的知识库链接,同时您也可以查看“Managing Devices“ 和 “Supporting Mobile Users“ 核心装载阶段Ntldr 负责将 Window
38、s 核心层 (Ntoskrnl.exe) 和硬件抽象层 (HAL) 装载到内存。您的系统所使用的 Hal.dll 文件是可以发生变化的。在安装期间,Windows XP Professional 安装程序从若干 HAL 文件中选择一个复制到系统, (请参看表 28.2 关于这些文件的列表) 并重名为 Hal.dll。在设备管理器中查看计算机描述 在运行对话框,输入 devmgmt.msc,点击确定。 在设备管理器展开计算机察看您计算机的描述。 通过比较设备管理器中的描述和下面表 28.2 中的描述, 您可以确定从 Windows XP Professional 操作系统光盘复制到您系统中的 H
39、AL 文件Table 28.2 关于不同 Hal.dll 文件的描述设备管理器中计算机的描述 复制的 HAL 文件 ACPI 多处理器 PC Halmacpi.dll ACPI 单处理器 PC Halaacpi.dll Advanced Configuration and Power Interface (ACPI) PC Halacpi.dll MPS 多处理器 PC Halmps.dll MPS 单处理器 PC Halapic.dll 标准 PC Hal.dll Compaq SystemPro 多处理器或者完全兼容 Halsp.dll 核心层 kernel 和硬件抽象层 HAL 初始化一组软件组件,他们统称为 windows 执行体。Windows 执行体扫描储存在注册表 control sets 中的信息,并启动服务和驱动程序。 关于 Windows executive services, 请查看 “Common Stop Messages for Troubleshooting“ 控制集 Control SetsNtldr 从 HKEY_LOCAL_MACHINESYSTEM 注册表子键中读取相关信息,该子健中的