Команда SYS копирование скрытых системных файлов. Работа в командной строке Windows

Файл конфигурации CONFIG.SYS Удобная рабочая обстановка для пользователя ПЭВМ может быть создана в результате продуманного конфигурирования и начальной настройки системы.DOS дает возможность при запуске машины автоматически задавать определенные начальные условия, которые влияют на дальнейшую работу пользователя. Осуществляется это с помощью содержимого двух особых файлов: CONFIG.SYS и AUTOEXEC.BAT. Указанные файлы, если они имеются в корневом каталоге системного диска, обрабатываются при любом включении или перезапуске машины.С помощью файла конфигурации CONFIG.SYS можно расширять операционную систему и изменять некоторые параметры, влияющие на работу внешних устройств. Одно из важнейших свойств DOS состоит в возможности добавления новых внешних устройств и подключения специальных программ, обеспечивающих управление их работой.Эти программы, называемые драйверами внешних устройств, можно включить в систему, перечислив их в файле CONFIG.SYS. Помимо этого в файле конфигурации можно указать, сколько файлов в системе может быть открыто одновременно, задать количество буферов для обменов с внешними накопителями и некоторые другие параметры.Пример. Рассмотрим типичный вид файла CONFIG.SYS: break=on flles=30 device=C:\sys\rk.com device=C:\sys\vdisk.sys 20 device=C:\sys\ansi.sys device=C:\sys\mouse.sysВ первой строке с помощью выражения BREAK=ON устанавливается режим, при котором пользователь будет иметь возможность прервать любую работающую программу при определенных условиях. Для этого дается команда прерывания, вызываемая одновременным нажатием управляющих клавиш Ctrl и Break. Работающая программа будет прервана, если эти клавиши оказываются нажатыми в момент выполнения операций ввода/вывода (включая печать на принтере, обмен с дисками и др.). Во второй строке командой FILES=30 устанавливается, что количество одновременно открытых файлов может достигать 30. Четыре следующие строки имеют одинаковый вид и содержат команды подключения к DOS дополнительных внешних устройств. В правой части каждого выражения, после знака равенства, задается имя файла, являющегося драйвером нового устройства:RK.COM - драйвер, обеспечивающий прием с клавиатуры и выдачу на дисплей букв русского алфавита; VDISK.SYS - драйвер виртуального диска, создаваемого в оперативной памяти; ANSI.SYS - драйвер расширенного управления клавиатурой и дисплеем; MOUSE.SYS - драйвер манипулятора "мышь".Кроме указанных в примере команд, в файле конфигурирования можноустановить нестандартное количество буферов для обмена информацией с дисковыми накопителями.Задание числа буферов делается с помощью выражения вида;BUFFERS= (количество_буферов)Еще одна возможность позволяет указывать имя файла, который будет играть роль нестандартного командного процессора (вместо стандартного файла COMMAND. СОМ). Такое указание осуществляется с помощью выражения вида: SНЕLL=(имя_файла_с_новым_командным_процессором)Таким образом, с помощью файла конфигурирования CONFIG.SYS пользователь может задать собственные, нестандартные возможности, которые действуют в течение текущего сеанса работы.

