1.电脑开机的过程

2.一台完好的电脑,设备启动顺序是怎样的?先启动什么后启动什么?

3.谁能把电脑从开机到正常工作,各硬件的工作顺序告诉我?

电脑开机的过程

电脑系统的主要操作过程-电脑系统的主要操作过程包括

第一步:在主板接通电源之后,系统就由POST(Power On Self Test,上电自检)开始自检,在我们刚刚接通电源的时候,整个系统由BIOS控制,电压还不太稳定(这个过程非常短暂,一般只有几毫秒,这个时候电压的稳定完全依靠主板和电源内部的滤波电容进行),主板芯片组会向CPU发出reset的命令让CPU开始初始化,同时主板芯片组等待电源发出POWE GOOD命令,一旦电源发出POWER GOOD命令,主板芯片组会马上停止reset命令的发出(如果是手动reset那么松开reset按钮时就会停止发出命令),这时候CPU会马上从地址FFFFF0H或FFFF0H开始执行寻址指令(这个地址是在BIOS内而不再内存里面),在这个地址中无论是AMI BIOS还是Award BIOS,在这个地址中都会存储一条跳转命令,直接跳转到系统BIOS中真正的启动代码处,这个时候BIOS就会进行到第二个步骤POST。

02

第二步:系统BIOS的启动代码首先要做的事情就是POST,POST的主要任务就是在检测系统中的一些关键设备是否存在和正常工作。由于POST在初始化显示卡之前,因此如果POST过程中出现任何的被BIOS认为的致命错误,比如没有找到内存或者说内存错误之类的,POST会通过主板上再带的扬声器来发送长短和数量不等的警报声以传递错误信息,如果在正常情况下,POST会进行的非常快,我们是难以感觉到这个过程的。

03

第三步:在这一步,系统BIOS会找到显示卡,存放显卡BIOS的ROM通常其实地址在C0000H处,系统BIOS找到显卡BIOS之后调用它的代码,由于显卡生产商的不同,所以显卡的初始化是由显卡BIOS来完成的,所以不同显卡厂商的界面也是不太一样的。

04

第四步:硬盘引导启动:这一步是根据BIOS设置的启动顺序进行,按照顺序将控制权依次转移给列表中的存储设备,无论是哪个设备,计算机都会依次读取这个设备的第一个扇区,即第一个512字节,如果这512个字节的最后两个字节是0x55和0xAA,表明这个设备可以用于启动;如果不是,表明设备不能用于启动,控制权于是被转交给"启动顺序"中的下一个设备,这最前面的512个字节就被叫做主引导记录(Master boot record,缩写为MBR)。

其中主引导记录的主要作用就是引导硬盘到指定的位置来加载操作系统,一般分为三个部分:第1-446字节:调用操作系统的机器码;第447-510字节:分区表(Partition table);第511-512字节:主引导记录签名(0x55和0xAA)。

其中分区表的作用是将硬盘分为若干个分区,硬盘分区的好处就是在于可以在不同的分区中安装不同的操作系统,但是主引导记录必须知道每个操作系统具体是在哪个分区。

主引导记录的大小总共只有64个字节,其中分为四项,每项16个字节,也就是说,每块硬盘只有4个主分区,只能安装4套操作系统。每个主分区总共16个字节,分为6个部分:

第一个字节:如果为0x80,就表示该主分区是激活分区,控制权要转交给这个分区。四个主分区里面只能有一个是激活的。

第二至四个字节:表示主分区第一个扇区的物理位置(柱面、磁头、扇区号等等)。

第五个字节:表示主分区类型(具体内容比较多在这里就不再过多阐述)。

第六只八个字节:表示主分区的最后一个扇区的物理位置。

第九至十二个字节:表示主分区第一个扇区的逻辑地址。

第十三至十六个字节:表示主分区的扇区总数。

最后一条规定了 主分区的长度,也就是说,主分区的长度最大不能大于2^32,所以,每个分区512个字节的话,整块硬盘的大小不会超过2TB,所以提高硬盘大小只有两个办法:一是提高硬盘扇区总数;二是提高每个扇区的字节数。

05

第五步:硬盘启动。这个时候系统会优先从四个主分区里面的那个被激活的分区来启动,叫做引导卷启动(Volume boot record,缩写为VBR),卷引导记录的主要作用是,告诉计算机,操作系统在这个分区里的位置。然后,计算机就会加载操作系统了。但是如果系统被安装在了拓展分区和逻辑分区中,就要通过启动管理器来启动,在这种情况下,计算机读取"主引导记录"前面446字节的机器码之后,不再把控制权转交给某一个分区,而是运行事先安装的"启动管理器"(boot loader),由用户选择启动哪一个操作系统。

