MS-DOS下的命令解释程序COMMOND.COM

MS-DOS命令解释程序详解
本文详细介绍了MS-DOS操作系统中的命令解释程序,包括其组成、工作流程以及处理方式。主要内容涵盖常驻部分、初始化部分和暂存部分的功能,以及如何识别和执行命令。

(1)命令解释程序

在所有的OS中,都把命令解释程序放在OS的最高层,以便能直接与用户交互。该程序的主要功能是先对用户输入的命令进行解释,然后转入相应命令的处理程序去执行。在MS-DOS中的命令解释程序是COMMAND.COM,在UNIX中是Shell。这一章中将主要讲述MS-DOS下的COMMOND.COM命令解释程序。

在联机操作方式下,终端处理程序把用户键入的信息送键盘缓冲区中保存,一旦用户键入回车符,便立即将控制权交给命令处理程序。命令解释程序的主要作用是在屏幕上给出提示符,请用户键入命令,然后读入该命令,识别命令,再转到相应命令处理程序的入口地址,把控制权交给该处理程序去执行,并将处理结果送屏幕上显示。若命令解释程序未能识别命令或执行中出现问题,会在终端显示出错信息。

(2)MS-DOS的命令解释程序的组成

MS-DOS是1981年有Microsoft公司开发的,配置在微机上的OS。随着微机的发展,MS-DOS的版本也在不断升级。在这里我们以MS-DOS操作系统中的COMMOND.COM处理程序为例,说明命令解释程序的组成,主要包括三部分:

常驻部分:这部分包括一些中断服务子程序,如正常退出中断INT20,驻留退出中断INT27。此外,它还包括这样的程序:当用户程序终止后,它检查暂存部分是否已被用户程序覆盖,若已被覆盖,便重新将暂存部分调入内存。

初始化部分:它跟随在常驻内存部分之后,在启动时获得控制权。还包括AUTOEXEC.BAT文件的处理程序,并决定应用程序装入的基地址。每当系统接电或重新启动后,由处理程序找到并执行AUTOEXEC.BAT文件,该文件在用完后不再被需要,它将被第一个由COMMON.COM装入的文件覆盖。

暂存部分:这部分主要是命令解释程序,并包含了所有的内部命令处理程序、批文件处理程序,以及装入和执行外部命令的程序。它们都驻留在内存中,但用户程序可以使用并覆盖这部分内存,用户程序结束时,常驻程序又会将它们重新从磁盘调入内存,恢复暂存部分。

(3)MS-DOS命令解释程序的工作流程

系统在接通电源或复位后,初始化部分获得控制权,对整个系统完成初始化工作,并自动指向AUTOEXEC.BAT文件,之后将控制权交给暂存部分。暂存部分受限读入键盘缓冲区中的命令,判别其文件名、扩展名以及驱动器名是否正确。若发现有错,在给出出错信息后返回;若无错,再识别该命令。一种简单的识别命令的方法时基于一张表格,其中的每一表目都是由命令名及其处理程序的入口地址两项所组成。如果暂存部分在该表中能找到键入的命令,且是内部命令,便可以直接从对应表项中获得该命令处理程序的入口地址,然后把控制权交给该处理程序去执行该命令。如果发现键入的命令不是内部命令而是外部命令,则暂存部分还需为之建立命令行,再通过执行系统调用exec来装入该命令的处理程序,并得到其基地址;然后把控制权交给该程序去执行相应的命令。

下图是COMMOND.COM的处理流程:

 

 

转载于:https://www.cnblogs.com/sophia-yun/p/3245721.html

