联机命令解释程序的作用与工作流程
命令解释程序的主要功能是对用户输入的命令进行解释,然后转入相应命令的处理程序去执行。操作系统一般都把命令解释程序放在OS的最高层,以实现与用户的直接交互。
1.命令解释程序的作用
键盘终端处理程序接收用户从键盘输入的命令,并将其保存在键盘缓冲区中。接下来由命令解释程序读入该命令,并进行识?e,再转到相应命令处理程序的入口地址,把控制权交给该处理程序去执行,然后将处理结果送屏幕显示。若用户输入命令后,命令解释程序未能予以识?e,或在执行中间出现问题时,则应显示出某一出错信息。
2.命令解释程序的组成
20世纪80年代初,微软开发了配置在微机卜.的操作系统MS-DOS。随着微机的发展,MS-DOS的版本也由开始时的1.0版本升级到6.x版本。在此期间,它已成为事实上的16位微机操作系统的标准。下面以MS-DOS操作系统中的COMMAND.COM处理程序为例,来说明命令解释程序的组成。它包括以下3部分。
(1)常驻部分。这部分程序常驻内存中,通常是一些中断服务子程序。例如,正常退出中断INT20,它用于在用户程序执行完毕后,退回操作系统;驻留退出中断INT27,用这种方式,退回程序可驻留在内存中;还有用于处理和显示标准错误信息的INT24等。常驻部分还包括这样的程序:当用户程序终止后,它检查暂存部分是否巳被用户程序蒗盖,若巳被覆盖,便重新将暂存部分调入内存。
(2)初始化部分。它跟随在常驻内存部分之后,在启动时获得控制权。这部分还包括对AUTOEXEC.BAT义件的处理程序,并决定应用程序装入的起始地址。每当系统重新启动后,由处理程序找到并执行AUTOEXEC.BAT文件。由于该文件在用完后不再被需要,因而它将被第一个由COMMAND.COM装入的文件所覆盖。
(3)暂存部分。这部分主要是命令解释程序,并包含了所有的内部命令处理程序、批文件处理程序,以及装入和执行外部命令的程序。它们都驻留在内存中,但用户程序可以使用并覆盖这部分内存,在用户程序结束时,常驻程序?V会将它们重新从磁盘调入内存,恢复暂存部分。
3.命令解释程序的工作流程
系统在接通电源或复位后,初始化部分获得控制权,对整个系统完成初始化工作,并自动执行AUTOEXEC.BAT文件,之后便把控制权交给暂存部分。暂存部分首先读入键盘缓冲区中的命令,判别其文件名、扩展名及驱动器名是否正确。若发现有错,在给出出错信息后返回;若无错,再识别该命令。一种简单的识别命令的方法是基于一张表格,其中的每一表目都是由命令名及其处理程序的入口地址两项所组成。
如果暂存部分在该表中能找到输入的命令,且是内部命令,便可以直接从对应表项中获得该命令处理程序的入口地址,然后把控制权交给该处理程序去执行该命令。如果发现输入的命令不属于内部命令而是外部命令,则暂存部分还须为之建立命令行,然后通过执行系统调用EXEC来装入该命令的处理程序,并得到其基地址,再把控制权交给该程序去执行相应的命令。下图所示为MS-DOS的COMMAND.COM的工作流程。