Командные файлы Командные файлы принадлежат к категории исполняемых файлов. Такие файлы снабжаются типом.ВАТ (от английского слова batch - пачка). Запуск командного файла осуществляется точно так же, как запуск файла типа СОМ или ЕХЕ: указывается имя файла без расширения и, если требуется, параметры.Роль командных файлов особая.Они могут содержать целую группу команд DOS или обращений к прикладным программам, которые выполняются последовательно или в более сложном порядке. Командный файл, в отличие от исполняемых файлов остальных двух типов, содержит не машинный код программы, а текст, который интерпретируется командным процессором DOS. Таким образом, по форме это обычный текстовый файл. Его строки могут представлять собой: встроенные команды DOS, обращения к исполняемым программам, вызовы других командных файлов, специальные команды для управления выводом на экран, специальные команды для организации ветвлений и циклов, метки.Все эти конструкции (за исключением меток) могут не только фигурировать в командных файлах, но и просто вводиться пользователем с клавиатуры. Однаков практической работе лишь команды первых трех типов вводятся пользователем, а остальные конструкции, включая метки, служат главным образом для создания нетривиальных командных файлов.Рассмотрим несколько простых примеров применения командных файлов. Пример 1. Допустим, наша регулярная работа осуществляется в каталоге WORK, но время от времени мы хотим переходить в каталог GRAPH, запускать там графический пакет VICONT, а по окончании работы с этой программой возвращаться в каталог WORK. Последовательность команд при этом должна быть следующей: cd \GRAPH VICONT cd \WORK Эту последовательность можно разместить с помощью текстового редактора в командном файле. Каждая команда должна следовать на отдельной строке. Дадим этому файлу имя V.ВАТ. Достаточно теперь задать в качестве одной команды имя этого файла - V, и содержащиеся в нем несколько команд начнут интерпретироваться одна за другой, избавляя нас от необходимости вводить их текст с клавиатуры. Первая команда сменит каталог, а вторая погрузит нас в операционную среду системы VICONT. Когда после выполнения необходимых действий мы, наконец, закончим работу с VICONT, управление вернется в командный файл. Выполнение третьей команды вернет нас в каталог WORK. Заметим, что при выполнении каждой команды в данном примере на экране печатается приглашевие, затем текст самой команды (эхо) и, наконец, результат ее работы. Пример 2. Допустим, мы хотим предельно сократить число манипуляций для создания необходимой рабочей обстановки при запуске системы. Мы можем заставить DOS автоматически провести всю необходимую подготовку операционной среды с помощью командного файла следующего вида; echo off mode co80 path C:\;C:\EXE;C:\TURBO cd \WORK turbo Присвоив этому файлу какое-либо имя, например, START. ВАТ, мы избавим себя от систематического набора указанных команд: достаточно набирать лишь слово START. Первая команда этого файла ECHO OFF отключает "эхо", т. е. блокирует выдачу на экран приглашений DOS и текстов последующих команд. Три следующие команды осуществляют настройку необходимых параметров (установка режима дисплея, задание альтернативных маршрутов и рабочего каталога), а последняя команда производит запуск системы TURBO Pascal. Пример 3. Для подготовки принтера к печати русского текста мы можем воспользоваться специальной программой загрузки шрифта, обращение к которой имеет вид: LFONT 0. Перед запуском этой программы нужно проделать подготовительные действия - включить принтер, вставить бумагу. Можно создать небольшой командный файл, который будет выдавать на экран соответствующее уведомление и затем запускать программу LFONT с указанным параметром. Вид такого файла: echo off echo Включите принтер, вставьте бумагу echo Будет загружен русский шрифт pause lfont 0 Дадим этому файлу имя LF.BAT. Для загрузки русского шрифта достаточно набрать команду LF. Исполнение этого командного файла начинается, как и в предыдущем примере, с команды ECHO OFF. Две следующие команды ECHO выводят на экран сообщения, заданные в файле в качестве текстовых строк - аргументов команд: "Включите принтер, вставьте бумагу" н "Будет загружен русский шрифт". Четвертая команда, PAUSE (пауза), приостанавливает дальнейшую обработку файла LF в ожидании, пока пользователь не нажмет какую-либо клавишу. Пауза нужна для того, чтобы можно было не спеша включить принтер и заправить бумагу. Наконец, последняя команда запускает программу LFONT. В последнем примере были использованы команды ECHO и PAUSE, управляющие выдачей информации на экран. К этой же категории можно отнести команду REM, которая служит для внесения в текст командного файла комментария. Строка, следующая sa символом REM, никак не интерпретируется командным процессором - она используется лишь для пояснений пользователю. С помощью команды REM удобно блокировать исполнение некоторых команд, не удаляя их из текста командного файла. Использование команд ECHO, PAUSE и REM полезно лишь в командных файлах; вводить их с клавиатуры для непосредственного исполнения не имеет особого смысла. Есть и другие команды, предназначенные главным образом для использования в командных файлах. К ним относятся: GOTO - безусловный переход (на метку); IF - проверка условия и ветвление; FOR - управление повторным выполнением команд; SHIFT - сдвиг списка формальных параметров. Отметим еще одно важное свойство командных файлов - возможность использования внутри них формальных параметров. Для пояснения этой возможности обратимся еще раз к первому примеру. Допустим, нам хотелось бы применять одну и ту же последовательность команд, приведенную в примере 1, для запуска разных подсистем. Тогда можно видоизменить приведенный выше текст файла V. ВАТ, заменив имя каталога GRAPH и имя вызываемой программы VICONT формальными параметрами. Командный файл при этом приобретает вид: cd \%1 %2 cd \WORK Символы %1 и %2 обозначают формальные параметры, вместо которых при обращении к файлу V.ВАТ будут подставлены в текстовом виде фактические параметры, указанные в командной строке. Обращение к V.ВАТ может иметь вид: V graph vicont Строки graph и vicont займут место соответственно параметров %1 и %2, в результате чего получится точно такой же текст, как и в примере 1. Однако новый командный файл, в отличие от прежнего, можно использовать для запуска других подсистем, например: V ss symph или V ww word В первом случае из каталога SS будет вызвана программа symph, во втором случае из каталога WW вызывается система word.

