开机前后的系统(转贴)
0
一. 概念篇
在了解PC启动时做过哪些事前,我们还有必要学习一下和启动相关的一些基本概念。OK,跟我来吧!
A.CMOS:这是一个集成在PC计算机主板上的芯片。它可以看成由两部份组成:RAM和ROM。其中RAM中保存了一些PC机最基本的东西。例如计算机主板信息(包括计算机主板上的电器元件等),计算机内存参数、计算机硬盘参数、电源设置等。这些内容在CMOS出厂时即已由生产厂商设置好并保存。它由计算机主板上一块锂电池供电,以使其在PC机断电后内容也不会丢失。用户可以用一些即定的方法对这些内容进行修改、设置。(如开机按DEL键进入CMOS SETUP设置)对于普通用户来说,用什么方法来对这些数据进行设置呢?这就要用到BIOS程序。BIOS是Basic Input and Output System基本输入/输出系统的简称。它由一系列的指令组成,是一段16位程序,固化在ROM中。大家知道,ROM是只读计算机内存,断电后其中的内容不会丢失。同BIOS一起存于ROM的还有CMOS的一些原始数据。操作系统访问硬件时会用到它们。现在很多计算机主板或其它适配器上的ROM多是Flash ROM(快闪ROM),可以用专用程序对其进行刷新、升级,这也就是我们日常所说的刷新BIOS。
B.POST:Power On Safe Test,加电自检。当我们在按下Power键时,POST就已经开始了。POST由BIOS提供,是BIOS做的第一件事。它会自动检查PC机最基本的配件(显卡、计算机内存、计算机CPU、BIOS信息等),并读取相应部件的BIOS,最后给出一个统计列表。
C.MBR:主引导记录。位于磁盘的0面0磁道1扇区,占用512字节,其中MBR占用了446字节,其余的则分配给了DBT(磁盘分区表)。MBR是由FDISK产生的,当BIOS完成引导后,就会搜索磁盘上的MBR,并将引导权交给MBR。可以说,MBR是由BIOS引导转向磁盘引导的一扇窗口,其重要性不言而喻。一个磁盘上必需有一个存放在0面0磁道1扇区的MBR。否则,引导将失败,并给出出错信息:Non-system disk,replace with system disk and press any key(无系统盘,请更换并按任一键)
D.DBR:操作系统引导记录。它位于MBR之后。当MBR从BIOS手中接过引导后,会先检查当前磁盘是否正确,分区表是否完好。一切无误后MBR就会将引导权交给DBR。而DBR则自动搜索根目录中是否有操作系统引导所必需的文件(如DOS的IO.SYS和MSDOS.SYS)。找到后DBR会激和他们,并由它们完成最后的引导操作。每一个逻辑分区都拥有一个引导记录。
E.FAT:文件分配表。FAT是一种文件系统,它记录着磁盘上所有数据的属性(例如该文件的大小、创建日期、是否可读、隐藏等)。如果FAT损坏(例如被病毒破坏),操作系统将无法读取磁盘上的数据(因为操作系统"不认识"它们了!)。因此,FAT对于用户来说具有相当重要的意义,所以磁盘上都有一个FAT备份。也就是说,我们一共拥有两个FAT。
F.DIR:根目录区。与FAT不同,DIR记录了磁盘上每个文件的准确位置。结合FAT,我们就可以很容易的在磁盘上找到我们想要的文件并进行操作。
G.DATA:数据区。这里存放的是用户数据,也是用户最常操作的一块区域。
H.IRQ(中断):当操作系统要访问某一硬件时,会向计算机CPU发出一个指令,向计算机CPU说明,现在要使用这个硬件,请计算机CPU中断处理其它设备的请求,首先满足当前硬件的请求。这个指令就是IRQ。IRQ在PC中的应用相当广泛,就在我们移动鼠标,或敲打键盘时,相应的硬件设备就向计算机CPU发送了相应的IRQ。那么,计算机CPU是由什么来判断不同硬件的不同IRQ呢?这就要用到IRQ表了。PC一共规定了16个IRQ,它们分别是:
IRQ0:系统时钟
IRQ1:键盘
IRQ2:为IRQ8----15提供支持
IRQ3:COM2
IRQ4:COM1
IRQ5:LPT2
IRQ6:软驱
IRQ7:LPT1
IRQ8:CMOS时钟
IRQ9:空闭
IRQ10:空闭
IRQ11:空闭
IRQ12:空闭
IRQ13:算术运算器
IRQ14:IDE控制器1
IRQ15:IDE控制器2
所以,当硬件发生IRQ冲突时(如MODEM与声卡),我们可以在BIOS中将冲突的硬件IRQ改为其它未分配值。
I:系统总线:"总线"这个概念,我们可以理解为它是一条信息高速公路,用来连接两个不同的电器。这两个电器之间的数据就在这条公路上传输。即然是公路,就一定有车道。PC定义每条车道上一次只能通过1Bit的数据,也就是说每辆车上只能运载1Bit的货物。而在PC中,有很多条这样的公路,系统总线就是其中最重要的一条。它连接的是计算机CPU与RAM。如图1:
早期的系统总线速度相当慢,并且位宽也很小(例如老式的ISA,只有16bit)。随着计算机CPU速度不断的提升,系统总线已经明显跟不上要求。这样,从系统总线中又分离出来一个专门用来交换计算机CPU到桥之间数据的总线:FSB,前端总线。在Pentium Ⅲ时代,FSB与系统总线运行速度一样,都为100/133MHz,因此很多人误将FSB与系统总线混为一谈,直到P4 的四倍泵技术出现后,人们才开始注意分清这两个不同的总线。如图2:
在各种总线中,还有一条从系统总线衍生出来的总线也相当重要。这就是I/O总线。像ISA、PCI、USB等都是比较流行的I/O总线。各种IDE设备、适配器等的数据都通过I/O总线传送到桥,最后经由前端总线输送到计算机CPU。在现代PC中,总线一般都是以以下形式来连接各种设备的:(图3)
二.实战篇
了解了上面的基本概念,我们就来实际分析一下PC机从按下Power键的那一刻起,到底做了哪些事情。为了便于大家理解,我们以DOS操作系统的引导为例。当然其它操作系统(如Windows系列,OS/2等)的引导过程也是大同小异。
如前所述,在按下Power键的同时,BIOS开始进行POST。它尽职尽责的完成了对显卡等设备的检查,并读取显卡BIOS,在屏幕上显示出显卡型号(也就是我们开机时所看见的那行"nVIDIA Geforce XX")。因为这时声卡还没有初始化,所以POST就控制机载喇叭发出"嘀"的一声,以表示当前系统正常。接着,POST继续检查基本硬件情况,同时显示了他们的信息。这时计算机显示器上也就相继出现我们熟悉的计算机CPU型号、计算机内存大小、型号、IDE设备、BIOS信息等。当全部基本硬件检查完后,它会给出一个详细的系统配置单,上面罗列了计算机CPU型号、主频,计算机硬盘的详细参数等。自至,自检就算圆满结束了。
在自检进行的同时BIOS也会将计算机主板BIOS、CMOS数据、其它适配器的BIOS都载入计算机内存,以备操作系统使用。当然载入只是一闪而过的事,接着屏幕就会显示正在搜索引导磁盘。当BIOS找到磁盘上的MBR后,就将引导权交给MBR,而MBR在检查磁盘信息、分区无误后再将引导权交给DBR,最终激和操作系统引导程序,也就是IO.SYS和MSDOS.SYS。至此,操作系统完全接管了系统引导。接下来的事就由DOS全权处理了。
DOS系统有三个核心文件,即IO.SYS,MSDOS.SYS和COMMAND.COM。首先被激和加载到计算机内存的是IO.SYS。它的作用是负责DOS与各硬件设备之间的正常交流。IO.SYS中还包括一个叫做SYSINIT的文件,IO.SYS加载后与事先载入计算机内存的BIOS建立联系,接着就由SYSINIT继续执行引导功能。之后,MSDOS.SYS将被加载,它的作用是负责管理、操作数据。再接下来就会读取CONFIG.SYS文件,它是一个系统配置文件,里面的命令会依次执行。这样,一个完整的DOS系统环境就配置完成了。这之后会加载COMMAND.COM,它为我们提供了一个基于文字界面的工作环境。最后被加载的是AUTOEXEC.BAT文件,许多用户对这个文件都很熟悉,它是一个批处理文件,其中包含了用户根据个人PC进行的配置。至此,DOS引导结束。
由于DOS系统是16位操作系统,BIOS也是一个16位程序,因此DOS和硬件打交道主要是利用BIOS,而非WINDOWS一般利用驱动程序。当然也有一些硬件设备需要专门编写驱动程序。如当年的WordPerfect 5.1,为了能够正常驱使打印机工作,它为当时市面上的500种打印机都编写了驱动程序!所以,在DOS引导结束后,还会加载在AUTOEXEC.BAT或CONFIG.SYS中写入的驱动程序。直到这个时候,PC的全部启动过程才算完成,用户可以开始领略PC给我们带来的美丽世界了。