Наряду с файловой системой DOS обеспечивает операционную среду для прикладных программ. Первый компонент DOS с которым сталкивается пользователь, - это командный процессор. Эта часть DOS берет на себя обработку вводимых пользователем команд и запуск прикладных программ.
После операции загрузки система готова к приему команд от оператора (за исключением специального случая, о котором будет сказано ниже). На этом этапе управление передается командному процессору - DOS произвела загрузку в память командного процессора, файловой системы и других служебных программ, и все они готовы выполнять свои функции. Передача управления командному процессору индицируется им следующим запросом к оператору
A>
Этот запрос содержит двоякий смысл. Символ ">" означает готовность командного процессора к приему команды. Префикс "A" указывает на выбранный по умолчанию дисковод с гибким диском. Так как DOS может обрабатывать файлы, расположенные только на каком-то одном диске, то в случае одновременной работы с несколькими дисками или дискетами пользователь должен указать, к какому из дисководов следует обратиться системе. В персональной ЭВМ дисководы обозначаются буквами латинского алфавита. У вычислительной системы с двумя накопителями на гибких дисках имеется дисковод A: и дисковод B:. Жесткий диск обычно обозначается C: (После наименования дисковода следует двоеточие.) Обычно файлы, используемые системой DOS, считываются с дисковода, выбранного системой по умолчанию, если только оператор не изменит этот порядок. Для того чтобы считать файл с выбранного по умолчанию дисковода, системе требуется только имя этого файла. Для считывания файла с любого другого дисковода нужно кроме имени файла указать DOS наименование дисковода.
Команда Действие
--------------------------------------------------------
COPY Копирует файл с одного места в другое
DATE Вывод/модификация текущей даты
DIR Вывод каталога дискеты
ERASE Удаление файла с дискеты
PAUSE Система ждет нажатия клавиши
REM Вывод комментария
RENAME Изменить имя файла
TIME Вывод/модификация текущего времени
TYPE Вывод содержимого файла
--------------------------------------------------------
Фиг. 5.1 Резидентные команды DOS
Примером резидентной команды может служить команда DIR, которая выводит на дисплей справочник дискеты. На Фиг.5.2 показаны выходные данные, полученные в результате выполнения команды чтения каталога. Обратите внимание, что в справочнике дискеты для каждого записанного на ней файла указываются его имя и тип, а также длина в байтах, дата и время его создания. Так как для загрузки любой программы DOS необходимо выполнить команду чтения каталога, то эта команда является встроенной.
----------------------------------------
A>dir
Volume in drive A has no label
Directory of A:
COMMAND COM 37637 17/06/88 12:00
AUTOEXEC BAT 38 4/03/89 17:33
CONFIG SYS 96 17/06/88 12:00
COUNTRY SYS 12838 17/06/88 12:00
DISKCOPY COM 10428 17/06/88 12:00
DISPLAY SYS 15741 17/06/88 12:00
FDISK COM 70151 17/06/88 12:00
FORMAT COM 22923 17/06/88 12:00
KEYB COM 14759 17/06/88 12:00
KEYBOARD SYS 23360 3/08/88 12:00
REPLACE EXE 17199 17/06/88 12:00
SELECT COM 3674 3/08/88 12:00
SELECT HLP 27562 3/08/88 12:00
SELECT PRT 1594 3/08/88 12:00
SYS COM 11472 17/06/88 12:00
012345 678 109 17/06/88 12:00
16 File(s) 17408 bytes free
------------------------------------------
Фиг. 5.2 Каталог дискеты
A>ASM
Каталог дискеты содержит файл с именем ASM.EXE. Это и есть ассемблер. После ввода команды ASM, он просматривает дискету в дисководе A: (выбранном по умолчанию). Найдя файл с именем ASM.EXE, командный процессор загружает и передает управление ассемблеру. Теперь вычислительная система находится под управлением ассемблера. При благополучном завершении трансляции ассемблер вернет управление командному процессору. Заметьте, что файл, содержащий ассемблер - это файл типа .EXE, поэтому он может быть загружен командным процессором.
Если ассемблер находится на дискете, установленной в дисководе A:, то пользователь может обратиться к другому дисководу следующим образом:
A>B:ASM
Префикс B: указывает DOS, что файл находится на дискете в дисководе B:. Файл полностью определяется не только указанием его имени, но и дисковода, с которого он будет считан. Одного имени файла достаточно только при считывании файла с дисковода, выбранного по умолчанию. Для того чтобы оттранслировать файл, расположенный на носителе в дисководе B: с помощью ассемблера, который находится на дискете в дисководе A:, нужно ввести следующую команду:
A>ASM B:FILE.ASM
В этой команде одновременно задаются программы ASM, считываемые с дисковода, который выбран по умолчанию, и исходный файл FILE.ASM, считываемый с дисковода B:.
Это можно сделать и другим способом: задать команду B:, которая предписывает DOS сделать дисководом, выбираемым по умолчанию, дисковод B:.A>B:
B>A:ASM FILE.ASM
Заметьте, что после этого запрос со стороны системы меняется на B>. Приведенная в этом примере команда по своему действию полностью идентична команде из предыдущего примера.
Кроме того, интерпретатор командных строк может работать с файлом, называемом файлом с пакетом команд, с расширением имени .BAT. Этот тип файла совершенно отличен лт файлов типа .COM и типа .EXE. Файл типа .BAT не содержит выполняемого машинного кода, а состоит из нетранслированных команд, которые интерпретируются командным процессором. Все содержащиеся в этом файле команды выполняются DOS по очереди. Можно считать, что файл типа .BAT заменяет процедуру ввода команд с клавиатуры, так как они содержатся непосредственно в соответствующем файле. После того, как система закончила обработку пакетного файла, она обращается за следующей командой к клавиатуре. Все эти особенности делают файл типа .BAT удобным средством выполнения повторяющихся заданий. После того, как такой файл уже создан, единственная команда обращения к нему заменяет ввод всех содержащихся в нем команд.
В системе допускается специальный файл с именем AUTOEXEC.BAT. Если такой файл имеется на диске, то сразу же после своей загрузки DOS обращается к нему, передавая управление командам, составляющим пакет команд этого файла. Это позволяет автоматически загружать с диска нужную пользователю программу. Предположим, что вы написали прикладную программу, использующую DOS. (При этом говорят, что программа была написана с "привязкой к DOS".) В случае создания файла AUTOEXEC.BAT, инициирующего выполнение прикладной программы, оператору, работающему с этой прикладной программой, совершенно не нужно будет знать, как работает интерпретатор командных строк. Он знает, что управление осуществляет программа и это главное.