Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
COMMAND.COM Печать

Командный процессор (COMMAND.COM)

Третий модуль DOS, располагающийся на системном диске, - это командный процессор. В отличие от рассмотренных выше первых двух модулей (IO.SYS и MSDOS.SYS), файл с командным процессором (COMMAND.COM) может занимать на системном диске любое место и трактуется как обычная программа.

Основные функции командного процессора заключаются в следующем:

  1. Приём и разбор команд, полученных с клавиатуры или из командного файла.
  2. Исполнение встроенных команд DOS, находящихся внутри файла COMMAND.СОМ.
  3. Загрузка и исполнение внешних программ DOS и прикладных программ (находящихся в файлах типа СОМ и ЕХЕ). Запуск прикладной программы осуществляется так же, как и обращение к внешней команде DOS (утилите), поскольку те и другие реализованы одинаково; командный процессор, в сущности, не отличает их друг от друга.

В функции командного процессора входит также исполнение файла автозапуска (AUTOEXEC.BAT).

Когда в качестве команды DOS командный процессор встречает имя файла, не совпадающее с именами встроенных команд, производится анализ типа этого файла, указанного в каталоге. Файлы типов СОМ и ЕХЕ считаются загрузочными и обрабатываются соответствующим образом, а файл типа ВАТ трактуется как командный.

Исполняемые файлы типа СОМ не требуют настройки адресов после их загрузки в оперативную память, а программы типа ЕХЕ при загрузке с диска в оперативную память нужно настроить по месту размещения, т. е. задать соответствующие адреса сегментов.

Когда в качестве команды DOS дается имя командного файла, командный процессор начинает последовательно читать и интерпретировать содержащиеся в нем строки, каждая из которых может содержать одну команду, метку или комментарий. Если в очередной строке стоит команда, осуществляющая вызов некоторой программы, то интерпретация командного файла приостанавливается 'и начинается работа вызванной программы. После ее завершения управление возвращается командному процессору.

Язык команд DOS служит основным средством общения пользователя с дисковой операционной системой. После вызова какой-либо прикладной программы ("задачи") пользователь взаимодействует с ней, а не с DOS, вплоть до завершения задачи, после чего вновь вступает в действие командный процессор.

Общий вид .команды ДОС: nnn а1 а2 ... ak /fl .. . /fn.

Здесь nnn - имя команды (программы). Это обязательный элемент. Аргументы a1 ... ak требуются не во всякой команде, и кроме того, в некоторых командах часть из них может опускаться. То же самое относится к параметрам (флажкам) fl ... tn. Аргументы обычно указывают на те объекты, с которыми имеет дело данная команда: имена накопителей, каталогов, файлов, внешних устройств. Флажки служат для задания различных модификаций и режимов в исполнении команды.

Если в конкретной команде ДОС предусмотрено задание неполного списка аргументов и/или флажков, то командный процессор подставляет вместо недостающих параметров определенные значения. Эта операция называется подстановкой по умолчанию.

При загрузке в оперативную память командный процессор распадается на две области: резидентную, которая располагается вслед за двумя рассмотренными выше модулями DOS, и нерезидентную, которая располагается на старших адресах ОЗУ.

Резидентная часть содержит подпрограммы стандартной обработки прерываний с десятичными номерами 34 - 36, которые разработчик прикладной системы может переопределить по-своему. Здесь же находится программа подзагрузки нерезидентной части командного процессора в оперативную память. Кроме того, в состав резидентной части входит подпрограмма инициализации, которая обрабатывает файл AUTOEXEC.BAT при запуске машины.

Нерезидентная часть включает программу обработки команд DOS, поступающих с терминала или из командных файлов. В нерезидентную часть входит загрузчик внешних программ, задачей которого является чтение очередной программы с диска в оперативную память, настройка адресов и переход на ее исполнение.

Поскольку нерезидентная часть командного процессора располагается на старших адресах ОЗУ, любая прикладная программа, загружаемая на младшие адреса, может частично или полностью занять и "затереть" эту область памяти. По окончании такой программы управление всегда возвращается в резидентную часть командного процессора, который в этом случае пытается восстановить затертую нерезидентную часть, загружая ее с системного диска. Именно поэтому на машинах без жесткого диска после окончания работы некоторых прикладных программ на экран выдается сообщение "Установите системный диск в драйвер А: ... ". Это значит, что прикладная программа затерла нерезидентную часть командного процессора, а резидентная часть, установив этот факт, делает попытку восстановить ее с гибкого диска. На машинах, в которых роль системного играет жесткий диск, такая ситуация разрешается незаметно для пользователя, поскольку командный процессор всегда есть на жестком диске - от пользователя не требуется никаких действий для его загрузки.

Подпрограмма инициализации располагается в конце резидентной части командного процессора. Поскольку она срабатывает лишь один раз при запуске машины, занимаемая ею память может быть использована прикладными программами; поэтому первая же прикладная программа размещается в ОЗУ на месте этой подпрограммы, что позволяет экономно использовать оперативную память.

Таким образом, после загрузки и инициализации командного процессора оперативная память разделяется на три области:

  • область DOS - от младших адресов, объемом около 60 К;
  • область прикладных программ максимальным объемом около 580 К;
  • системная область - на старших адресах ОЗУ объемом 384 К.