Развитые командные файлы Рассмотрим действие специальных команд, позволяющих управлять интерпретацией командных файлов. К ним относятся команды GOTO, IF, FOR, SHIFT, а также команда EXIT, играющая особую роль при рекурсивном вызове командных файлов. Команда GOTO. Позволяет передавать управление на метку и тем самым осуществлять повторное исполнение участков командного файла или, наоборот, обходить некоторые участки (что обычно имеет смысл в сочетании с командой ветвления IF). Пример 1. Пусть командный файл PR.ВАТ имеет вид echo off:m1 echo Вывод на принтер файла %1 echo Для остановки нажмите Ctrl-C copy %1 prn pause goto m1 В данном примере вторая строка содержит метку m1 (признаком метки является двоеточие в начале строки), а последняя строка - команду перехода на эту метку. Четыре команды внутри повторяемого участка командного файла служат для выдачи на экран поясняющих сообщений (команды ECHO) и копирования на принтер (т, е. печати) файла, имя которого подставляется вместо формального параметра %1. Команда PAUSE приостанавливает исполнение, чтобы пользователь имел возможность осмотреться и либо прервать работу, либо продолжить её дальше. Допустим, пользователь дает е терминала команду: pr spectr.doc Тогда начинается циклическое исполнение файла PR. ВАТ с фактическим параметром SPECTR.DOC. На принтер начнут выдаваться одна за другой копии этого текстового файла, прерываемые паузами после каждой очередной копии. Пользователь может прервать исполнение этого командного файла, нажав одновременно клавиши Ctrl и С.Команда IF. Позволяет проверять условие и выполнять команду в зависимости от результата его проверки. Что можно задавать в качестве условия? Для этого имеется три возможности: 1. Проверка кода завершения программы, сработавшей перед оператором IF. При этом в начале оператора IF используется конструкция следующего вида: IF ERRORLEVEL "N" Любая программа может с помощью специального прерывания DOS выработать в момент своего окончания так называемый код завершения. Этот код сравнивается с числом N. Условие считается выполненным (истинным), если выработанный код завершения равен или больше указанного числа N. 2. Проверка наличия файла в каталоге. В этом случае начало оператора IF имеет вид; IF EXIST (имя_файла) В данном случав команда IF проверяет, действительно ли существует файл с заданным именем в указанном или в текущем каталоге. При обнаружении файла условие считается выполненным. 3. Сравнение двух строк, которые, в частности, могут задаваться через формальные параметры. Соответствующая конструкция может иметь вид; IF %(N)=(текстовая_строка) Здесь значение формального параметра % (N) сопоставля,ется с конкретной строкой. При абсолютном совпадении двух строк условие считается выполненным.Команда FOR. Обеспечивает циклическое выполнение комацд DOS. При этом можно задать формальный параметр и список фактических параметров (обычно - имен файлов), которые последовательно подставляются вместо формального параметра в текст исполняемой команды. Пример 2. Пусть имеется необходимость систематически копировать файлы PROG.PAS, PROG.OBJ и PROG.EXE из рабочего каталога на диск D: . С этой целью можно в соответствующем командном файле дать команду: for %%А in (PAS OBJ ЕХЕ) do copy PROG.%%A D: Здесь формальный параметр %%А последовательно сопоставляется со списком фактических параметров в круглых скобках и используется командой COPY, которая в данном случае выполняется 3 раза подряд. Подставив в качестве второго параметра команды COPY вместо имени D: еще один формальный параметр %1, можно будет менять назначение копирования, задавая его с терминала.Команда SHIFT. Вызывает сдвиг списка формальных параметров относительно списка фактических параметров. Так, если в командном файле фигурируют формальные параметры %1 и %2, а в обращении к командному файлу - фактические параметры А, В, С, D, то сначала соответствие формальных и фактических параметров выглядит следующим образом: %1=А %2=В Однократное применения команды SHIFT дает следующее соответствие: %1=В %2=С Двукратное применение вызывает дальнейший сдвиг: %1=С %2=D Пример 3. Рассмотрим задачу, обратную задаче примера 2, а именно, - нужно копировать на диск D: файлы, имена которых пользователь будет вводить с терминала. Эту задачу позволит решить командный файл следующего вида: echo оff:1оор copy %1 D: shift goto loop Если присвоить этому файлу имя D.BAT и вызвать его с произвольным числом аргументов: d f.1 f.2 f.3 f.4 f.5 то будет происходить последовательное присваивание формальному параметру %1 значений f.1, f.2, f.3, f.4, f.5 и циклическое исполнение команд COPY и SHIFT. После исчерпания фактических параметров команда COPY выдаст сообщение об ошибке, поскольку ее первый аргумент будет отсутствовать. В этот момент пользователь сможет прервать работу командного файла, нажав клавиши Ctrl и C. Команда SHIFT используется также в тех случаях, когда число параметров командного файла превышает 9, так как в командном файле можно адресоваться к формальным параметрам только от %0 до %9.

Файл автозапуска AUTOEXEC.BATС точки зрения содержащейся в файле AUTOEXEC.BAT информации он является обычным командным файлом. Однако он играет особую роль, потому что при начальном запуске и инициализации системы, вслед за обработкой CONFIG.SYS, операционная система пытается найти в корневом каталоге системного диска файл AUTOEXEC.BAT н начинает его обработку автоматически, без какого-либо побуждения со стороны пользователя.В файл AUTOEXEC.BAT удобно занести различные команды, которые осуществят всю необходимую настройку системы. Пример. Рассмотрим следующий файл AUTOEXEC.BAT: echo off path C;\;C:\EXE prompt $p$g set ABC=C:\ABC rkvga.com ver fkeys.bat Начиная со второй строки этого файла, стоят команды, обеспечивающие создание определенной операционной обстановки. Рассмотрим их по порядку. 1. Команда PATH устанавливает альтернативные маршруты для поиска исполняемых файлов. В примере один из маршрутов указывает на системный подкаталог с именем ЕХЕ. Кроме того, как возможное место размещения используемых программ указан корневой каталог диска С: . В ряде случаев прикладные программы используют каталоги с именем BIN. В этом случае именно его имя полезно указать в команде PATH. Для пользователей, часто обращающихся к какой-либо одной системе программирования или прикладной системе (например, Turbo Pascal), может оказаться полезным включение в число альтернативных маршрутов имени соответствующего подкаталога. 2. Команда PROMPT задает формат пртглашения DOS. Задание формата приглашения осуществляется параметром команды - строкой, состоящей из обычных текстовых и специальных управляющих символов. Управляющие символы снабжаются префиксом - знаком $, отличающим их от обычных символов.

Команды файла config.Sys

Следующие команды можно использовать только в CONFIG.SYS:

BUFFERS = n [ , m ]

Устанавливает число буферов для дискового ввода-вывода, которые будут созданы и задействованы DOS.

FILES = n

Устанавливает максимальное число одновременно открытых файлов (8-255, по умолчанию 8).

COUNTRY = с [, [,file]]