本人收葳以久的 config.sys SMARTDRV.EXE HIMEM.SYS diskgen.exe DOS三个基本启动文件COMMAND.COM MS-DOS.SYS IO.SYS 启动DOS用到的文件 描  述:IO.SYS是dos环境控制输入输出的文件,可以少。 COMMAND.COM是Windows 9X中的DOS外壳程序(SHELL),较DOS 6.22仅增加了部分内部命令,没有更新的东西。   IO.SYS对COMMAND.COM的处理则有了根本改变,当Win 9X在CONFIG.SYS中加载EMM386.EXE驱动提供UMB时,COMMAND.COM的常驻部分装入HMA,暂驻部分装入UMB中(在DOS6.22中,COMMAND.COM只能将常驻部分装入HMA),这将为DOS程序提供更大的常规内存,也需要反复从磁盘中恢复暂驻部分,有效地提高了系统性能。当然,如果没有加载EMM386.EXE,系统提供UMB,COMMAND.COM的暂驻部分就只能象DOS6.22那样置于常规内存的高端。   DOS内部命令的程序代码存放在command.com文件中,它在DOS系统启动的时候随DOS的启动模块一起被调入计算机内存。 MSDOS.SYS是DOS的三个核心文件之一,另外两个是command.com、IO.SYS   MSDOS.SYS 在微软非NT内核的操作系统中经常可以看到它,具有只读、系统、隐藏三个属性,因此在WINDOWS中是看到的,可以通过“文件夹选项”中“显示系统文件”和“显示所有文件”来显示它,如果改它的属性在WINDOWS中只能改只读和隐藏两个属性,能改系统属性,但是可以在命令行形式下改attrib -s msdos.sys   MSDOS.SYS可以修改,但改坏了可能会导致系统无法启动,可以用记事本打开,内面是一些启动参数,如:开机时显示显示菜单、开机时进行磁盘扫描吗、开机时显显示LOGO等等。   1、MSDOS.SYS的作用   在Win 9X中,MSDOS.SYS变成了纯文本系统配置文件,用于控制Win的启动方式。可以在DOS模式下解除其特殊属性(只读、隐藏、系统),根据需要自行配置。MSDOS.SYS可以是空文件,甚至可以删除,当然此时系统只能以纯DOS方式启动,能进入GUI系统。   同方式形成的MSDOS.SYS默认内容同,主要有四种,其中前三种方法形成的MSDOS.SYS文件无任何配置命令,几乎是空文件,仅保留一行注释,以说明该文件形成方式,这类文件多见于系统软盘中。同的MSDOS.SYS内容如下:   1)Win安装时建立的系统盘 : ;Win95EBO   2)FORMAT /S建立的系统盘 : ;FORMAT   3)SYS A:传递建立系统盘 : ;SYS   4)建立系统时在硬盘上形成的MSDOS.SYS   系统硬盘中的MSDOS.SYS内容比较完整,包括必要的启动配置命令,文件长度必须大于1024 bytes,即占用两个以上磁盘扇区,这一要求在该文件中说明为保证兼容性,但从未见更深入的介绍,实际上文件小于1024 bytes对系统并无明显影响,该要求估计是为了保证系统与旧版DOS和Win 3.X兼容而提出的,这一点尚望行家指教。   用SYS向硬盘传送系统以修复启动文件时,将覆盖引导记录、IO.SYS和COMMAND.COMMSDOS.SYS的内容保持变,保证系统引导部分修复后,整个系统仍能正常启动,这一做法非常聪明。   2、MSDOS.SYS的配置参数   MSDOS.SYS由三小节组成,其各配置参数无顺序要求,内容如下:   [PATHS]   指定Windows的系统文件路径   WinDir=   指定Win 9X各系统文件及其子目录所在的目录   该路径必须包括注册表文件SYSTEM.DAT和Win 9X启动必需的驱动程序,如HIMEM.SYS等   WinBootDir=   指定Win 9X的GUI启动程序Win.COM所在的目录   HostWinBootDrv= 指定Win.COM所在的驱动器,需冒号(:)   UninstallDir=   指定保存原系统的目录,便于自身删除时恢复原系统用   该参数出现在Win的升级版本中   [OPTIONS] 指定Windows的启动方式,/前的值为缺省值   LOGO=1/0   允许/禁止启动时显示Win 9X标志(LOGO)   屏蔽该画面有时可解决第三方内存管理程序造成的冲突   看到系统启动过程出现的提示信息,也使系统启动稍快,启动   启动时可用ESC键清除Win 9X标志,查看实模式启动信
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值