2022年电脑启动原理 .pdf
计算机的启动原理和流程引导过程我们几乎每天都要打开电源启动机器,面对屏幕上出现的一幅幅启动画面,我们一点儿也不会感到陌生,但是,计算机在显示这些启动画面时都做了些什么工作呢?打开计算机机电源后到计算机准备接受你发出的命令之间计算机所运行的过程称为引导(Boot )过程。我们知道,当关闭电源后,RAM 的数据将丢失,因此,计算机不是用RA来保持计算机的基本工作指令,而是使用另外的方法将操作系统文件加载到RAM 中,再由操作系统接管对机器的控制。这是引导过程中的一个主要部分。总的说来,引导过程有下面几个步骤: 加电 打开电源开关,给主板和内部风扇供电。 启动引导程序CPU 开始执行存储在ROM BIOS 中的指令。 开机自检 计算机对系统的主要部件进行诊断测试。 加载操作系统计算机将操作系统文件从磁盘读到RAM 中。 检查配置文件,定制操作系统的运行环境读取配置文件,根据用户的设置对操作系统进行定制。 准备读取命令和数据计算机等待用户输入命令和数据。= (一) 加电引导过程的第一步就是通电。电扇开始运转,电源指示灯应该变亮,否则说明系统电源供应有问题,或是主板等部件和机箱发生短路。(二) 启动引导程序CPU 是从内存地址FFFF0H 处开始执行指令的,从前面的介绍可知,这个地址实际上在系统 BIOS 的地址范围内,无论是哪家公司的 BIOS,放在这里的只是一条跳转指令,跳到系统 BIOS 中真正的启动代码处。(三) 开机自检系统 BIOS 的启动代码首先要做的事情就是进行POST (PowerOn Self Test, 加电后自检) ,POST 的主要任务是检测系统中一些关键设备是否存在和能否正常工作,例如内存和显卡等设备。 由于 POST 是最早进行的检测过程,此时显卡还没有初始化,如果系统 BIOS 在进行POST 的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时只会检查640K 常规内存),那么系统BIOS 就会直接控制喇叭发声来报告错误。正常情况下,POST名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 过程进行得非常快。POST 结束之后,系统BIOS 将查找显卡的BIOS 并调用它的初始化代码,由显卡BIOS 来初始化显卡,此时多数显卡都会在屏幕上显示出一些初始化信息,介绍生产厂商、图形芯片类型等内容。系统BIOS 接着会查找其他设备的BIOS 程序,找到之后同样要调用这些BIOS 内部的初始化代码来初始化相关的设备。查找完所有其他设备的BIOS 之后, 系统 BIOS 将显示出它自己的启动画面,其中包括系统BIOS 的类型、序列号和版本号等内容。然后检测和显示CPU 的类型和工作频率,然后开始测试所有的RAM ,并同时在屏幕上显示内存测试的进度。内存测试通过之后,系统BIOS 将开始检测系统中安装的一些标准硬件设备,包括硬盘、CDROM 、串口、并口、软驱等设备,另外绝大多数较新版本的系统BIOS 在这一过程中还要自动检测和设置内存的定时参数、硬盘参数和访问模式等。标准设备检测完毕后, 系统 BIOS 内部支持即插即用的代码将开始检测和配置系统中安装的即插即用设备, 每找到一个设备之后,系统 BIOS 都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、DMA 通道和 I/O(输入输出)端口等资源。经过上面几步, 所有硬件都已经检测配置完毕,多数系统BIOS 会重新清屏并在屏幕上方显示出一个表格,其中概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。接下来系统BIOS 将根据CMOS 配置更新ESCD(Extended System Configuration Data ,扩展系统配置数据),ESCD 是系统 BIOS 用来与操作系统交换硬件配置信息的一种手段。通常 ESCD 数据只在系统硬件配置发生改变后才会更新,所以不是每次启动机器时我们都能够看到 “Update ESCD Success” 这样的信息。(四) 加载操作系统在 POST 成功之后, 系统 BIOS 的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动,定位并加载操作系统文件。首先计算机查找两个操作系统文件:Io.sys 和Msdos.sys。如果这两个文件不存在,引导过程会显示如下信息:“ Non -system disk or disk error”或者 “ Invalid system disk ”。提示:如果设定的启动顺序是先软盘后硬盘,出现上述提示时要检查一下软驱中是否放的是系统盘(包含上述系统文件)。如果不是系统盘,可将软盘取出,在按任意键后,计算机将从下一个驱动器(硬盘)查找系统文件。然 后 , 微处 理 器将 试 图加 载 另 外一 个 操作 系 统文 件C 。 如 果 加 载 失败( C文件不 存 在或版 本 不 对) ,会 出 现 故障 信 息 :“ Bad or missing command interpreter”,而且你发出的所有命令计算机都无法执行,因为C 是专门用来解释这些命令的。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - (五) 检查配置文件并定制操作系统的运行环境在引导过程初期,计算机通过检查CMOS 中的信息对硬件作初始化等工作。但具体到不同的操作系统中,计算机还需要更多的配置信息来正确使用所有的设备并创建个性化的运行环境。我们以 DOS 和 Windows 两种常用的PC 操作系统为例,在DOS 中我们常通过创建并编辑Autoexec.bat 文件实现开机后自动执行某些命令,比如设置硬盘缓冲区大小、自动启动汉字环境等; 在另一个文件Config.sys 中可以加载鼠标、光驱、 声卡等设备的DOS 驱动程序等,使在 DOS 中可以使用这些设备。在 Windows 中对运行环境进行配置的方法更多,比如修改注册表,编辑System.ini、 Win.ini 等系统配置文件,或将希望启动完Windows 后立即执行的内容放入Windows 的启动( Startup)组中。(六) 准备接收命令和数据当计算机准备好接收命令时就结束了引导过程。通常在引导结束后,计算机会显示操作系统的屏幕或提示符。如果你使用的是Windows ,那么就会看到Windows 的桌面;如果使用的是 DOS,就会看到操作系统提示符(如C:;A: 等)。上面介绍的整个过程便是计算机在打开电源开关(或按 Reset键)进行冷启动时所要完成的引导工作。 如果我们在DOS 下按 CtrlAlt Del 组合键 (或从 Windows 中选择重新启动计算机)来进行热启动,那么POST 过程将被跳过去,另外检测CPU 和内存测试也不会再进行。我们可以看到, 无论是冷启动还是热启动,系统 BIOS 都一次又一次地重复进行着这些我们平时并不太注意的事情,然而正是这些单调的步骤为我们能够正常使用电脑提供了基础。计算机启动原理(软硬详解)对了解计算机启动有什么用呢?不就是按一个电源就OK 了,这可能是很多新手不解的问题。没这么简单的,这其中涉及到了大量的软硬知识,如果真正了解这样原理会对你今后有很大的帮助。各位看官在看完了这贴之后,可能会头昏,眼花,精神不振,至精神失常,七孔流血,不孕不育(呵呵打住)。虽说真是有点不好理解,但是我相信大家在看了七七四十九遍之后一定会明白的。好了不开玩笑了,下面是主题计算机启动过程是个很复杂的过程,它有一个非常完善的硬件自检机制,在通电自检短暂的几秒钟里,计算机要完成100多个检测步骤。首先我们先来了解两个概念:第一个是BIOS(基本输入输出系统),BIOS 是一组被 “ 固化 ” 在计算机主板中,直接与硬件打交道的程序,计算机的启动过程是在主板BIOS 的控制下进行的BIOS 包括有系统BIOS ,即常说的主板 BIOS 其它设备(例如IDE 控制器、 SCSI 卡或网卡等的BIOS )其中系统BIOS是本文要讨论的主角.因为计算机的启动过程正是在它的控制下进行的. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 第二个基本概念是内存的地址,我们的机器中一般安装有32MB 、64MB 或 128MB 内存,这些内存的每一个字节都被赋予了一个地址,以便 CPU 访问内存。 32MB 的地址范围用十六进制数表示就是01FFFFFFH,其中 0FFFFFH 的低端 1MB 内存非常特殊, 因为最初的 8086 处理器能够访问的内存最大只有1MB ,这 1MB 的低端 640KB 被称为基本内存,而 A0000H BFFFFH 要保留给显示卡的显存使用,C0000HFFFFFH 则被保留给BIOS使用,其中系统BIOS 一般占用了最后的64KB 或更多一点的空间,显卡BIOS 一般在 C0000HC7FFFH 处, IDE 控制器的BIOS 在 C8000HCBFFFH 处。 下面将分为两个部分介绍,硬件部分和软件部分. 计算机启动原理(软硬详解)2 1.硬件部份一系统 BIOS 初始化当我们按下电源开关(POWER) 时,电源开始供电,计算机的电源指示灯亮起.电源就开始向主板和其它设备供电,此时电压还没有完全稳定,主板控制芯片组会根据CMOS 中的 CPU 主频设置向CPU 发出一个Reset(重置 )信号,让 CPU 内部自动恢复到初始状态,但CPU在此刻不会马上执行指令。当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情),它便撤去RESET 信号(如果是手工按下计算机面板上的Reset 按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET 信号), CPU 马上从地址 FFFF0H 处执行一条跳转指令,从前面的介绍可知,这个地址实际上在系统BIOS 的地址范围内,无论是Award BIOS 还是 AMI BIOSCPU放在这里的只是一条跳转指令,跳到系统 BIOS 中真正的启动代码处。二 POST(Power On Self Test ,加电自检 )。系统 BIOS 首先要做的事情就是进行POST(Power On Self Test ,加电自检 )。 POST 的主要任务是检测系统中的一些关键设备电源、CPU 芯片、 BIOS 芯片、定 ?.餍酒 菔辗呒缏贰 MA 控制器、中断控制器以及基本的64K 内存和内存刷新电路等是否存在和能否正常工作,如内存和显卡等。POST 过程进行得非常快,我们几乎无法感觉到它的存在如果POST 自检不成功系统的喇叭发出刺耳的警报声,具体的错误一般可以从警报声的长短和次数来判断 .(小说明:为什么这时的错误要用声音来报警而不是在屏幕上显示呢,这是因为POST 的检测过程在显示卡初始化之前,也就是说这时还是“ 黑屏 ” 阶段, 所以在 POST 的过程中发现了一些致命错误是无法在屏幕上显示出来的.) 三,显卡检测自检通过后,系统BIOS 将查找显示卡的BIOS ,存放显示卡BIOS 的 ROM 芯片的起始地址通常在 C0000H 处,系统 BIOS 找到显卡BIOS 之后调用它的初始化代码,由显卡BIOS来完成显示卡的初始化显示器开始有显示,BIOS 将检查显示卡的BIOS,找到之后调用它的初始化代码,由显卡BIOS 找来完成显示卡的初始化。大多数显示卡在这个过程通常名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - 会在屏幕上显示出一些显示卡的信息,如生产厂商、图形芯片类型、显存容量等内容,这也就是我们开机看到的第一个画面了。四.CPU,内存检测自此系统就具备了最基本的运行条件.可以对主板上的其它部分进行诊断和测试(例如CMOS 错误)再发现故障时,屏幕上会有提示,但一般不死机,当查找完所有其他设备的BIOS 之后,系统BIOS 将显示它自己的启动画面,其中包括有系统BIOS 的类型,序列号和版本号等内容,同?.聊蛔蟊咧猩辖腔岢鱿种靼逍畔耄 IOS 的日期、 主板芯片组型号、厂家的代码等。接着系统BIOS 将检测 CPU 的类型和工作频率,并将结果显示在屏幕上;然后BIOS 开始测试主机的内存容量,并在屏幕上显示内存测试数值。(就是大家所熟悉的屏幕上半部分那个飞速翻滚的内存计数器)当 BIOS 画面最下方出行”DEL 的文字时就可以按下键盘上的”DEL 键(按照你的主板说明按下相应的键)进行BIOS 设置了如图2:四标准硬件设备与即插即用设备检测下一步BIOS 将开始检测系统中安装的一些标准硬件设备:硬盘、CD-ROM 、软驱、串行和并行接口等设备。标准设备检测完毕后,系统BIOS 内部支持即插即用的代码将开始检测和配置系统中安装的即插即用设备,同时为该设备分配中断、DMA 通道和 I/O 端口等资源,到此所有硬件都已经检测配置完毕BIOS 会重新清屏并在屏幕上方显示出一个系统配置表,其中简略地列出安装的各种标准硬件设备及相关工作参数。最后系统BIOS 将更新ESCD(Extended System Configuration Data ,扩展系统配置数据)。( ESCD是系统 BIOS 用来与操作系统交换硬件配置信息的数据,这些数据被存放在CMOS 中。通常 ESCD 数据只在系统硬件配置发生改变后才会进行更新,并不是每次启动都需要更新。 ESCD 数据更新完毕后,系统BIOS 的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动)六。 硬盘引导一上述过程完毕了之后,首先BIOS 检测硬盘并进行复位,然后根据用户在BIOS 的设置来检查从哪一个设置引导系统,例如软驱,硬盘,光驱等,而其中最常用的就是硬盘引导了从硬盘引导之后,BIOS 把主引导记录读入内存,关将控制权交给主引导程序,检查分区表,寻找活动分区(这就是为什么在用Fdisk 分区时要设置活动分区了)找到之后再将控制权交给活动分区的引寻记录,由引寻记录来引导操作系统若成功引导接着屏幕便出行系统启动的界面如XP 的标志画面 ,图 3 可以按下 F8 键选择启模式 如不成功将会出现出错信息,例子:如果硬盘上的分区表被破坏后,启动系统时往往会出现“Non -System disk or disk error ,replace disk and press a key to reboot ”(非系统盘或盘出错)、“Error Loading Operating System”(装入 DOS 引导记录错误) 或者 “No ROM Basic ,System Halted ”(不能进入ROM B名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - asic,系统停止响应)就无法启动系统了为了照顾新手下面给出一下说明,请认真看:硬盘主引导记录(MBR ):硬盘主引导记录区位于硬盘的首部,负责搜索硬盘可以启动的分区对于DOS 来说,它是由Fdisk 生成的主引导记录着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的分区引导记录活动分区:当我们在DOS 用 Fdisk 命令硬盘分区时,一定要设一个主分区为活动分区,不然系统无法启动一般来说活动分区就是我们平时用的系统盘C 盘分区表( DPT) :分区表DPT 则以 80H 或 00H 为开始标志,以55AAH 为结束标志,位于主引导扇区的最末端。整个分区表决定了硬盘中的分区数量,每个分区的起始及终止扇区、大小以及是否为活动分区等。活动分区的引寻记录:对于不同的系统,引导记录读取执行的文件是不一样的,对于DOS 和 WIN9X 而言,分区引导记录执行”IO sys 对于WIN2000XP来说,则是由 ”NTLDR程序来执行的以上介绍的便是计算机在打开电源开关(或按Reset 键)进行冷启动时所要完成的各种初始化工作,如果我们在DOS 下按 CtrlAlt Del 组合键(或从Windows 中选择重新启动计算机)来进行热启动,那么 POST 过程将被跳过去, 直接从第三步开始,另外的检测CPU 和内存测试也不会再进行。我们可以看到,无论是冷启动还是热启动,系统BIOS 都一次又一次地重复进行着这些我们平时并不太注意的事情,然而正是这些单调的硬件检测步骤为我们能够正常使用电脑提供了基础。- 软件部方(以XP 系统为例说明)5注明:要让 Windows XP 正确启动,在启动和系统分区中必须有以下文件:Ntldr 位于系统分区根目录中Boot.ini 位于系统分区根目录中N 位于系统分区根目录中Ntoskrnl.exe 位于启动分区中的WindowsSystem32 目录中Hal.dll 位于启动分区中的WindowsSystem32 目录中注册表文件位于启动分区中的WindowsSystem32 ConfigSystem目录中设备驱动程序位于启动分区中的WindowsSystem32 Drivers目录中如果计算机中还装有Win9X/Me ,那么在系统分区根目录中必须有Bootsect.dos;如果计算机中有SCSI 设备,系统分区根目录中还必须有Ntbootdd.sys。1.系统启动引导阶段名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - Ntldr 读取将 boot.ini 的内容, 定位操作系统所在的启动分区。如果计算机中只有一个操作系统, Ntldr会自动执行下一步。如果计算机中有多个操作系统,那么这时会有一个选单让你选择你要启动的操作系统,当你选择Windows NT 4.0/2000/XP/2003时, Ntldr也会执行下一步;当你选择Windows 9X/Me时, Ntldr 会把计算机的控制权交给Bootsect.dos. 检测和配置硬件阶段启动 Windows XP 后(以 XP 说明), Ntldr 启动 。 将收集计算机硬件信息列表并将列表返回到Ntldr ,这样做的目的是便于以后将这些硬件信息加入到注册表 HKEY_LOCAL_MACHINE下的 hardware 中。 的重要性在于在不兼容 ACPI (Advanced Configuration and Power Interface )的计算机中列举设备,这种情况下,设备资源是由硬件分配的。在兼容ACPI 的计算机中,设备资源是由操作系统分配的。在这个过程中, 会查找 Windows XP 创建的硬件配置文件。Windows XP 会为桌面型电脑创建一个硬件配置文件,为移动型电脑创建两个硬件配置文件,用户也可以创建自己特定的硬件配置文件。硬件配置文件中没有的设备的驱动程序不会在Windows XP 启动过程中加载。对于有多个硬件配置文件的计算机,用户可以选择是否在启动时显示硬件配置文件选单以便用户选择特定的硬件配置文件。2.内核加载阶段在这个阶段, ntldr 首先加载称为Windows XP 内核的 ntokrnl.exe。这里,系统加载了Windows XP 内核但是没有将它初始化。接着 ntldr 加载硬件抽象层 (Hardware Abstraction Layer,hal.dll),然后,系统继续加载HKEY_LOCAL_MACHINESYSTEM键, ntldr 读取 HKEY_LOCAL_MACHINESYSTEMSelect中的键值来决定哪一个ControlSet (熟悉注册表的朋友一定都发现在HKEY_LOCAL_MACHINESYSTEM下有好几个ControlSet,比如 ControlSet001 ,ControlSet002 )将被加载。 ControlSet 中包含设备的驱动程序以及需要加载的服务。ntldr 加载 HKEY_LOCAL_MACHINESYSTEMControlSetXXXServices.(这里, ControlSetXXX指 Select 中选定的ControlSet,.指服务的名称)下start 键值为 0 的最底层设备驱动。当作为ControlSet 镜像的 CurrentControlSet 被加载时, ntldr 将计算机的控制权交给Windows XP 内核的 ntokrnl.exe ,初始化内核就开始了。初始化内核开始的时候,彩色的 Windows XP 的 logo 以及进度条显示在屏幕中央,在这个阶段,系统完成了启动的4 项任务:1)内核使用在硬件检测时收集到的数据来创建HKEY_LOCAL_MACHINEHARDWARE 键。2) 内核通过复制HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet的值来创建了HKEY_LOCAL_MACHINE SYSTEM Clone。Clone 是计算机数据的备份,不包括启动中的改变,也不会被修改。3)系统完成初始化以及加载设备驱动程序,内核初始化那些在加载内核阶段被加载的底层驱动程序,然后内核扫描HKEY_LOCAL_MACHINESYSTEMCurrentControlSetS名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - ervices.下 start 键值为 1 的设备驱动程序。 这些设备驱动程序在加载的时候便完成初始化,如果有错误发生,内核使用ErrorControl 键值来决定如何处理,值为3 时,错误标志为危机 /关键,系统初次遇到错误会以HKEY_LOCAL_MACHINESYSTEMSelect中 LastKnownGood 所指的 ControlSet 重新启动,如果使用 LastKnownGood ControlSet启动仍然产生错误,系统报告启动失败,错误信息将被显示,系统停止启动;值为2 时错误情况为严重,系统启动失败并且以LastKnownGood ControlSet重新启动,如果系统启动已经在使用LastKnownGood 值,它会忽略错误并且继续启动;当值是1 的时候错误为普通,系统会产生一个错误信息,但是会忽略这个错误并且继续启动;当值是0 的时候忽略,系统不会显示任何错误信息而继续运行。4)内核启动Session Manager(Smss.exe)。Session Manager 的作用是启动Windows XP高级子系统以及服务,启动控制所有输入、输出设备以及访问显示器屏幕的Win32 子系统以及 Windows 登陆进程( Winlogon.exe )。到这里,初始化内核就完成了。3.登陆阶段Winlogon.exe 首先启动服务管理(Service Control Manager ,Services.exe)和本地安全认证( Local Security Authority ,Lsass.exe),同时显示Windows XP 欢迎屏幕,这时候,系统还可能在后台继续初始化刚才没有完成的驱动程序。然后Winlogon会提示用户输入有效的用户名或密码(如果Windows XP 中除了默认的administrator 和隐藏帐户外只有一个用户帐户且没有密码,Windows XP会跳过这一步)。接着,服务管理最后执行以及扫描HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServives来检查是否还有服务需要加载, 服务管理查找start 键值为 2 或更高的服务, 服务按照start 的值以及 DependOnGroup 和 DepandOnService 的值来加载。只有用户成功登陆到计算机后,Windows XP的启动才被认为是完成,在成功登陆后,系统拷贝HKEY_LOCAL_MACHINESYSTEMClone到 LastKnownGood ControlSet ,完成这一步骤后,系统才意味着已经成功引导了名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -