掌握一些简单的DOS启动原理知识,其意义是深远的,无论是对DOS本身还是对WINDOWS下的系统维护都有很大的帮助(事实上WINDOWS的初始启动也是如此),我将尽量地用通俗易懂的语言陆续介绍这方面的知识。希望有一定DOS基础知识的网友们能够因此而对DOS有更深层的认识。弄懂了这些东西你将会觉得解决计算机启动中的问题是如此简单。
关健词:
BOOT、IO.SYS、MSDOS.SYS、COMMAND.COM、CONFIG.SYS、AUTOEXEC.BAT、SYSINIT、DOSINIT、CMDINIT
MS-DOS由引导程序(
BOOT)和三个层次模块(
IO.SYS、
MSDOS.SYS以及
COMMAND.COM)组成。存放有这些文件的磁盘被称为DOS的系统盘。
所谓启动DOS,即指把磁盘上的3个DOS基本模块装入到主存中,由它们指挥计算机各个部件进行协调的工作。
IO.SYS和
MSDOS.SYS是两个隐含的系统文件,当使用命令DIR列出文件目录时,用户只能见到
COMMAND.COM文件,而见不到这两个文件。
ROM-BIOS中的自举程序先去测试软盘启动器,再去测试硬盘(这是预定设置,如果
BIOS中设置不是A、C、CDROM启动顺序,则稍有不同,不过基本原理类似),测试的目的是要确定通过谁来引导启动过程。不管系统盘是在A驱的软盘还是在C驱的硬盘中,自举
程序总是先把该盘的物理第0扇区读入内存。但由软盘引导和由硬盘引导启动,最初还是有些差别。
对于软盘启动,读进的就是DOS引导扇区,故立即执行
BOOT引导程序;对于硬盘启动而言,由于读进的第1扇区是硬盘主引导扇区,所以先要执行其中的主引导程序;由它找到DOS的主分区,即可被激活的分区,然后才能将该区的DOS引导扇区读入,转而执行
BOOT引导程序。随后,整个引导过程就完全相同了。
BOOT程序检查是否有
IO.SYS和
MSDOS.SYS两个文件,看它们是否是最前面的两个文件,且
IO.SYS排在第一位。完成这一检查、确认无误后,就把
IO.SYS模块读入主存,控制转移到初始化程序
SYSINIT。它对基本输入输出管理进行初始化工作,并将DOS内核模块
MSDOS.SYS读入内存,调用内核初始化程序
DOSINIT,完成对内核的初始化工作。在这之后,又返回到
SYSINIT去执行系统配置文件
CONFIG.SYS,实现对系统环境的设置,进而把命令处理程序模块
COMMAND.COM读入内存,才将控制权移交给
CMDINIT。
CMDINIT做一些有关的初始化工作,然后就去查找是否存在
AUTOEXEC.BAT文件。若该文件存在则执行。最后将控制权交给
COMMAND.COM暂驻模块
CCPT,在屏幕上现出DOS提示符,整个启动过程完成。
对于从光盘启动,则是模拟出一个软盘启动,一般是在光盘中放上软盘镜象文件,其基本原理和从软盘启动是一样的。
启动过程如下:
硬盘
ROM-BIOS—自举程序—读启动盘第0扇———— 硬盘主引导扇区—主引导程序
| |
|软 |
|盘 |
|_____________________________________|
_______________________________________|
|
|
DOS引导扇区—BOOT程序检查头两个基本文件—读入IO.SYS模块——
SYSINIT程序对BIOS模块进行初始化—读入并定位MSDOS.SYS—执行CONFIG.SYS
| |
___________________________________________| 读入COMMAND.COM—BIOS模块
| |
MSDOS.SYS—DOSINITT程序—对内核进行初始化—内核模块 |
_________________________________________________________|
|
COMMAND.COM—CMDINIT程序进行初始化—执行AUTOEXEC.BAT—显示DOS提示符
—暂驻模块(CCPT)
—常驻模块(CCPR)