Пример для изучения: операционная система MS-DOS

Команды конфигурирования системы

Введение

Под конфигурированием системы понимается настройка системы для достижения поставленных целей, а именно:

• настройку системы на конкретную конфигурацию оборудования PC;

• адаптацию системы к потребностям пользователя;

• повышение эффективности функционирования DOS и производительности PC в целом. Конфигурирование DOS осуществляется модулем расширения BIOS во время загрузки системы по указаниям, заданным в виде специальных команд в файле Config.sys. и командным интерпретатором (CI) при выполнении команд файла автозапуска Autoexec.bat. Оба файла должны находиться в корневом каталоге системного диска.

Файл Config.sys

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

После изменения содержимого команд файла Config.sys для конфигурации DOS в соответствии с новыми командами следует перезагрузить систему.

Перечистим основные команды конфигурирования системы.

2.1. Команда BREAK = {ОУ | OFF}

Предназначена для управления прерыванием программ по Ctrl-Break (Ctrl-C). Имеет два режима Off и On. Если прерывание включено (On), то DOS анализирует нажатие клавиш Ctrl-C перед всеми операциями ввода-вывода. Иначе, прерывание выключено. Например, BR£AK=on.

2.2. Команда BUFFERS = n [,m]

Устанавливает число буферов для дискового ввода-вывода, которые будут созданы и задействованы DOS. Каждый буфер может хранить информацию из одного сектора (512 байт). Наличие буферов DOS существенно облег чает обработку файлов, если прикладная программа многократно обращается к одним и тем же областям файла. В этом случае при первом обращении к файлу требуемые программе секторы будут считаны в буферы DOS и при дальнейшей работе с этими данными программа будет обращаться не к диску, а к буферам DOS в оперативной памяти, что требует существенно меньше времени. В среднем при увеличении п эффективность системы сначала возрастает, а затем начинает снижаться, г.к. при любом обращении к данным DOS сначала вынуждена просматривать все буфера в поисках затребованных данных. :m- объем буфера предввода, используемого для ускорения дисковых операций. Буфер предввода автоматически заполняется системой данными из m (1-8) секторов, следующих за запрошенными в настоящий момент программой. Этот буфер особенно эффективен в случае последовательного доступа к длинным файлам. Например, BUFFERS = 20.

2.3. Команда FILES = п

Устанавливает максимальное число одновременно открытых файлов (8-255. по умолчанию 8). Данную команду следует использовать, если появится на экране сообщение об исчерпании обработчиков файлов (file handler), причем увеличение п ведет к возрастанию размера резидентной части DOS. Например,FILES = 20

2.4. Команда COUNTRY = с [, [ср][file]]

Настраивает DOS для использования в заданной стране, устанавливая формат даты и времени, принятого в заданной стране. Влияет на задание таких команд, как DATE и TIME. Код страны (для России равен 007) определяет использование типичных для соответствующей страны форматов дат. времени, десятичных разделителей и денежных единиц. Эта информация извлекается из файла, специфицированного как file. Если этот аргумент не задан, ты выбирается файл Country.sys из корневого каталога системного диска. Номер кодовой страницы можно не задавать. Например, для России: COUNTRY = 007, 866, C:\DOS\Country.sys

2.5. Команда STACKS = п, s

Устанавливает число стеков п (0-64) и их размер s (0-512 байт) для аппаратных прерываний. По данной команде DOS выделяет необходимую область памяти и формирует в ней пул ( англ. pool — накопитель) из п стеков размером в s байт. Эти стеки обеспечивают решение проблем, связанных с обработкой повторных (когда прерывание происходит до окончания обработки предыдущего прерывания того же типа) и одновременно возникающих аппаратных прерываний. При каждом аппаратном прерывании DOS выделяет для него стек из имеющегося пула и обеспечивает доступ обработчика к стеку. После обработки прерывания ставший больше ненужным стек возвращается в пул. Например, STACKS = 8, 512 для формирования пула из 8 стеков по 512 байт каждый.

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

Обеспечивает настройку и замену стандартного CI Command.com на новый. Данная команда включается в Config.sys в случаях, когда требуется:

1 использовать вместо стандартного CI другую программу;

2 загрузить Command.com не из корневого каталога;

3 установить размер окружения для стандартного С1, отличающегося по умолчанию;

4 изменить режим работы CI.

