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

Файл конфигурации 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-последовательности), которые и заставляют его выполнять те или иные операции.

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

Команда SYS появилась одновременно с DOS (в системе PC-DOS - начиная с версии 1.0, в системе MS-DOS - с версии 1.25). SYS - единственная команда DOS, позволяющая переписывать скрытые файлы на уровне файловых операций. Записать эти файлы средствами DOS, не прибегая к помощи SYS, можно, только переписав весь диск на физическом уровне или задав ключ /S в команде FORMAT.

Ядро DOS размещено в следующих файлах:
- IO.SYS (IBMBIO.COM для системы PC-DOS);
- MSDOS.SYS (IBMDOS.COM для системы PC-DOS);
- COMMAND.COM.

В отличие от команды FORMAT с ключом /S по команде SYS интерпретатор командной строки COMMAND.COM не переписывается.
Позиционная зависимость при размещении скрытых файлов на магнитном диске, хотя и упрощает некоторые алгоритмы системы, но создает ряд неудобств для пользователя. Одно из них - необходимость предварительного резервирования места на магнитном диске, когда на нем планируется разместить скрытые системные файлы. Это осуществляется с помощью команды FORMAT с ключом /В (при форматировании без этого ключа скрытые системные файлы могут быть записаны только в случае, если на диске нет ни одного другого файла).

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

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

НАЗНАЧЕНИЕ. Команда SYS перезаписывает скрытые файлы DOS с системного магнитного диска на любой другой диск, доступный системе. Она дополняет команды, предназначенные для копирования обычных файлов и в совокупности с ними позволяет легко инициализировать системные диски.

ОПИСАНИЕ. Команда SYS реализуется достаточно просто. Загрузочный модуль программы, интерпретирующей эту команду, занимает в памяти всего около 4 Кбайт, а алгоритм является практически линейным.
Команда SYS считывает с целевого диска таблицу FAT и, если ее анализ показывает, что пространство, предназначенное для размещения скрытых системных файлов, свободно, переписывает эти файлы с текущего диска на целевой. В противном случае выдается сообщение об ошибке:
No room for system on destination disk
(На целевом диске отсутствует место для системы).
Если резервирование проводилось командой FORMAT более старой версии и места для размещения системных файлов загруженной версии ОС недостаточно, то копирование не производится, а выдается сообщение
Incompatible system size (несовместимость по размеру системы).
При использовании команды SYS необходимо помнить:
- для успешного выполнения команды в корневом каталоге целевого накопителя должны быть свободны как минимум две записи для имен файлов, а также дисковое пространство в области расположения скрытых системных файлов;
- SYS не работает с сетевыми приводами магнитных дисков;
- SYS не работает с дисками, эмулированными по команде SUBST или объединенными по команде JOIN;
- перед загрузкой DOS после выполнения команды SYS необходимо убедиться в наличии файла загрузочного модуля интерпретатора командной строки. Если он запорчен или отсутствует в каталоге, указанном переменной COMSPEC, то при перезагрузке DOS выведет сообщение об ошибке:
Bad or Missing Command Interpreter (Интерпретатор команд запорчен или отсутствует).
Команда SYS - внешняя, выполняется программой, загрузочный модуль которой содержится в файле SYS.COM.

ФОРМАТ.
[маршрут] SYS цел привод

Спецификация d.маршрут - каталог, содержащий файл загрузочного модуля программы SYS.
Параметр цел.привод - имя привода магнитных дисков, на который переносятся файлы ОС.

Пример 34.
C:>sys а: System transferred

Наиболее часто встречающиеся рекомендации по запуску звучат так: Пуск, выполнить, cmd . В меню пуск присутствует пункт Выполнить. Он запускает программу, которая позволяет передавать единичные команды системе Windows. В данном случае команда cmd запускает исполняемый файл cmd.exe , находящийся в папке system32 .

C:\WINDOWS\system32\cmd.exe

На некоторых версиях Windows пункт меню выполнить по умолчанию убран. В этом случае жмёте + R , вводите cmd , далее Enter . Также можно запустить командную строку непосредственно из папки system32, сделав ярлык для запуска на рабочем столе (кликаем на cmd.exe правой клавишей мыши и в меню выбираем пункт Отправить/Рабочий стол) или же через диспетчер задач (кнопка новая задача - cmd).