Настраивает DOS для использования в заданной стране, устанавливая формат даты и времени, принятого в заданной стране

STACKS = n, s

Устанавливает число стеков n (0-64) и их размер s (0-512 байт) для аппаратных прерываний

SHELL = file [аргументы] [переключатели]

Обеспечивает настройку и замену стандартного CI Command.com на новый

SWITCHES = [переключатели]

Задает специальные опции для MS-DOS

LASTDRIVE = d

Задает список допустимых имен логических приводов для команды SUBST

DEVICE = file [аргументы] [переключатели]

Предназначена для подключения внешних драйверов устройств

DOS = HIGH | UMB | HIGH, UMB

Предназначена для загрузки резидентных модулей DOS в высокую память и обеспечения связи DOS с верхней памятью

DEVICEHIGH ] = file [аргументы] [переключатели]

Предназначена для загрузки внешнего драйвера не в стандартную, а в верхнюю память

Общие команды

Эти команды можно использовать в CONFIG.SYS и AUTOEXEC.BAT, а также в командной строке DOS:

Команды файла autoexec.Bat

Этот файл может включать любые команды DOS общего назначения, а также любые команды пакетных (командных) файлов. Но целесообразно использовать еще целый ряд команд:

MODE устройство CP PREPARE = ((cp [,cp]...) file)

Предназначена для подготовки кодовой страницы cp

MODE устройство CP SELECT = cp

Служит для загрузки подготовленной страницы в знакогенератор конкретного устройства

KEYB [код [,cp] [,file]]

Предназначена для настройки клавиатуры на национальный алфавит

LOADHIGH | LH ] file

Предназначена для загрузки резидентной программы не в стандартную, а в верхнюю память

MSCDEX /D:driver [ключи]

Организует доступ к приводам CD-ROM, заданным спецификациями driver, как к логическим дискам с файловой системой FAT

Загружает в память драйвер мыши, который представляет собой резидентную программу и находится во внешнем файле Mouse.com

7 . Команда LASTDRIVE = d

Задает список допустимых имен логических приводов для команды SUBST. Указывает, что можно использовать буквы от A до d включительно.

8 . Команда DEVICE = file [аргументы] [переключатели]

Предназначена для подключения внешних драйверов устройств.

Драйверы обычно оформляются обычным образом и имеют расширение sys, bin или com. В последнем случае драйвер подключается в файле Autoexec.bat, например , драйвер мыши Mouse.com.

9 . Команда DOS = HIGH | UMB | HIGH, UMB

Предназначена для загрузки резидентных модулей DOS в высокую память и обеспечения связи DOS с верхней памятью.

Аргумент HIGH специфицирует перемещение резидентных модулей DOS из стандартной памяти в высокую память, если она доступна. В противном случае эти модули остаются в стандартной памяти. По умолчанию используется аргумент LOW, предписывающий оставить резидентные модули DOS в стандартной памяти.

Аргумент UMB указывает, что DOS должна обеспечить связь с верхней памятью, сформированной драйвером Emm386.exe. Когда верхняя память не сформирована, этот аргумент игнорируется.

Аргумент NOUMB запрещает DOS организацию с верхней памятью и принимается по умолчанию.

Замечания: команда DOS может использоваться только в файле Config.sys; файл Config.sys может содержать одну или две, не противоречащие друг другу, команды DOS; перемещение резидентных модулей DOS в высокую память позволяет освободить до 60К стандартной памяти;

Наверх

10. Команда DEVICEHIGH ] = file [аргументы] [переключатели]

Предназначена для загрузки внешнего драйвера не в стандартную, а в верхнюю память.

Команда DEVICEHIGH является аналогом команды конфигурирования DEVICE, однако загружает драйвер не в стандартную память, а в верхнюю и предоставляет пользователю уточнение места загрузки этого драйвера при помощи ключа /L.

1). В ПК должна быть сформирована верхняя память; 2). Должна быть обеспечена связь DOS с верхней памятью; 3). В верхней памяти должен быть свободен по крайней мере один блок, размер которого достаточен для размещения драйвера.

Если хотя бы одно из этих условий не выполняется, то команда DEVICEHIGH выполняется точно так же как и ее аналог – команда DEVICE, загружая драйвер в стандартную память и подключая его к системе.

Когда переключатель /L не указан, драйвер загружается в наибольший свободный блок верхней памяти. Этот переключатель позволяет конкретизировать регион верхней памяти, в который следует загрузить драйвер. Регионы верхней памяти нумеруются целыми числами, начиная с 1. Считается, что стандартная память – это регион с номером 0. Получить номера регионов, имеющих свободные блоки памяти, можно путем выполнения команды MEM с переключателем /FREE.

Размер драйвера сразу после его загрузки в память называется загрузочным размером драйвера. Он, как правило, совпадает с длиной файла, содержащего драйвер. Иногда, этот размер в процессе работы драйвера изменяется. Он может больше первоначального, в том случае если происходит расширение за счет создаваемых драйвером информационных объектов. Или он может уменьшаться после выполнения действий, связанных с инициализацией модуля.

Чтобы “разбухание” драйвера не привело к краху системы из-за отсутствия смежной свободной памяти, в переключателе /L допускается указывать второе число s1, определяющее минимальный размер свободного блока, в который драйвер может быть загружен.

Переключатель /S обеспечивает усечение распределенного драйверу блока памяти после его загрузки наиболее эффективным образом. используется только совместно с указанием числа s1.

Пример: команда