06

第六步:内核加载启动。这个时候计算机的操作系统位置已经确定,就要进行内核加载。在内核加载阶段,Ntldr 将首先加载Windows内核 Ntoskrnl.exe 和 硬件抽象层 (HAL). HAL 有点类似于嵌入式操作系统下的BSP(Borad support package),这个抽象层对硬件底层的特性进行隔离,对操作系统提供统一的调用接口,操作系统移植到不同硬件时只要改变相应的 HAL 就可以,其它的内核组件不需要修改,这个是操作系统通常的设计模式。

接下来Ntldr 从HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet 下读取这台机器安装的驱动程序,然后依次加载驱动程序。驱动程序加载完成后,Windows做如下设置:

1. 创建系统环境变量

2. 启动 win32.sys ,这个是Windows子系统的内核模式部分。

3. 启动 csrss.exe,这个是Windows子系统的用户模式部分。

4. 启动 winlogon.exe

5. 创建虚拟内存页面文件

6. 对一些必要的文件进行改名

最后,我们就能看见那熟悉的蓝天白云出现在我们的电脑屏幕上了

一台完好的电脑,设备启动顺序是怎样的?先启动什么后启动什么?

当然是系统自检包括内存自检.

下面是系统自检及启动详细过程:

第一步: 当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向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的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时只会检查640K常规内存),那么系统BIOS就会直接控制喇叭发声来报告错误,声音的长短和次数代表了错误的类型。在正常情况下,POST过程进行得非常快,我们几乎无法感觉到它的存在,POST结束之后就会调用其它代码来进行更完整的硬件检测。

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

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

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

第六步: 内存测试通过之后,系统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都一次又一次地重复进行着这些我们平时并不太注意的事情,然而正是这些单调的硬件检测步骤为我们能够正常使用电脑提供了基础。

谁能把电脑从开机到正常工作,各硬件的工作顺序告诉我?

硬件启动:电源供电给主板,使其及其板载的板卡,接口等到工作的过程。

软件启动:计算机调用硬盘中的数据,使计算机可以为我们提供服务的过程。

第一节:硬件启动

计算机从加电开机到显示DOS提示符和光标的过程中,首先要通过固化在ROM中的ROMBIOS 硬件系统进行自检,当检测正确时,再进行系统配置,输入输出设备初始化,然后引导操作系统,完成将MS-DOS系统的三个文件(IO.SYS,MSDOS.SYS和COMMAND.COM)装入系统内存,从而完成启动过程.最后给出DOS提示符和光标等待用户输入键盘命令.(在自检程序成功后显示系统配置界面)

ROMBIOS中的自检程序就是我们大家常就的POST自检(POWER ON SELR TEST).在测试时一般将硬件分为中心系统硬件和非中心系统硬件及配置硬件,相应的功能也按此进行划分.对于所测试到的中心系统硬件故障属于严重的系统板故障,系统无法进行错误显示,其它所测试的硬件故障属非致命故障,系统可在显示器上显示出错误的信息.所以,我们根据这个过程可以知道计算机的故障出在那一部分.

在进行非中心系统和配置硬件的测试之前,要求中心系统硬件工作正常.因此,最重要的中心系统硬件最先测试和初始化,BIOS按下面的顺序来初始化中心系统硬件:

中央处理器---ROMBIOS----CMOS ROM---内存DMA控制器---键盘控制器----基本的64KRAM----可编程中断控制器-----高速缓存控制器(CACHE)

当系统的中心硬件测试和初始化完成后,BIOS验证存储在COMSRAM中的系统配置数据是否同实际配置的硬件相一致,然后,BIOS测试并初始化64K以上的内存,键盘及硬盘驱动器,显示控制器和其它非系统板硬件,当测试到硬件故障时,BIOS给出相应得出错编码和出错信息.

测试和初始化非中心系统硬件和其它配置硬件的顺序为:

COMS RAM配置数据----显示控制器----64K以上的RAM---键盘---软盘控制器---软驱A的可用性----串行接口电路----硬盘控制器----其它硬件(如声卡、显卡等)

从以上的顺序中,我们可以了解到开机启动期间计算机系统的工作过程和工作顺序。如果此处出现问题的话也有一个相应的范围来检测和修正错误。

计算机在自检无误后,开始调用硬盘数据,对操作系统进行启动。

大家都知道,计算机中的数据是以文件的方式存放在磁盘上的。而磁盘的数据存放有这样的四个地方:

引导扇区 文件分配表 文件目录区表 用户数据

BOOT FAT、NTFS FDT (用户区)