Например, SHELL = C:\DOS\Command.com /Е:512 /Р

запускает CI из каталога C:\DOS, выделяет под окружение 512 Б и запрещает выходить из CI по команде EXIT.

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

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

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

2.9.1. Драйвер Himem.sys

Предназначен для управления расширенной и высокой памятью в соответствии со спецификацией XMS. Имеет следующий синтаксис:

DEVICE § [dir\] Himem.svs [/НМЛMIN=n] f/NUMHENDLES=m] [/INT15=p]

[EISA] [/A20CONTROL:{ON]OFF}] [/SHADOWRAM: {ON\OFF}]

[/CPUCLOCK:{ON\OFF}] [/MACHINE:c] [/VERBOSE]

Этот драйвер выполняет две основные функции:

1 обеспечивает доступ выполняемых программ к расширенной памяти в соответствии со спецификацией XMS, при этом возможно преобразование в XMS-память не всей базовой расширенной памяти (для того, чтобы она могла использоваться рядом устаревших программ по стандарту EMS);

2 формирует высокую память и управляет ею, при этом, в качестве расходного материала для высокой памяти используются первые 64 К расширенной памяти.

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

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

Например, DEVICE = C:\DOS\Himem.sys /HMAMIN=60 - подключить к системе драйвер и разрешить загрузку в высокую

память программы размером не менее 60 Кб.

Замечания:

• драйвер Himem.sys занимает в стандартной памяти около 4К;

• свободная высокая память также может использоваться для хранения данных исполняемой программы, если она обращается к драйверу Himem.sys с таким запросом;

• команда на подключение к системе этого драйвера должна быть указана в файле Config.sys перед всеми командами, которые обеспечивают подключение драйверов, использующих XMS память (все внешние драйверы, использующие расширенную память, в частности, драйвер Emm386.exe, являются таковыми);

• драйвер Himem.sys может находиться в любом месте файловой структуры любого диска;

• о правильности загрузки драйвера можно судить по выдачам команды MEM.

2.9.2. Драйвер Emm386.exe

Предназначен для эмуляции отображаемой памяти в соответствии со спецификацией EMS и управление верхней памятью. Имеет следующий синтаксис:

DEVICE = [dir\]Emm386.exe [ON\OFF\AUTO] [FRAME=a] [NOEMS] [RAM[=f-g]j

Этот драйвер реализует две основные функции:

1 эмуляцию отображаемой памяти в соответствии со спецификацией EMS и управление ею;

2 формирование верхней памяти и управление ею.

Расходным материалом как для отображаемой, так и для верхней памяти является XMS-память.

Этот драйвер может выделить одну часть XMS-памяти для доступа к ней по стандарту EMS, а другую - под верхнюю память. Он, также, способен осуществлять сканирование UMA с целью поиска "дыр" под окно отображаемой памяти и регионы верхней памяти.

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

Переключатель RAM=[f-g] предписывает драйверу осуществлять поддержку отображаемой памяти, так и верхней памяти, причем под регионы последней использовать фрагмент UMA, границы которого определяются адресами. Переключатель NOEMS запрещает эмуляцию отображаемой памяти, разрешая поддержку верхней памяти. Его указание увеличивает размер доступной верхней памяти на 64К, поскольку окно отображаемой памяти в этом случае не создается. При отсутствии переключателей RAM и NOEMS, поддержка верхней памяти драйвером не производится. Замечания:

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

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

• режим работы драйвера можно сменить после его установки путем выполнения команды Emm386.

2.9.3. Драйвер DYSPLA У.SYS

Предназначен для подключения кодовых страниц для дисплея. Имеет следующий синтаксис: DEVICE = [dir\] DISPLA Y.SYS CON[:]. J = ([тип дисплея]

[номер страницы], {п\(п, т)})

Без выполнения этой команды в Config.sys можно будет невозможно включить в файл Autoexec.bat команды подготовки и

подключения кодовой страницы с национальным алфавитом.

тип дисплея - LCD (для жидкокристаллических дисплеев) или EGA

n - число кодовых страниц (для EGA 2),

m - число шрифтов, поддерживаемых каждой страницей.

Например, device=C: \ WIN DO IVS' COMMA ND\display. sys con=(ega,866,l)

определяется использование в адаптере EGA аппаратной страницы 866 (Россия) и формируется один буфер для составленных кодовых страниц.

2.8. Команда 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К стандартной памяти;

2.9. Команда DEVICEHIGH [/L:r1,[s1] [/S]] = file [аргументы] [переключатели] Предназначена для загрузки внешнего драйвера не в стандартную, а в верхнюю память.

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

1 в ПК должна быть сформирована верхняя память;

2 должна быть обеспечена связь DOS с верхней памятью;

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

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

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

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

• эта команда не обеспечивает загрузку резидентных программ в верхнюю память;

3. Файл Autoexec.bat

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

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

также любые команды командных файлов. Как правило, содержит такие команды, примеры которых приведены ниже:

@ЕСНО OFF

PROMPT $p$g

PATH C:\DOS:c:\nc:c:\drv

SET TEMPCADOS

Мы их уже рассматривали ранее. Кроме этого, в файл автозагрузки часто включают запуск программ, например, оболочки

Norton Commander. Но целесообразно использовать еше целый ряд команд, которые разобраны ниже.

3.1. Команда MODE устройство CP PREPARE = ((ср [.ср]...) file)

Предназначена для подготовки кодовой страницы ср ( или нескольких кодовых страниц) по спецификации из файла file на конкретном посимвольном устройстве, которым может быть CON. LPT1 (PRN) и др. Наиболее употребляемыми кодовыми страницами являются:

437 США 737 Греция

850 Германия 863 Франция

855 Cyrillic I 866 Russian (Cyrillic И)

Их спецификации находятся в файле ega3.cpi в комплекте MS-DOS 6.22.

Например, MODE CON CP PREPARE=((866, 855)C:\DOS\EGA3.CPI) подготавливает кодовые страницы 866 и 855 для консоли.

3.2. Команда MODE устройство CP SELECT - ср

Служит для загрузки подготовленной страницы в знакогенератор конкретного устройства. Например. MODE CON CP SELECT = 866 загружает кодовую страницу для России в знакогенератор адаптера EGA, что обеспечивает вывод на экран русских букв.

3.3.Команда KEYB [код [,ср] [file]]

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

В комплект MS-DOS входит драйвер Keybrd3.sys, который содержит поддержку для большинства европейских стран, например.

Болгария bg Греция gk

Германия gr Россия ru

Если не указана кодовая страница, то используется кодовая страница из директивы COUNTRY файла Config.sys. а если отсутствует спецификация файла, то подключается драйвер Keybord.sys из корневого каталога системного диска Например, KEYB rи„ C:\DOS\KEYBRD2.SYS подключает драйвер-русификатор из файла Keybrd3.sys.

3.4. Команда LOADHIGH | LH [/L:r1[,r1] f/S]] file [argument] [swtlist]

Предназначена для загрузки резидентной программы не в стандартную, а в верхнюю память, при этом происходит освобождение стандартной памяти для нерезидентных программ. Эта команда решает те же задачи, что и команда конфигурирования DEVICEHIGH, однако вместо внешнего драйвера она загружает резидентную программу, находящуюся в файле file. Условия загрузки этой программы такие же, как и для загрузки драйвера. Переключатели имеют такой же смысл. Может вводиться либо из строки DOS, либо из командного файла (чаше всего из Autoexec.bat).

Пример типичных файлов конфигурации

Config.sys Autoexec.bat

Команды адаптации системы BUFFERS=15,0 @ЕСНО OFF

FILES=30 PROMPT $p$g

LASTDRIVE=Z PA TH С: \ DOS;c: \nc:c: \drv

FCBS=4,0 SET TEMP=C:\DOS

Команды управления расширенной памятью

DE VICE= С: \DOS\HIMEM. SYS DEV1CE=C: \DOS\EMM386.EXE RAM DOS-HIGH. UMB

Поддержка национальных стандартов

Countiy=007,866, С: \DOS\country.sys MODE CON CP PREP ARE-((866, 855) C:\DOS\EGA3. CPI)

DEVICEHIGH=C: \DOS\displav.sys con=(ega,, 1) MODE CON CP SELEC=866

LH KEYB SYS ru,,C:\D0S\KEYBRD2. SYS

Поддержка привода CD-ROM

DEVJCEHIGH=C: \DRV\PIONEER. SYS /D: MSCD001 LH MSCDEX /d.MSCD001

Запуск резидентных программ mouse

nc

Наши рекомендации