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


    (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的处理流程:

  • 相关阅读:
    「2019冬令营提高组」原样输出
    FJWC2019
    P2763 试题库问题
    P3979 遥远的国度
    P2754 [CTSC1999]家园
    P1251 餐巾计划问题
    P1382 楼房
    P1384 幸运数与排列
    P4294 [WC2008]游览计划
    P3345 [ZJOI2015]幻想乡战略游戏
  • 原文地址:https://www.cnblogs.com/sophia-yun/p/3245721.html
Copyright © 2020-2023  润新知