По умолчанию в командной строке нельзя работать мышью (перемещать курсор или выделять текст). Это неудобно вообще и новичкам в особенности. К тому же чёрный экран выглядит как-то слишком мрачно и уныло. Поэтому после запуска командной строки

нужно будет изменить её настройки. Жмём правой клавишей на окне cmd и выбираем умолчания. Стоит сразу отметить, что настройки умолчаний относятся к cmd.exe в целом, а свойства - к конкретному открытому окну.

В появившемся окне свойств командной строки видим четыре вкладки:

На вкладке Параметры стоит отметить пункты отбрасывать повторения (чтобы снизить заполнение буфера команд) и выделение мышью (чтобы можно было использовать мышь в работе).

На вкладках Шрифты и Цвета всё просто: выбираете размер, тип и цвет шрифта, а также фоновый цвет окна. Отмечу только, что размер шрифта влияет на размеры окна командной строки, поэтому его надо выставлять до размеров окна, а не после.

Во вкладке Расположение задаются размеры окна и его начальное расположение при запуске. Я так до конца и не понял в каких единицах представлены величины, поэтому размер советую выставлять, руководствуясь окном предпросмотра слева.

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

Также если строка не впишется в ширину окна это приведёт к её переносу. Воспринимать представленную таким образом информацию менее удобно. Поэтому буфер я ставлю всегда намного больше размеров окна. Это позволяет просмотреть большие объёмы информации, воспользовавшись полосами прокрутки справа и снизу. Картинка ниже кликабельна. На превью показано начало вывода команды dir для папки system32, а нажав на превью можно увидеть хвост вывода (обратите внимание на полосу прокрутки справа - данных очень много).

Команды командной строки

Консоль настроена, теперь осталось ознакомить вас с командами командной строки. Для вывода их полного списка достаточно набрать команду help .

help - вывод справки по командам help CD или CD /? - вывод справки по одной команде (для команды CD ) cd - переход в корневой каталог cd .. - переход в родительский каталог D: - переход на диск D . dir - вывод всего содержимого папки dir *.exe - вывод списка exe -файлов папки cls - очистить экран командной строки

Командная строка запоминает команды, которые вы вводите. Листать их можно клавишами ⇑ и ⇓ . Можно просматривать содержимое папки при помощи клавиши Tab (Shift +Tab листает в обратном порядке). Можно пролистать файлы на конкретную букву или буквы. Например, напечатав букву s и нажимая Tab , можно пролистать только файлы и папки, начинающиеся на эту букву (s ystem, s ystem32, s ystem.ini и т.д.) . Как это можно использовать:

Например, вам надо перейти из корня диска C в папку system32, найти и запустить в ней контрольную панель. Можно просто напечатать:

C:\windows\ system32\ control.exe

Но это не всегда быстро и удобно, к тому же не всегда знаешь - что конкретно надо набирать. Поэтому можно набрать команду cd , затем после пробела набрать wi Windows, поставить после неё слэш, набрать буквы sy , пролистать клавишей Tab до папки sy stem32, затем опять слэш и то же самое с control.exe.

C: cd wi ndows\sy stem32\co ntrol.exe

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

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

В заключение статьи скажу, что cmd.exe - это просто программа ввода-вывода, такая же, как и блокнот. Разумеется, есть более продвинутые аналоги, которыми тоже можно пользоваться. Одна из таких программ - Console Portable

Кстати, в операционной системе GNU Linux командную строку можно вызывать прямо из папки. При этом строка откроется сразу с адресом папки и его не надо будет набивать вручную. В Windows для того, чтобы открыть командную строку непосредственно в папке, необходимо, зажав Shift , нажать правую клавишу мыши и выбрать в меню пункт "Открыть окно команд".

Также можно добавить эту возможность (и целый ряд других) с помощью программы расширения контекстного меню FileMenu Tools :

На дистрибутивных дискетах 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 и выше может использовать переключатель задач. Однако этот способ имеет свои недостатки.

Спецификация команды: 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.