DEVICEHIGH /L:1,18160 = C:\DRV\PIONEER.SYS /D:MSCD001

- загружает драйвер CD-ROM в первый регион, если в нем имеется свободный блок размером не менее 18160 байт.

Замечания: эта команда может принести ожидаемые действия только тогда, когда она задана после команды DEVICE, обеспечивающей подключение к системе драйвера Emm386.exe; эта команда не обеспечивает загрузку резидентных программ в верхнюю память;

В рассматриваемом примере строка $p$g в качестве параметра команды PROMPT обеспечивает выдачу приглашения, которое используется наиболее часто. Оно содержит имя текущего каталога и имеет, например, такой вид: C:\WORK> Если бы строка имела вид $t $d $b $p$g, то в приглашение были бы включены довольно длинные сообщения о времени и дате: 13:55:34.05 Mon 11 - 26 - 98 | C:\WORK) Командой PROMPT можно выдавать и другие информационные параметры, например, имя пользователя, название организации и др. 3. Команда SET позволяет вводить в операционную обстановку системы различные имена с параметрами, которые затем могут использоваться прикладными программами. Типичное использование таких параметров - задание имен каталогов, где должны находиться все рабочие файлы для данной прикладной системы (например, базы данных или текстового редактора). В рассматриваемом примере команда SET вводит имя АВС с параметром С:\АВС, которое является указанием текстовому процессору, откуда следует брать вспомогательные файлы (шрифты, драйверы и др.). Рассмотренные выше команды PATH и PROMPT также кодифицируют обстановку, но в отношении фиксированных имен (а именно, устанавливают параметры для имен PATH и PROMPT). Команда SET позволяет делать то же самое для произвольных имен, и ее, таким образом, можно рассматривать как обобщение вышерассмотренных команд. Команда SET может использоваться, например, для указания каталога, ориентированного на обслуживание конкретной прикладной программы. 4. Команда RKVGA.COM запускает русификатор шрифтов. 5. Команда VER в шестой строке файла AUTOEXEC.BAT является встроенной в DOS командой. Ее задача очень проста - выдать на экран сообщение о номере версии операционной системы. 6. Последняя команда в файле автозапуска - FKEYS.BAT - осуществляет вызов другого командного файла FKEYS.BAT, в котором происходит переопределение некоторых функциональных клавиш для предоставления пользователю возможности быстрого набора некоторых часто используемых команд. Таким образом, в рассмотренном файле автозапуска указаны команды, с помощью которых создается определенная операционная обстановка, способствующая удобной дальнейшей работе пользователя. Часто в файл автозапуска вставляются также команды управления экраном, с тем чтобы перед началом работы сделать цветные заставки, выдать сообщения и др. Применяется также команда MODE для установки параметров экрана, принтера и коммуникационного канала, а также команда ASSIGN для переназначения логических имен накопителей.

Управление внешними устройствами Некоторые команды DOS позволяют управлять характером работы компьютера и периферийных устройств. К числу таких команд относится команда Mode. Команда Mode - многоцелевая команда, но все ее цели имеют с небольшими вариациями один смысл: изменение режима работы аппаратуры. Обычно эту команду применяют в файле автозапуска Autoexec.bat, чтобы реконфигурация работы периферийных устройств выполнялась автоматически каждый раз при загрузке операционной системы. Команда Mode используется в следующих целях: - установка режимов работы принтеров; - установка режимов экрана монитора; - установка режимов работы последовательного порта ПК; - подготовка к работе последовательного принтера; - установка или замена кодовой страницы (при работе на альтернативных языках); - получение информации о текущих настройках режимов аппаратуры; - установка частоты повторения ввода нажатой клавиши. Для получения подробных сведений о методике применения команды Mode в конкретных случаях следует обратиться к справочной документации по DOS. Управлять экраном монитора можно также с помощью драйвера ANSI.SYS - специальной прграммы, подключаемой к DOS через файл конфигурации CONFIG.SYS. Этот драйвер объемом менее 2 К обеспечивает дополнительные функции управления дисплеем: задание цвета символов и фона, позиционирование курсора, переопределение символов, вводимых с клавиатуры и т.д. Реализация этих функций осуществляется с помощью следующего приема - в драйвер посылаются особые управляющие последовательности символов (так называемые Esc-последовательности), которые и заставляют его выполнять те или иные операции.

Рассмотрим подключение основных драйверов устройств.

Команда Path

Запускаемая на выполнение программа не обязательно должна находиться в текущем каталоге. Если файла нет в текущем каталоге, то производится его поиск в альтернативных каталогах, указанных командой PATH. Аргумент команды PATH содержит обозначения одного или нескольких маршрутов, разделяемых точкой с запятой, например:

PATH C:;C:DOS;D:WORKPROGRAMS

Операционная система запоминает список маршрутов, указанных в команде PATH, и использует его в дальнейшем всякий раз, когда пользователь выполняет внешнюю команду DOS или обращается из DOS к прикладной программе. Такая команда означает, что файл (типа СОМ, ЕХЕ или ВАТ), не найденный в текущем каталоге, следует искать сначала по маршруту С: , т. е. в корневом каталоге диска С; в случае неуспеха - по маршруту C:DOS, т.е. в подкаталоге 1-го уровня DOS, а затем - по маршруту D:WORKPROGRAMS.

Предписание альтернативных маршрутов становится очень удобным, если программы общего пользования сгруппированы в несколько каталогов.

