发表于 2019-04-26 18:00:34 股吧网页版
计算机启动过程详解

?



计算机启动过程详解

? ? ??  打开电源启动机器几乎是电脑爱好者每天必做的事情,面对屏幕上出现的一幅幅启动画面,我们一点儿也不会感到陌生,但是,计算机在显示这些启动画面时都做
了些什么工作呢?相信有的朋友还不是很清楚,本文就来介绍一下从打开电源到出现Windows? 9x的蓝天白云时,计算机到底都干了些什么事情。

?????

  首先让我们来了解一些基本概念。第一个是大家非常熟悉的BIOS(基本输入输出系统),BIOS是直接与硬件打交道的底层代码,它为操作系统提供了控
制硬件设备的基本功能。BIOS包括有系统BIOS(即常说的主板BIOS)、显卡BIOS和其它设备(例如IDE控制器、SCSI卡或网卡等)的
BIOS,其中系统BIOS是本文要讨论的主角,因为计算机的启动过程正是在它的控制下进行的。BIOS一般被存放在ROM(只读存储芯片)之中,即使在
关机或掉电以后,这些代码也不会消失。
?????
  第二个基本概念是内存的地址,我们的机器中一般安装有32MB、64MB或128MB内存,这些内存的每一个字节都被赋予了一个地址,以便CPU访问
内存。32MB的地址范围用十六进制数表示就是0~1FFFFFFH,其中0~FFFFFH的低端1MB内存非常特殊,因为最初的8086处理器能够访问
的内存最大只有1MB,这1MB的低端640KB被称为基本内存,而A0000H~BFFFFH要保留给显示卡的显存使用,C0000H~FFFFFH则
被保留给BIOS使用,其中系统BIOS一般占用了最后的64KB或更多一点的空间,显卡BIOS一般在C0000H~C7FFFH处,IDE控制器的
BIOS在C8000H~CBFFFH处。
?????   好了,下面我们就来仔细看看计算机的启动过程吧。
?????


##1 第一步:


?????
当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向CPU发出并保持一个RESET(重置)信号,让
CPU内部自动恢复到初始状态,但CPU在此刻不会马上执行指令。当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情),
它便撤去RESET信号(如果是手工按下计算机面板上的Reset按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET信号),CPU马上就从地址
FFFF0H处开始执行指令,从前面的介绍可知,这个地址实际上在系统BIOS的地址范围内,无论是Award? BIOS还是AMI
BIOS,放在这里的只是一条跳转指令,跳到系统BIOS中真正的启动代码处。
????


?##1 第二步:


????? 系统BIOS的启动代码首先要做的事情就是进行POST(Power-On Self
?????
Test,加电后自检),POST的主要任务是检测系统中一些关键设备是否存在和能否正常工作,例如内存和显卡等设备。由于POST是最早进行的检测过
程,此时显卡还没有初始化,如果系统BIOS在进行POST的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时只会检查640K常规内
存),那么系统BIOS就会直接控制喇叭发声来报告错误,声音的长短和次数代表了错误的类型。在正常情况下,POST过程进行得非常快,我们几乎无法感觉
到它的存在,POST结束之后就会调用其它代码来进行更完整的硬件检测。
?


???? ##1 第三步:


?????
接下来系统BIOS将查找显卡的BIOS,前面说过,存放显卡BIOS的ROM芯片的起始地址通常设在C0000H处,系统BIOS在这个地方找到显卡
BIOS之后就调用它的初始化代码,由显卡BIOS来初始化显卡,此时多数显卡都会在屏幕上显示出一些初始化信息,介绍生产厂商、图形芯片类型等内容,不
过这个画面几乎是一闪而过。系统BIOS接着会查找其它设备的BIOS程序,找到之后同样要调用这些BIOS内部的初始化代码来初始化相关的设备。

????? 查找完所有其它设备的BIOS之后,系统BIOS将显示出它自己的启动画面,其中包括有系统BIOS的类型、序列号和版本号等内容。


????? ##1 第四步:

?


????? ##1 第五步:

????? 接着系统BIOS将检测和显示CPU的类型和工作频率,然后开始测试所有的RAM,并同时在屏幕上显示内存测试的进度,我们可以在CMOS设置中自行决定使用简单耗时少或者详细耗时多的测试方式。
?