在计算机上电自检完成后,开始对硬盘的数据进行读操作:首先在引导区找到操作系统引导区,然后根据FDT给出的该文件在磁盘上的起始簇号,计算出该文件的起始逻辑扇区号并将该扇区的文件内容读出,同时找到文件起始簇在FAT中的表项,其表项就是该文件占用的下个簇的簇号。利用这个簇链依次进行下去,就可以按顺序一一确定该文件的每个扇区并将其读出。

操作系统启动步骤:

1 贮存在ROM中的bootstrap loader程序和自诊断程序移动到RAM中.

2 在bootstrap loader的运行中,储存在记忆装置中的操作系统将文件送到RAM中.

3 执行系统文件IO.SYS,MSDOS.SYS.这时画面出现"starting windows98……”的信息。

4 若有config.sys则执行它.

5 执行系统文件的command文件.

6 若有AUTOEXEC.BAT则执行它.

7 读取WINDOWS的初始化文件"SYSTEM.INI"和"WIN.INI",再读取注册表文件.

8启动结束,出现初始画面,运行操作系统.

. 我们可以通过修改它来去掉一些我们在系统启动过程中不想加载的程序和不想使用的硬件,以加快我们的系统启动速度。

自检:电源供电后,计算机通过ROM BIOS中的自检程序对其中心系统硬件进行检测的过程.

BIOS:固化在主板上的一些程序,它不会因断电而丢失,是计算机最基本的运行指令组成。

CMOS:记录了BIOS的各种参数,通过它可以控制BIOS中各种程序的执行功能。

引导扇区:启动系统和存放磁盘参数而设置的,该区只占0面0道一扇区,含有磁盘上 最重要的信息。

文件分配表:从逻辑1扇区开始,用于存放文件在磁盘上的存放位置和整个磁盘文件的使用情况。

文件目录表:存放磁盒根目录下所有文件名和子目录名,文件属性,文件在磁盒上的起始簇号、文件长度、文件建立和修改日期与时间等。

用户数据区:磁盘上去掉BOOT、FAT、FDT以后用来存放用户数据的空间。

注册表:保存所有硬件驱动程序和应用程序各种参数的数据库。系统起动时通过加载它来加载各种板卡的驱动程序和配置系统的参数。

操作系统启动以后,其所具有的各项最基本的功能也就随之可以开始使用了。各种应用软件就是在操作系统的平台上对我们提供应用的。

在操作系统的平台上,当我们双击某一应用程序的执行文件后,该应用文件就开始运作,此时,操作系统本身的各种内核程序就开始忙碌。通过调用注册表中的各种参数,并把相关的信息存放在内存中让CPU进行处理后通过硬件来实现这些程序的功能。

软件系统把我们所发出的各种指令解析为相应的机器语言,并存放在内存中供CPU处理。CPU在内存中接到各种数据后,不断的通过数据、地址、控制三类总线各种各样的数据在各种硬件中传输,使这些硬件处于同步响应软件所发出的各类要求的状态下。

这样我们在使用软件系统的过程中,我们所发出的每一个指令,都被忠实的执行,换句话说就是,我们使用软件的过程,是一个软件系统和硬件系统不断对话、工作的过程。

以我们使用的WINDOWS98操作系统为例,当我们打开一个文字输入程序进行文字输入时,我们在键盘上所击打的每一个键被存入内存,经过文字输入法程序根据自身的编码换算为某一个特定的文字,再经过显示程序在显示器上显示出现。而我们对这些文字所做的各种修饰和排布等又经文字处理程序换算为各种代表不同含义的字符显示出现。这样我们就可以通过我们所看到的对这些文字进行排布。

我们对软件的使用过程,就是一个软件使用其自身的算法,把我们所发出指令解释为计算机可以执行的机器指令的一个过程。在这个过程中,操作系统起到一个桥梁的作用,它在软件和硬件中间进行中介,使它们可以更好的合作,以达到我们的目地。

下图是一个示意图:我们从输入输出设备中输入的命令或是程序,先放在存储器中,然后经过运算器进行处理以后再送回存储器,最后经过输入输出设备输出。而这一切都是在CPU的控制在进行的。

第四章 计算机关闭分析:

当我们使用完毕后,要正确亲闭计算机,这样才能保证我们所做的工作不至于发生数据丢失,或者是计算机在下次使用时发生这样或那样的错误。

WINDOWS98的关机程序执行下述各项功能:

(1)完成所有磁盘写操作。

(2)清除磁盘缓存。

(3)执行关闭窗口程序关闭所有当前运行的程序。

(4)将所有保护模式的驱动程序转换成为实模式。