Команда PATH обычно фигурирует в командном файле автозагрузки AUTOEXEC.ВАТ и срабатывает незаметно для пользователя. Узнать, какие альтернативные маршруты установлены в данный момент, пользователь может, давая команду PATH без аргументов.

Отменить установленные альтернативные маршруты можно командой PATH; .

Вызов программы из другого каталога можно также осуществить, снабдив имя запускаемой программы соответствующим префиксом: тогда файл будет загружаться из указанного префиксом каталога (независимо от установленных альтернативных маршрутов). Пример такого обращения к программе vicont:

A:> С:VICvicont

Рабочим здесь является диск А: , а программа vicon запускается из каталога VIC, находящегося на диске С: .

Точно так же и параметры - имена файлов - могут снабжаться необходимыми префиксами, обеспечивающими их поиск в соответствующих каталогах.

Команда Assign

Команда ASSIGN х=y позволяет переустанавливать логические имена дисков, связывая друг с другом пары имен. Например, после команды:

все обращения к диску с именем А: DOS заменяет на обращения к диску С: . Пар вида х=у в одной команде может быть несколько. Команда ASSIGN без параметров восстанавливает исходные имена накопителей.

Команду ASSIGN следует применять с осторожностью; основное ее назначение - заставить прикладную программу, работающую с фиксированным диском (например, А:), обратиться к другому физическому накопителю. В других целях применять ее не ре-комендуется.

Команда Format

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

В обращении к команде FORMAT можно указывать различные параметры. Первым параметром является имя накопителя, на котором установлен форматируемый диск. Пример простого обращения:

При таком обращении сначала выдается сообщение пользователю о необходимости установки в дисковод А: форматируемого диска. После этого он должен нажать клавишу "Исполнение", и программа форматирования начинает работать. Гибкие диски форматируются 30-40 секунд, форматирование жесткого диска может занять до 10 минут. По окончании форматирования выдается сообщение, в котором указывается объем диска, объем физически непригодных секторов и количество байтов, предоставляемых для работы.

Другие параметры - указатели режима форматирования задаются через разделитель /. Большинство из них относится к форматированию гибких дисков. Основные указатели:

/V - указывает на необходимость задания метки диска, которая вводится пользователем по окончании форматирования;

/S - указывает на необходимость переноса на диск операционной системы (трех файлов: BIO.SYS, MSDOS.SYS и COMMAND.COM);

/В - указывает на необходимость резервирования на диске места для файлов операционной системы, но без их фактического переноса.

Часть отформатированного пространства может быть занята под операционную систему (от 40 до 60 Кбайт, в зависимости от версии DOS), часть может оказаться исключенной из списка доступного пространства из-за дефектов на диске, обнаруженных при форматировании.

Команда Sys

Команда SYS позволяет перенести с текущего системного диска на другой диск (указанный в качестве параметра команды) два основных системных файла DOS - BIO.SYS и MSDOD.SYS (но не COMMAND.COM). При этом указанные файлы становятся "скрытыми" - они не показываются командой DIR, но об их присутствии яа диске сообщает команда CHKDSK. Следует иметь в виду, что DOS может быть перенесена командой SYS не на всякий диск, а только иа такой, который был отформатирован предварительно командой FORMAT с параметрами /S или /В, или на пустой отформатированный диск. Напомним, что команда форматирования с параметром /S выполняет делает ту же операцию, что и команда SYS, и, кроме того, добавляет на диск третий файл DOS - COMMAND.COM.

Перенесенная операционная система совпадает с той, которая в этот момент установлена на текущем системном диске. Номер текущей версии можно получить, с помощью команды VER.

Команды Vol и Label

Команда VOL предназначена для вывода метки диска и его серийного номера.

Формат команды:

Если не указано имя диска, подразумевается текущий диск.

Обычно метка диска вводится при его форматировании, если задан параметр /V команды FORMAT. Используя команду LABEL, это можно сделать и позднее. Эта команда предназначена для создания, замены и удаления метки диска. Формат команды:

LABEL [диск:][метка_диска]

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

Спецификация команды: MORE

Внешняя команда.

Команда используется как фильтр для дробления на порциии большого объёма текстовой информации, выдаваемой на консоль другими командами DOS. Порция имеет размер экрана (24 строки). По заполнении экрана делается пауза.

MORE может быть использована как самостоятельная команда для вывода на экран указанного в команде файла.

Примеры:

Спецификация команды: PROMPT

Встроенная команда.

PROMPT без параметра устанавливает стандартное приглашение (имя накопителя и знак "больше") к приёму команд DOS. Задание формата приглашения осуществляется особой строкой, состоящей из обычных текстовых символов и специальных управляющих символов. Управляющие символы снабжаются префиксом – знаком $, чтобы отличить их от обычных символов.

Наиболее часто используются следующие управляющие символы:

$p - выдача имени текущего (рабочего) каталога
$d - выдача текущей даты
$g - выдача символа-разделителя
$b - выдача символа-разделителя "|"
$h - стирание предыдущего символа
$e - начало выдачи Esc-последовательности
$n - выдача имени текущего накопителя

Реже используются следующие управляющие символы:

$q - выдача символа-разделителя "="
$l - выдача символа-разделителя "<"
$$ - выдача символа "$"

$_ - этот символ (подчерк) указывает на необходимость перехода на следующую строку

Строка "$p$g" в качестве параметра команды PROMPT обеспечивает выдачу приглашения, которое используется наиболее часто. Оно содержит лишь имя текущего каталога и имеет вид:

Здесь подстрока C:\WORK выдается под управлением символов $p, а знак > - под влиянием символов $g. Если бы управляющая строка имела вид "$t $d $b $p$g", то в приглашение были бы включены довольно длинные сообщения о времени и дате:

13:55:34.05 Mon 11-25-85 | C:\WORK>

Чтобы подавить выдачу секунд и долей секунд в таком приглашении, можно применить управляющие символы стирания $h; при этом их число должно соответствовать числу удаляемых символов.

Спецификация команды: BREAK

Встроенная команда.

Если BREAK находится в состоянии OFF, то прервать выполнение программы по CTRL-BREAK можно лишь при её обмене с дисплеем, принтером, клавиатурой или коммуникационным каналом.

Если BREAK=ON, то проверка CTRL-BREAK происходит во всех случаях, когда программа обращается к какой-либо функции DOS. Это позволяет прерывать исполнение программ, которые не обмениваются (или мало обмениваются) со стандартными устройствами. По умолчанию BREAK находится в состоянии OFF.

На дистрибутивных дискетах MS-DOS расположены файлы io.sys, msdos.sys, wina20.386, командный процессор command.com, файлы внешних команд операционной системы (такие, как format.com, fdisk.exe и т. п.), драйверы и другие файлы.

После установки MS-DOS файлы io.sys, msdos.sys, wina20.386 и command.com переписываются в корневой каталог диска C:. Остальные файлы записываются в отдельный каталог, который по умолчанию называется dos (хотя при установке вы можете указать другое имя). Дополнительно в корневом каталоге формируются два текстовых файла с именами config.sys и autoexec.bat.

Для чего предназначены файлы, расположенные в корневом каталоге диска C:?

Файлы io.sys, msdos.sys и command.com являются основными компонентами MS-DOS. Опишем назначение этих и других файлов более подробно.

IO.SYS

Файл io.sys содержит расширение базовой системы ввода/вывода BIOS (Basic Input/Output System) и является интерфейсом между операционной системой и BIOS. Расширение используется операционной системой для взаимодействия с аппаратурой компьютера и BIOS.

Для того чтобы максимально уменьшить зависимость программ от особенностей аппаратного обеспечения компьютера используется многоступенчатая схема доступа программ к устройствам ввода/вывода. Согласно этой схеме программа никогда (в идеальном случае) не обращается непосредственно к портам аппаратуры. Вместо этого она взывает программное прерывание с нужным номером и запрашивает ту или иную функцию, загружая соответствующим образом регистры процессора.

Все программные прерывания можно разделить на две группы.

Первая группа - это прерывания базовой системы ввода/вывода BIOS. Обработчик этих прерываний записан в микросхеме постоянного запоминающего устройства (ПЗУ), расположенной на основной плате компьютера (motherboard). Обработчики прерываний BIOS работают с портами ввода/вывода стандартных устройств компьютера и обслуживают соответствующие аппаратные прерывания.

В мире выпускается очень много различных моделей основных плат для компьютеров, совместимых в той или иной степени с IBM PC. Использование BIOS позволяет до некоторой степени стандартизовать программный интерфейс с аппаратурой, так как производитель основной платы может учесть в BIOS все аппаратные особенности.

Вторая группа - прерывания MS-DOS. Обработчики этих прерываний находятся в файлах io.sys и msdos.sys.

Расширение базовой системы ввода/вывода MS-DOS, расположенное в файле io.sys, является как бы прослойкой между операционной системой MS-DOS и BIOS. Для выполнения операций ввода/вывода ядро MS-DOS обращается как к самой базовой системе ввода/вывода BIOS, так и к ее расширению, загружаемому в оперативную память из файла io.sys.

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

MSDOS.SYS

Файл msdos.sys является в некотором смысле набором программ обработки прерываний, в частности прерывания INT 21h. Это ядро операционной системы.

Программы MS-DOS обращаются к прерыванию INT 21h в тех случаях, когда им нужно получить обслуживание от операционной системы. Например, заказать блок памяти, открыть файл или прочитать его содержимое, и т. д.

COMMAND.COM

Файл command.com - это так называемый командный процессор.

Командный процессор предназначен для организации диалога с пользователем компьютера. Он анализирует введенные команды и организует их выполнение.

Так называемые внутренние команды (dir, copy и т. д.) обрабатываются именно командным процессором. Не ищите в каталоге dos файлы программ с именами dir.exe или copy.com - таких файлов там нет. Внутренние команды потому и называются внутренними, что их обработчик находится в самой операционной системе. Точнее говоря, в файле command.com, который является важнейшей компонентой операционной системы MS-DOS.

Программист может написать свой собственный командный процессор и подключить его вместо стандартного. Новый командный процессор должен выполнять все функции, которые раньше выполняла стандартная программа command.com.

CONFIG.SYS

Файл config.sys представляет собой текстовый файл, предназначенный для определения конфигурации MS-DOS, а также для загрузки драйверов и резидентных программ. Он создается автоматически программой установки MS-DOS и затем при необходимости редактируется пользователем. Для редактирования файла можно использовать текстовый редактор edit, который входит в состав MS-DOS.

AUTOEXEC.BAT

Для автоматического выполнения часто используемых последовательностей команд MS-DOS можно создать так называемый пакетный файл. Этот текстовый файл с расширением имени.bat в каждой своей строке содержит вызов внутренней или внешней команды MS-DOS, а также специальные операторы.