???? ##1 第六步:


????? 内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备,包括硬盘、CD-ROM、串口、并口、软驱等设备,另外绝大多数较新版本的系统BIOS在这一过程中还要自动检测和设置内存的定时参数、硬盘参数和访问模式等。
??


??? ##1 第七步:


????? 标准设备检测完毕后,系统BIOS内部的支持即插即用的代码将开始检测和配置系统中安装的即插即用设备,每找到一个设备之后,系统BIOS都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、DMA通道和I/O端口等资源。
??


??? ##1 第八步:


????? 到这一步为止,所有硬件都已经检测配置完毕了,多数系统BIOS会重新清屏并在屏幕上方显示出一个表格,其中概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。
??


??? ##1 第九步:


????? 接下来系统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,这就是为什么有些机器在每次启动时都会显示出相关信息的原因。
??


??? ##1 第十步:


?????
ESCD更新完毕后,系统BIOS的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动。以从C盘启动为例,系统BIOS
将读取并执行硬盘上的主引导记录,主引导记录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责读取并
执行IO.SYS,这是DOS和Windows9x最基本的系统文件。Windows??
9x的IO.SYS首先要初始化一些重要的系统数据,然后就显示出我们熟悉的蓝天白云,在这幅画面之下,Windows将继续进行DOS部分和GUI(图
形用户界面)部分的引导和初始化工作。
?????   如果系统之中安装有引导多种操作系统的工具软件,通常主引导记录将被替换成该软件的引导代码,这些代码将允许用户选择一种操作系统,然后读取并执行该操作系统的基本引导代码(DOS和Windows的基本引导代码就是分区引导记录)。
?????

  上面介绍的便是计算机在打开电源开关(或按Reset键)进行冷启动时所要完成的各种初始化工作,如果我们在DOS下按Ctrl+Alt+Del组合
键(或从Windows中选择重新启动计算机)来进行热启动,那么POST过程将被跳过去,直接从第三步开始,另外第五步的检测CPU和内存测试也不会再
进行。我们可以看到,无论是冷启动还是热启动,系统BIOS都一次又一次地重复进行着这些我们平时并不太注意的事情,然而正是这些单调的硬件检测步骤为我
们能够正常使用电脑提供了基础。


////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
Boot Sector 结构简介


? Boot Sector 的组成


??? Boot Sector 也就是硬盘的第一个扇区, 它由 MBR (Master Boot Record),
DPT (Disk Partition Table) 和 Boot Record ID? 三部分组成.


??? MBR 又称作主引导记录占用 Boot Sector 的前 446 个字节 ( 0 to 0x1BD ),
存放系统主引导程序 (它负责从活动分区中装载并运行系统引导程序).
??? DPT 即主分区表占用 64 个字节 (0x1BE to 0x1FD), 记录了磁盘的基本分区
信息. 主分区表分为四个分区项, 每项 16 字节, 分别记录了每个主分区的信息
(因此最多可以有四个主分区).
??? Boot Record ID 即引导区标记占用两个字节 (0x1FE and 0x1FF), 对于合法
引导区, 它等于 0xAA55, 这是判别引导区是否合法的标志.
??? Boot Sector 的具体结构如下图所示 (参见 NightOwl 大侠的文章):


????? 0000? |------------------------------------------------|
??????????? |???????????????????????????????????????????????????????????????????? |
??????????? |???????????????????????????????????????????????????????????????????? |
??????????? |???????????? Master Boot Record??????????????????? |
??????????? |???????????????????????????????????????????????????????????????????? |
??????????? |???????????????????????????????????????????????????????????????????? |
??????????? |???????????? 主引导记录(446字节)????????????????? |
??????????? |???????????????????????????????????????????????????????????????????? |
??????????? |???????????????????????????????????????????????????????????????????? |
??????????? |???????????????????????????????????????????????????????????????????? |
????? 01BD? |???????????????????????????????????????????????????????????????|
????? 01BE? |------------------------------------------------|
??????????? |??????????????????????????????????????????????? |
????? 01CD? |???????????? 分区信息? 1(16字节)????????????? |
????? 01CE? |------------------------------------------------|
??????????? |??????????????????????????????????????????????? |
????? 01DD? |???????????? 分区信息? 2(16字节)???????????????|
????? 01DE? |------------------------------------------------|
??????????? |??????????????????????????????????????????????? |
????? 01ED? |???????????? 分区信息? 3(16字节)???????????????|
????? 01EE? |------------------------------------------------|
??????????? |??????????????????????????????????????????????? |
????? 01FD? |???????????? 分区信息? 4(16字节)???????????????|
??????????? |------------------------------------------------????? |
??????????? | 01FE??????????????? | 01FF??????????????????????????????? |
??????????? |???????? 55????????? |?????????? AA????????????????????????????? |
??????????? |------------------------------------------------????? |


?系统启动过程简介


??? 系统启动过程主要由一下几步组成(以硬盘启动为例):


BIOS芯片是主板上一块长方型或正方型芯片,BIOS中主要存放:


自诊断程序:通过读取CMOS RAM中的内容识别硬件配置,并对其进行自检和初始化;


CMOS设置程序:引导过程中,用特殊热键启动,进行设置后,存入CMOS RAM中;


系统自举装载程序:在自检成功后将磁盘相对0道0扇区上的引导程序装入内存,让其运行以装入DOS系统;


主要I/O设备的驱动程序和中断服务;


??? 1. 开机 :-)
??? 2. BIOS 加电自检 ( Power _disibledevent="Title">了解计算机系统启动过程
此文译自 Windows XP Resource Kit Web Resource 中 Understanding the Startup Process 一章


为了诊断和修复启动故障,您需要理解启动过程中发生了什么。第一步隔离启动问题,判断问题是发生在Microsoft? Windows? XP Professional 启动之前还是之后。


启动失败的根本原因,包括相关因素,可能是来自多方面的, 比如用户错误,应用程序错误,硬件问题,病毒问题。如果问题过于严重,您可能需要重新安装 Windows XP Professional 或者从备份介质中恢复文件。


在基于x86的系统上,发生在启动故障 operating system loader (Ntldr)
可能意味着启动文件丢失或者被删除,或者硬盘主引导记录 (MBR)损坏,
或者分区表,或者引导扇区的损坏。如果问题发生在启动期间,那么系统可能存在不兼容的软件或者驱动,不兼容或者设置错误的硬件,或者系统文件损坏。


基于 Itanium 系统的计算机启动或者和 x86 系统类似。详见后面的章节 "Startup Phases for Itanium-based 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) 阶段
初始化启动阶段
启动装载阶段
检测、设置硬件阶段
系统核心装载阶段
登陆阶段
上述的启动过程适用于正常关机后的系统启动或者重新启动,从休眠或者待机状态恢复的情况例外,后者请参考后面的章节 "Resolving Power Management Problems _disibledevent=ControlSet001)。 如果没有错误发生,或者并非由
LastKnownGood 启动项所设置,此 control set 编号将为 Default, Current和 LastKnownGood
注册项所影响 (假定当前用户可以成功登录) Current, 指向此次用于启动系统的控制集? Failed, 指向没有成功启动 Windows
XP Professional 的控制集。当使用 LastKnownGood 选项启动系统时,此项被更新 (gnaw0725注:表示
Windows XP 在其中保存失败启动产生的数据的控件组。 此控件组在用户第一次调用“最近一次的正确配置”选项之前并不实际存在。)?
LastKnownGood,
指向上次用户会话所使用的控制集 。当用户登录的时候,LastKnownGood
控制集被前一次用户会话使用的设置信息所更新。除非您从Windows Advanced Options菜单中选择Last Known Good
Configuration,Ntldr 将使用Default 键值所标示的控制集。


核心层使用Ntldr 提供的内部数据结构创建 HKEY_LOCAL_MACHINE/HARDWARE
子键,其中包含在系统启动阶段收集的硬件信息。这些数据包含信息包括各种硬件组件和分配给每个设备的系统资源。您可以通过查看在启动过程中显示的进度指示
器来监控核心层加载过程 关于 Last Known Good Configuration的相关信息,您可以查阅 "Tools for
Troubleshooting" Windows XP Professional 支持设备扩展。新的或者更新的驱动程序并不存在于 Windows
XP Professional 操作系统光盘上,而是由于硬件厂商提供。驱动程序是核心模式组件,需要Drivers are
kernel-mode components required by devices to function within an
operating system.
服务是支持操作系统功能和应用程序的组件。与用户应用程序相比,服务可以运行在一个不同的上下文,通常不会提供用户可以设置的选项。服务,比如脱机打印
Print Spooler,不需要用户登录即可运行,而且与登陆到系统的用户无关。Windows XP Professional
驱动程序和服务系统文件通常被存放在 systemroot/System32 和 systemroot/System32/Drivers
目录下,以 .exe, .sys, or .dll 等扩展名保存。


驱动程序也是服务,因此在核心层初始化期间,Ntldr 和 Ntoskrnl.exe
按照存储在KEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/servicename
注册表子键中的数值来确定装载的驱动程序和服务次序。例如,Ntldr 首先搜索Services 子键中 Start 值为
0的服务,比如硬盘控制器。当 Ntldr 启动 Ntoskrnl.exe后,一个Ntoskrnl.exe
组件搜索并启动驱动程序,比如网络协议,这些启动项 Start 值为 1.


Table 28.3 ,列出了 Start 项的值(十进制)。Boot 类型的驱动 (Start 值为0的项) 文件系统驱动程序的Start值始终为0,因为启动 Windows XP Professional 需要它们的支持。


表 28.3 <服务名> Start项的赋值
值 Start类型 关于 Start 项赋值的描述
0 Boot 基于x86系统 Ntldr 或者Itanium IA64ldr上的固件调用模式指定装载的驱动,如果没有错误发生,核心层Kernel将启动该驱动程序
1 System 指定在系统核心层 Kernel 初始化期间被 Windows XP Professional boot drivers 所调用的驱动程序
2 Auto load 指定在系统启动时被会话管理器 (Smss.exe)或者服务控制器 (Services.exe)所加载的驱动程序或者服务。
3 Load on demand 指定一个通过用户、进程或者其他服务手动启动的驱动程序或者服务
4 Disabled 指定一个禁止(不启动)的驱动程序或者服务。



表 28.4 列出了Type 项的一些值(十进制)


表 28.4?? <服务名> Type 项的赋值


值? Type 项赋值描述
1 指定一个核心设备驱动程序
2 指定一个文件系统驱动程序 (也是一个核心设备驱动程序)
4 指定参数传递给设备驱动程序
16 指定一个遵循服务控制协议的服务,该服务可以独立运行在一个进程中,且可以为服务控制器所启动
32 指定一个可以和其他服务共享进程的服务



一些驱动程序和服务需要在启动之前确定之间的相互依赖关系。通过查看


HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/servicename下
DependOnGroup和 DependOnService? 项
,您可以找到这个依存关系的列表。关于使用依赖关系阻止或者延迟驱动程序或者服务启动的信息,请查看 "Temporarily Disabling
Services" 。该服务子键也包含了影响驱动程序和服务如何加载的信息,表 28.5 中描述了其中的一部分。


表 28.5?? 注册表其他 <服务名> 项


项 描述
DependOnGroup 此组中所描述的项目,至少有一个在当前服务装载前必须被加载。子键


SYSTEM/CurrentControlSet/Control/ServiceGroupOrder 包含服务组装载次序
DependOnService 此列表中描述的服务,必须在当前服务之前加载。
Description 组件描述
DisplayName 指定组件的显示名称
ErrorControl 控制一个驱动程序错误是需要系统使用 LastKnownGood 控制集还是提示一个错误停止信息。
如果值为 0x0 (忽略,没有错误报告), 不会显示警告信息,继续执行启动。
如果值为 0x1 (普通,报告错误), 将错误记录到系统日志并提示警告信息,但继续启动过程。
如果值为 0x2 (严重), 将事件记录到系统日志,使用 LastKnownGood 设置,重新启动系统,执行启动过程。
如果值为 0x3 (关键), 将事件记录到系统日志,使用 LastKnownGood 设置,重新启动系统。如果当前启动已经使用 LastKnownGood 设定,则


显示错误停止信息。
Group 指定驱动程序或者服务隶属的组。此项设定允许驱动程序或者服务同步启动(比入:文件系统驱动程序)注册表子键


HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/ServiceGroupOrder 中的 List 项指定了组项启动顺序。
ImagePath 如果存在ImagePath项,该项用于标示驱动程序或者服务的路径和文件名。 您可以使用Windows Explorer 核实这些路径和文件名。
ObjectName 指定一个对象名。如果 Type 项指定一个 Windows XP Professional 服务,那么它就代表服务运行时用于登陆的帐户名。
Tag 指定一个驱动程序在驱动程序组中的启动顺序。



会话管理器
当所有标志为 Boot 和 Startup 数据类型的注册表子键执行完成后, kernel 开始加载会话管理器 Session Manager,由它 (Smss.exe) 执行后续重要的初始化工作,比如:


创建系统环境变量
启动Windows 子系统核心保护模式 (通过 systemroot/System32/Win32k.sys
实现), 这将 Windows XP Professional 从文本模式切换至图形模式。基于Windows的应用程序都运行在 Windows
子系统上,这个环境下允许应用程序访问操作系统功能函数,比如在屏幕上显示信息。
启动 Windows 子系统用户模式部分 (通过 systemroot/System32/Csrss.exe 实现).
启动登陆管理器 (通过? systemroot/System32/Winlogon.exe 实现).
创建辅助虚拟内存页文件
为存放在下列子键中的文件列表,执行延迟的重命名操作。 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session


Manager/PendingFileRenameOperations. 比如:当您安装了一个新的驱动程序或者应用程序后,系统可能会提示您重新启动,以便 Windows XP Professional 能够替换当前正在使用的文件。
Windows

子系统和基于它执行的应用程序是用户模式进程,它们不能直接访问硬件和设备驱动。用户模式进程执行优先级低于核心进程,当操作系统需要更多内存的时候,它
可以将被用户模式下进程使用的内存缓存到虚拟页面文件。关于用户模式和核心模式组件的信息,请参考"Common Stop Messages for
Troubleshooting" 。


会话管理器Session Manager 将搜索注册表,以获得服务信息,注册表键值如下:


HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager
包含一个在服务装载之前运行的命令列表? Autochk.exe 工具由 BootExecute 项的值和存储在 Memory
Management 子键中的虚拟内存 (页面文件) 设置所指定。Autochk, 是 Chkdsk
工具的一个版本,如果操作系统检测到一个文件系统错误,需要在完成启动过程之前进行修复,那么就会在启动的时候运行它。关于 Autochk 和
Chkdsk, "Troubleshooting Disks and File Systems" 。
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session
Manager/Subsystems 包含一个有效子系统的列表。比如 Csrss.exe 包含Windows 子系统中的一部分,用户模式。?
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/servicename. 服务控制管理器(Service Control Manager) 初始化那些设置为启动自动加载的服务。



登录阶段
在此阶段Windows 子系统启动 Winlogon.exe,此模块为系统服务,以完成用户的登入或者登出的动作。 Winlogon.exe 所完成的功能如下:


启动服务子系统 (Services.exe), 也称为服务控制管理器 (SCM).
启动本地安全性授权进程 Local Security Authority (LSA) (Lsass.exe).
在出现开始登陆提示时,侦测 CTRL ALT DEL 组合键。

形化识别和验证 Graphical Identification and Authentication (GINA)
组件获取用户名和密码,并将这些信息传送给 LSA 进行安全验证。如果用户提供有效验证,那么通过使用Kerberos V 5 验证协议或者
NTLM 可以或者访问权限。关于安全组件的信息,比如 LSA, Kerberos V5 协议或者 NTLM, Distributed
Systems Guide of the Microsoft? Windows? 2000 Server Resource Kit.


当服务控制管理器Service Control Manager 初始化自动装载服务项和驱动时,Winlogon 开始初始化安全和认证组件,当用户登录后,系统进如下动作:


更新控制集Control sets 。 控制集为 LastKnownGood 注册项所影响,并随 Clone
项中的内容一同更新。Clone, 是CurrentControlSet 项的一份拷贝,
当您每次启动计算机时被创建。当用户登录的时候,LastKnownGood 控制集被前一次用户会话使用的设置信息所更新。
实施策略。组策略
策略设定开始实施于用户和计算机帐户。关于组策略的相关信息,请查看"Planning Deployments," "Managing
Desktops," 和 "Authorization and Access Control" ,以及Windows 2000 Server
Resource Kit中分布式系统指南中关于 "Group Policy" 的章节,同


时您也可以参考其网站资源站点 www.eastmoney.com/windows/reskits/webresources 上关于 Change and Configuration Management


Deployment Guide 的链接。
运行启动程序。 Windows XP Professional 启动登陆脚本,启动程序组,并且启动在如下注册表子键和启动目录所关联的服务项:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Runonce
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/policies/Explorer/Run
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run
HKEY_CURRENT_USER/Software/Microsoft/Windows NT/CurrentVersion/Windows/Run
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/RunOnce
systemdrive/Documents and Settings/All Users/Start Menu/Programs/Startup
systemdrive/Documents and Settings/username/Start Menu/Programs/Startup
windir/Profiles/All Users/Start Menu/Programs/Startup
windir/Profiles/username/Start Menu/Programs/Startup
windir/Profiles 目录文件夹仅存在于从Windows NT 4.0升级的系统上。


直到用户成功登陆到计算机后,Windows XP Professional 启动过程最终完成。


即插即用检测
即插即用检测不与登陆过程同步运作,它依赖于系统固件,硬件,设备驱动程序以及操作系统功能,从而能够检测和枚举新的设备。 Windows


XP Professional 为使用ACPI固件的设备优化即插即用支持,并且允许增强功能,比如硬件资源共享。


当即插即用能够很好协调工作时,Windows XP Professional 能够在最小用户参与的前提下,检测到新的设备,分配系统资源,安装或者请求


驱动程序。ACPI 特性对于移动用户是非常有用的,这些特性可以很好的支持待机、休眠、冷热插拔等功能。


关于即插即用检测和系统资源,请参考 "Managing Devices" and "Supporting Mobile Users"


?
  BIOS即基本输入/输出系统。实际上它是被固化在计算机ROM(只读存储器)芯片上的一组程序,为计算机提供最低级的、最直接的硬件控制


与支持。更形象地说,BIOS就是硬件与软件程序之间的一个"桥梁"或者说是接口(虽然它本身也只是一个程序) ,负责解决硬件的即时需求,并


按软件对硬件的操作要求具体执行。BIOS的具体功能和作用如下:


??? BIOS中断调用,即BIOS中断服务程序。它是微机系统软、硬件之间的一个可编程接口,用于程序软件功能与微机硬件实现的衍接。


DOS/Windows操作系统对软、硬盘、光驱与键盘、显示器等外围设备的管理即建立在系统BIOS的基础上。程序员也可以通过 对INT 5、INT 13等


中断的访问直接调用BIOS中断例程。


??? BIOS系统设置程序,微机部件配置情况是放在一块可读写的CMOS RAM芯片中的,它保存着系统CPU、软硬盘驱动器、显示器、键盘等部件的


信息。 关机后,系统通过一块后备电池向CMOS供电以保持其中的信息。如果CMOS中关于微机的配置信息不正确,会导致系统性能降 低、零部


件不能识别,并由此引发一系统的软硬件故障。在BIOS ROM芯片中装有一个程序称为"系统设置程序",就是用来 设置CMOS RAM中的参数的。这


个程序一般在开机时按下一个或一组键即可进入,它提供了良好的界面供用户使用。这个设置 CMOS参数的过程,习惯上也称为"BIOS设置"。新


购的微机或新增了部件的系统,都需进行BIOS设置。


??? POST上电自检,接通微机的电源,系统将执行一个自我检查的例行程序。这是BIOS功能的一部分,通常称为POST--上电自检(Power On Self


Test)。完整的POST自检包括对CPU、系统主板、基本的640KB内存、1MB以上的扩展内存、系统ROM BIOS的测试;CMOS中系统配置的校验;初始


化视频控制器,测试视频内存、检验视频信号和同步信号,对CRT接口进行测试;对键盘、软驱、硬盘及CD-ROM子系统作检查;对并行口(打印


机)和串行口(RS232)进行检查。自检中如发现有错误,将按两种情况处理:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没


完成,不能给出任何提示或信号;对于非严重故障则给出提示或声音报警信号(自检响铃代码的含义见下文),等待用户处理。


??? BIOS系统启动自举程序在完成POST自检后,ROM BIOS将按照系统CMOS设置中的启动顺序搜寻软硬盘驱动器及CDROM、网络服务器等有效的启


动驱动器 ,读入操作系统引导记录,然后将系统控制权交给引导记录,由引导记录完成系统的启动。
  
??? 常见BIOS芯片的识别主板上的ROM BIOS芯片是主板上唯一贴有标签的芯片,一般为双排直插式封装(DIP),上面印有"BIOS"字样。虽然有些


BIOS 芯片没有明确印出"BIOS",但凭借外贴的标签也能很容易地将它认出。586以前的BIOS多为可重写EPROM芯片,上面的标签起着保护BIOS内


容的作用(紫外线照射会使EPROM内容丢失),不能随便撕下。 586以后的ROM BIOS多采用Flash ROM(快闪可擦可编程只读存储器),通过跳线开


关和系统配带的驱动程序盘,可以对Flash ROM进行重写,方便地实现BIOS升级。 常见的BIOS芯片有AMI、Award、Phoenix等,在芯片上都能见


到厂商的标记。
  
??? 目前市面上较流行的主板BIOS主要有 Award BIOS、AMI BIOS、Phoenix BIOS三种类型。Award BIOS是由Award Software公司开发的BIOS产


品,在目前的主板中使用最为广泛。Award BIOS功能较为齐全,支持许多新硬件,目前市面上多数586主机板和PⅡ主板都采用了这种BIOS;AMI


BIOS是AMI公司出品的BIOS系统软件,开发于80年代中期,早期的286、386大多采用AMI BIOS,它对各种软、硬件的适应性好,能保证系统性能


的稳定,到90年代后,绿色节能电脑开始普及,AMI却没能及时推出新版本来适应市场,使得AMI BIOS失去了大半壁江山;Phoenix BIOS是


Phoenix公司产品,Phoenix意为凤凰,有完美之物的含义。Phoenix BIOS 多用于高档的586原装品牌机和笔记本电脑上,其画面简洁,便于操


作。?


 


▲BIOS是什么?


?? BIOS全名为(Basic Input. Output System)即基本输入/输出系统,是电脑中最基础的而又最重要的程序。我们把这一段程序存放在一个不需


要电源的记忆体(芯片)中,这就是平时所说的BIOS。它为计算机提供最低级的、最直接的硬件控制,计算机的原始操作都是依照固化在BIOS


里的内容来完成的。准确地说,BIOS是硬件与软件程序之间的一个“转换器”或者说是接口(虽然它本身也只是一个程序),负责解决硬件的即


时需求,并按软件对硬件的操作要求具体执行。计算机用户在使用计算机的过程中,都会接触到BIOS,它在计算机系统中起着非常重要的作用


 
▲BIOS的功能
??? BIOS ROM 芯片不但可以在主板上看到,而且BIOS管理功能如何在很大程度上决定了主板性能是否优越。BIOS管理功能包括:


??? 1.BIOS中断服务程序实质上是微机系统中软件与硬件之间的一个可编程接口,主要用于程序软件功能与微机硬件之间 接。例如,WINDOWS98


对软驱,光驱,硬盘等管理,中断的设置等服务、程序。


??? 2. BIOS系统设置程序:微机部件配置记录是放在一块可写的CMOS RAM芯片中的,主要保存着系统的基本情况,CPU特性,软硬盘驱动器等部


件的信息。在BIOS ROM 芯片中装有“系统设置程序”,主要来设置CMOS RAM中的各项参数。这个程序在开机时按某个键就可进入设置状态,并


提供良好的界面。


??? 3.POST上电自检:微机接通电源后,系统首先由(Power On Self Test,上电自检)程序来对内部各个设备进行检查。通常完整的POST自检将


包括对CPU,640K基本内存,1M以上的扩展内存,ROM,主板,CMOS存储器,串并口,显示卡,软硬盘子系统及键盘进行测试,一旦在自检中发现问题,


系统将给出提示信息或鸣笛警告。


??? 4. BIOS系统启动自举程序:系统完成POST自检后,ROM BIOS就首先按照系统CMOS设置中保存的启动顺序搜索软硬盘驱动器及CD-ROM,网络


服务器等有效地启动驱动器,读入操作系统引导记录,然后将系统控制权交给引导记录,并由引导记录来完成系统的顺序启动。



 
?? BIOS的主要作用有三点


?? 1.自检及初始化:开机后BIOS最先被启动,然后它会对电脑的硬件设备进行完全彻底的检验和测试。如果发现问题,分两种情况处理:严重


故障停机,不给出任何提示或信号;非严重故障则给出屏幕提示或声音报警信号,等待用户处理。如果未发现问题,则将硬件设置为备用状态


,然后启动操作系统,把对电脑的控制权交给用户。


?? 2.程序服务:BIOS直接与计算机的I/O(Input/Output,即输入/输出)设备打交道,通过特定的数据端口发出命令,传送或接收各种外部设


备的数据,实现软件程序对硬件的直接操作。


?? 3.设定中断:开机时,BIOS会告诉CPU各硬件设备的中断号,当用户发出使用某个设备的指令后,CPU就根据中断号使用相应的硬件完成工作


,再根据中断号跳回原来的工作。


?? BIOS对整机性能的影响


?? 从上面的描述可以看出:BIOS可以算是计算机启动和操作的基石,一块主板或者说一台计算机性能优越与否,从很大程度上取决于板上的


BIOS管理功能是否先进。大家在使用Windows 95/98中常会碰到很多奇怪的问题,诸如安装一半死机或使用中经常死机;Windows 95/98只能工


作在安全模式;声卡解压卡显示卡发生冲突;CD-ROM挂不上;不能正常运行一些在DOS、Windows 3.x下运行得很好的程序等等。事实上这些问


题在很大程度上与BIOS设置密切相关。换句话说,你的BIOS根本无法识别某些新硬件或对现行操作系统的支持不够完善。在这种情况下,就只


有重新设置BIOS或者对BIOS进行升级才能解决问题。另外,如果你想提高启动速度,也需要对BIOS进行一些调整才能达到目的,比如调整硬件


启动顺序、减少启动时的检测项目等等。


?? BIOS和CMOS相同吗?


?? BIOS是一组设置硬件的电脑程序,保存在主板上的一块ROM芯片中。而CMOS通常读作C-mo-se(中文发音“瑟模室”),是电脑主板上的一块


可读写的RAM芯片,用来保存当前系统的硬件配置情况和用户对某些参数的设定。CMOS芯片由主板上的充电电池供电,即使系统断电,参数也不


会丢失。CMOS芯片只有保存数据的功能,而对CMOS中各项参数的修改要通过BIOS的设定程序来实现。


?? 关于CMOS放电


 常常听到计算机高手或者非高手说“口令忘啦?给CMOS放电吧。”,这到底是什么意思呢?
 如果你在计算机中设置了进入口令,而你又碰巧忘记了这个口令,你将无法进入计算机。不过还好,口令是存储在CMOS中的,而CMOS必须有


电才能保持其中的数据。所以,我们可以通过对CMOS 的放电操作使计算机“放弃”对口令的要求。
?? 具体操作如下:  


 打开机箱,找到主板上的电池,将其与主板的连接断开(就是取下电池喽),此时CMOS将因断电而失去内部储存的一切信息。再将电池接通


,合上机箱开机,由于CMOS已是一片空白,它将不再要求你输入密码,此时进入BIOS设置程序,选择主菜单中的“LOAD BIOS DEFAULT”(装入


BIOS缺省值)或“LOAD SETUP DEFAULT”(装入设置程序缺省值)即可,前者以最安全的方式启动计算机,后者能使你的计算机发挥出较高的


性能。?


郑重声明:用户在财富号/股吧/博客社区发表的所有信息(包括但不限于文字、视频、音频、数据及图表)仅仅代表个人观点,与本网站立场无关,不对您构成任何投资建议,据此操作风险自担。请勿相信代客理财、免费荐股和炒股培训等宣传内容,远离非法证券活动。请勿添加发言用户的手机号码、公众号、微博、微信及QQ等信息,谨防上当受骗!
郑重声明:用户在社区发表的所有资料、言论等仅仅代表个人观点,与本网站立场无关,不对您构成任何投资建议。用户应基于自己的独立判断,自行决定证券投资并承担相应风险。《东方财富社区管理规定》