На этапе установки MS-DOS в корневом каталоге диска C: создается пакетный файл с именем autoexec.bat. Этот файл запускается сразу после загрузки MS-DOS и содержит команды определения среды выполнения программ, а также вызовы инициализирующих и резидентных программ.

WINA20.386

Файл с именем wina20.386, который записывается в корневой каталог программой установки MS-DOS, представляет собой виртуальный драйвер для операционной системы Microsoft Windows (о виртуальных драйверах Microsoft Windows вы можете прочитать в 17 томе нашей серии книг "Библиотека системного программиста").

Основное назначение виртуального драйвера wina20.386 - обеспечение совместной работы со старшей областью памяти HMA операционных систем MS-DOS и Microsoft Windows версии 3.0 в расширенном режиме. Так как в настоящее время подавляющее большинство пользователей работают с Microsoft Windows версии 3.1 или с Microsoft Windows for Workgroups, этот файл, скорее всего, не понадобится вам совсем. Вы можете удалить его с диска.

Драйверы

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

Обычно драйверы находятся в файлах, имеющих расширение имени.sys, хотя есть и драйверы, встроенные в MS-DOS. Драйвер подключается к операционной системе MS-DOS с помощью оператора device, расположенного в файле config.sys.

Загрузочный файл драйвера имеет специальный формат, который будет подробно описан в нашей книге.

Драйверы легко решают проблемы использования новой аппаратуры - достаточно написать для нового устройства драйвер и подключить его к операционной системе. Прикладные программы и операционная система взаимодействуют с устройствами через драйвер, поэтому в них не нужно вносить изменения при подключении нового устройства.

Например, новое дисковое устройство может иметь другое количество дорожек и секторов, другие управляющие команды. Все это учитывается драйвером и базовой системой ввода/вывода BIOS, а прикладная программа будет работать с новым диском, как и раньше, используя прерывания BIOS и MS-DOS.

Внешние команды

Файлы внешних команд операционной системы содержат программы, предназначенные для выполнения разнообразных операций, таких как форматирование дисков, сортировка файлов, печать текстов и других.

Подробное описание внутренних и внешних команд выходит за рамки нашей книги. Основные команды описаны в первом томе нашей серии книг "Персональный компьютер - шаг за шагом". Сведения об остальных командах вы сможете найти в руководстве пользователя MS-DOS. Кроме того, в продаже есть много книг, посвященных командам MS-DOS.

Расскажем немного о программах, предназначенных для подготовки дисков и дискет.

Подготовка системной дискеты

Файлы операционной системы выделяются своим особым расположением на диске (кроме файла command.com) - эти файлы должны находиться в специально отведенном для них месте. Если вам нужно подготовить системную дискету (т. е. такую, с которой можно загружать операционную систему), для переноса файлов операционной системы следует использовать специальные средства. Если вы просто скопируете файлы msdos.sys и io.sys на чистую дискету, она от этого не станет системной.

Самый простой способ подготовки системной дискеты - отформатировать ее при помощи внешней команды format с параметром /s, например:

c:\>format a: /s

В этом случае после форматирования на дискету будут перенесены файлы операционной системы.

Вы можете также перенести системные файлы на дискету командой sys:

c:\>sys c:

Перед тем как вводить эту команду, сделайте текущим корневой каталог диска C:, так как в противном случае программа sys.com не сможет найти файлы io.sys, msdos.sys и command.com (что довольно странно, эти файлы найти достаточно легко).

Программа FDISK

Программа fdisk предназначена для подготовки жесткого диска к работе. Она разбивает диск на участки, называемые разделами.

На одном физическом диске могут быть разделы, принадлежащие разным операционным системам. Один из разделов всегда активный, так как операционная система загружается только из активного раздела.

Программа fdisk позволяет создать для MS-DOS первичный и вторичный раздел. В первичном разделе располагается системный диск C:, с которого выполняется загрузка операционной системы, вторичный раздел может быть разделен на логические диски (D:, E:, F: и т. д.). Диски, расположенные во вторичном разделе, не могут быть системными.

Заметим, что старые версии MS-DOS (до версии 4.0) позволяли создавать логические диски размером не более 32 Мбайт. Это связано с тем, что эти версии использовали 16-разрядную адресацию секторов диска, что недостаточно для дисков больших размеров.

Иногда вместо программы fdisk для подготовки жесткого диска используются специальные программы, такие как Advanced Disk Manager, Speed Stor и т. д. Используя свои собственные форматы разделов и таблиц разделов (и свои драйверы дисковых устройств), перечисленные выше программы предоставляют такие дополнительные возможности, как защита логического диска от записи или организация парольной защиты данных на диске. При этом для доступа к нестандартному разделу используется специальный драйвер.

Однако не всегда применение специальных программ формирования разделов может привести к желаемому результату. Защита от несанкционированного доступа часто легко преодолевается, мощные системы защиты могут быть сильно привязаны к конкретной версии операционной системы.

Кроме того, драйверы, используемые для доступа к нестандартным разделам диска занимают дефицитное место в оперативной памяти и уменьшают производительность MS-DOS.

Некоторые программы, особенно защищенные от копирования, отказываются работать на диске, подготовленном нестандартными средствами. Причины этого мы объясним в следующем томе, когда будем обсуждать проблемы защиты программ от несанкционированного копирования.

Резидентные программы

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

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

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

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

В качестве альтернативы пользователь MS-DOS версий от 5.0 и выше может использовать переключатель задач. Однако этот способ имеет свои недостатки.