Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Dos7book

.pdf
Скачиваний:
97
Добавлен:
09.02.2015
Размер:
5 Мб
Скачать
☆

Глава 4: Команды файла Config.sys

В MS-DOS7 был введен ряд новых конфигурационных команд (4.01, 4.04, 4.11, 4.13, 4.18, 4.28), а некоторые команды (4.08, 4.30) изменены, дополнены новыми параметрами. Старые команды загрузки драйверов в MS-DOS7 исполняются иначе

– по умолчанию осуществляют загрузку за пределы обыкновенной памяти: команда

DEVICE исполняется как DEVICEHIGH, команда BUFFERS – как BUFFERSHIGH,

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

принятые по умолчанию установки необходимо отменять указанием параметра NOAUTO в команде DOS (4.08). Эти и другие особенности исполнения команд из файла CONFIG.SYS рассмотрены детально в последующих разделах 4-й главы.

4.01ACCDATE – регистрация даты последнего доступа

Команда ACCDATE (ACCess DATE = дата доступа) позволяет разрешить или

запретить занесение даты последнего доступа к файлу в соответствующую этому файлу запись в каталоге (A.09-1). По умолчанию дата доступа записывается на жесткие магнитные диски, но не записывается на дискеты. После команды ACCDATE нужно указать перечень дисков со знаками плюс (разрешить) или минус (запретить), например:

ACCDATE C+ D- E- R-

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

4.02BREAK – управление перехватом доступа к дискам

Команда BREAK (= прервать) изменяет состояние двоичной переменной (флага), от которой зависит перехват обращений к дисководам. По умолчанию эта переменная сброшена (OFF), так что нажатия клавиш BREAK и CTRL-C проверяются только тогда, когда DOS обращается к драйверу консоли для выдачи сообщений на экран или для ввода данных с клавиатуры. Только в эти моменты времени нажатия упомянутых клавиш останавливают исполнение программ. Но

посредством команды

BREAK ON

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

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

Отменить перехват дисковых операций можно командой

BREAK OFF

– 81 –

Глава 4: Команды файла Config.sys

После того как загрузчик IO.SYS завершит свою миссию, команду BREAK будет исполнять командный интерпретатор COMMAND.COM (3.01).

4.03BUFFERS – выделение памяти под буферы

Команда BUFFERS (= буферы) резервирует память под буферы по 512 байт каждый, обслуживающие доступ к дискам. По умолчанию MS-DOS7 создает 30 первичных буферов и 0 вторичных. С помощью команды BUFFERS допускается устанавливать от 1 до 99 первичных буферов и от 0 до 8 вторичных буферов. Вторичные буфера нужны тогда, когда предполагается осуществлять двойное буферирование с помощью драйвера DBLBUFF.SYS (5.06-02). Например, команда

BUFFERS=12,6

обеспечит выделение 9 кбайт памяти под 12 первичных и 6 вторичных буферов. При количестве буферов менее 30 операции доступа к дискам несколько замедляются. Когда загружен драйвер SMARTDRV.EXE (5.06-01), количество буферов может быть уменьшено до 10.

Примечание 1: по умолчанию буферы размещаются за пределами обыкновенной памяти (выше 640 кбайт), но будут размещены ниже границы 640 кбайт, если в команде DOS (4.08) указан параметр NOAUTO, а также если адресное пространство в области UMB недостаточно или недоступно (условия доступности – в разделе 4.07). В любом случае сообщение об ошибке не выдается.

Примечание 2: встречаются компьютеры, у которых контроллер прямого доступа в память (DMA) не обслуживает область UMB или ее часть, даже когда драйвер UMBPCI.SYS (5.04-04) открыл для доступа всю область UMB. В таких компьютерах лучше размещать буферы в обыкновенной памяти или в области выше 1088 кбайт, открываемой драйвером EMM386.EXE (5.04-02). Однако иногда эту проблему может решить дополнительный драйвер LOWDMA.SYS, поставляемый вместе с UMBPCI.SYS.

4.04BUFFERSHIGH – выделение памяти под буферы

Команда BUFFERSHIGH делает то же самое, что команда BUFFERS (4.03), но только размещает буферы за пределами обыкновенной памяти независимо от того, указан ли параметр NOAUTO в команде DOS (4.08). Все остальные сведения из раздела 4.03 в равной мере применимы к команде BUFFERSHIGH.

– 82 –

Глава 4: Команды файла Config.sys

4.05COUNTRY – обеспечение национальной адаптации

Команда COUNTRY (= страна) осуществляет выборочное считывание данных из файла COUNTRY.SYS (5.02-01) и изменяет национальные настройки DOS (A.02-4, A.02-5) в соответствии со считанными данными. В частности, это обеспечивает доступ к файлам, имена которых содержат знаки национальных алфавитов. Вот пример спецификации команды COUNTRY:

COUNTRY=007,866,C:\DOS\DRV\COUNTRY.SYS

здесь:

007 – код страны для России.

866 – кодовая страница со знаками алфавита для России. C:\DOS\DRV\ – пример пути к файлу COUNTRY.SYS.

Примечание 1: номера кодовых страниц и коды других стран приведены в приложении A.02-2.

4.06DEVICE – загрузка драйверов устройств

Команда DEVICE (= устройство) загружает в память драйверы устройств, снабженные заголовком специального формата (A.05-1). Такие драйверы загружаются до завершения формирования системных структур DOS и обычно имеют суффикс *.SYS. У драйверов с суффиксами *.COM и *.EXE наличие специального заголовка не обязательно, и если его нет, то загружать такой драйвер следует не командой DEVICE, а командой INSTALL (4.15).

Вот пример загрузки драйвера с суффиксом *.SYS командой DEVICE:

DEVICE=C:\DOS\DRV\HIMEM.SYS /EISA /V

здесь:

HIMEM.SYS

– пример имени загружаемого драйвера.

C:\DOS\DRV\

– пример пути к загружаемому драйверу.

/EISA /V – пример группы параметров, передаваемых загружаемому драйверу. Эти параметры специфичны для каждого конкретного драйвера.

Вот еще пример загрузки другого драйвера с другой группой параметров:

DEVICE?=\DOS\DRV\EMM386.EXE RAM /V

В последнем примере важно отметить два различия. Во-первых, путь (\DOS\DRV\) без указания буквы диска дает возможность загружать DOS с заранее неизвестного диска. Во-вторых, после команды DEVICE поставлен знак вопроса. Он вызывает выведение данной строки на экран дисплея с вопросом, загружать ли указанный в ней драйвер или нет:

– 83 –

Глава 4: Команды файла Config.sys

[Enter=Y, Esc=N]?

Затем загрузчик останавливает исполнение и ожидает ответа пользователя нажатием клавиши Enter (да) или нажатием клавиши Esc (нет).

Примечание 1: загружаемые драйверы по умолчанию размещаются за пределами обыкновенной памяти (выше 640 кбайт), но будут размещены ниже границы 640 кбайт, если в команде DOS (4.08) указан параметр NOAUTO, а также если адресное пространство в области UMB недостаточно или недоступно (условия доступности – в разделе 4.07). В любом случае сообщение об ошибке не выдается.

Примечание 2: команда DEVICE не дает возможности оптимизировать распределение адресного пространства в области UMB. Если это существенно, то вместо команды DEVICE следует применять команду DEVICEHIGH (4.07).

4.07DEVICEHIGH – загрузка драйверов устройств

Команда DEVICEHIGH делает то же самое, что команда DEVICE (4.06), но только размещает загружаемый драйвер за пределами обыкновенной памяти всегда, когда доступно адресное пространство в области UMB, независимо от того, указан ли параметр NOAUTO в команде DOS (4.08). Чтобы открыть адресное пространство области UMB (640 – 1024 кбайт), нужно выполнить следующие условия:

–иметь процессор не более древний, чем 80386;

–указать в команде DOS (4.08) параметр UMB;

–первым загрузить драйвер HIMEM.SYS (5.04-01) командой DEVICE;

–потом загрузить командой DEVICE драйвер EMM386.EXE (5.04-02) или драйвер UMBPCI.SYS (5.04-04).

Простая строка с командой DEVICEHIGH выглядит, например, так:

DEVICEHIGH=C:\DOS\DRV\SETVER.EXE

Указанный драйвер (в частности, SETVER.EXE) будет загружен так, чтобы его можно было бы адресовать через ту часть адресного пространства области UMB, где больше свободного места, при условии, что этого свободного места достаточно для размещения резидентного модуля данного драйвера.

Так же как и к команде DEVICE (4.06), к команде DEVICEHIGH в конце можно приписать вопросительный знак: DEVICEHIGH?=... . Он вызывает запрос к пользователю о подтверждении загрузки указанного в данной строке драйвера.

Команда DEVICEHIGH дает возможность указать конкретную часть адресного пространства области UMB, через которую предстоит обращаться к данному драйверу, например:

– 84 –

Глава 4: Команды файла Config.sys

DEVICEHIGH /L:1,15792 =C:\DOS\DRV\DISPLAY.SYS CON=(EGA,,1)

здесь:

/L:1

– пример номера части адресного пространства области UMB: его

 

можно узнать из листинга, выводимого программой MEM.EXE

 

(6.17) при ее запуске с параметром /F.

15792

– необязательная спецификация размера участка памяти, который

 

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

 

обычно не совпадает с размером файла.

Если конкретный драйвер допускает загрузку в несколько частей адресного пространства, то при параметре /L можно указать несколько номеров, как со спецификацией размеров, так и без нее, например:

/L:2;3

или

/L:2,12192;3,3600

Заметьте, что перед численной спецификацией размера стоит запятая, тогда как

спецификации разных частей адресного пространства отделены друг от друга точкой с запятой.

Если численная спецификация размера указана, то команда DEVICEHIGH принимает дополнительный параметр /S, например:

DEVICEHIGH /L:1,35008 /S =C:\DOS\DRV\MOUSE.SYS

Параметр /S означает, что выделяемый блок UMB следует ограничить согласно указанному размеру. Благодаря тому использование адресного пространства становится более эффективным, но вместе с тем возрастает риск зависания компьютера, если размер будет выбран неточно. Не рекомендуется указывать параметр /S и конкретный размер после параметра /L без предварительного проведения процедуры оптимизации распределения памяти, выполняемой программой MEMMAKER.EXE (5.04-03). В результате проведения такой процедуры в строки файла CONFIG.SYS с командой DEVICEHIGH будут автоматически вписаны параметры /S и /L с точной спецификацией номера части адресного пространства и размера запрашиваемого участка памяти.

Примечание 1: когда адресное пространство в области UMB недостаточно или недоступно, команда DEVICEHIGH размещает загружаемый драйвер в обыкновенной памяти (ниже границы 640 кбайт). Сообщение об ошибке при этом не выдается.

– 85 –

Глава 4: Команды файла Config.sys

4.08Команда DOS – режимы загрузки DOS

По умолчанию ядро операционной системы MS-DOS7 загружается в обыкновенную память, то есть в пределах 640 кбайт. Но если драйвер HIMEM.SYS (5.04-01) уже установлен, то загрузка ядра DOS может производиться в область 1024 – 1088 кбайт, называемую областью верхней памяти. Для этого в файле CONFIG.SYS должна быть указана команда

DOS=HIGH

Последующая установка менеджера расширенной памяти EMM386.EXE (5.04-02) или драйвера UMBPCI.SYS (5.04-04) открывает возможность загружать служебные структуры DOS и драйверы устройств за пределами обыкновенной памяти (выше 640 кбайт). Чтобы MS-DOS7 воспользовалась этой возможностью, в файле CONFIG.SYS должна быть указана команда

DOS=UMB

В MS-DOS7 команде DOS добавлен еще один параметр – NOAUTO. Он отменяет ряд принимаемых по умолчанию установок, в частности, загрузку по умолчанию драйверов HIMEM.SYS, DBLBUFF.SYS, IFSHLP.SYS, DBLSPACE.SYS, а также исполнение загрузки за пределы обыкновенной памяти с помощью команд DEVICE, INSTALL и некоторых других (4.03, 4.06, 4.10, 4.12, 4.15, 4.17, 4.27). Параметр NOAUTO фактически позволяет использовать MS-DOS7 как отдельную, независимо конфигурируемую операционную систему.

Допускается указание всех параметров команды DOS в одной строке:

DOS=HIGH,UMB,NOAUTO

Примечание 1: команда DOS еще принимает недокументированный параметр SINGLE, позволяющий выйти в MS-DOS7 тогда, когда по умолчанию была бы загружена операционная система Windows.

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

1.03.

4.09DRIVPARM – подмена параметров дисковода

Команда DRIVPARM (DRIVe PARaMeters = параметры дисковода) служит для обеспечения доступа к носителям записи в устройствах, которые система BIOS компьютера неспособна правильно идентифицировать. Фактически здесь имеются ввиду устройства, которые уже были "известны" для MS-DOS7 в момент ее выхода в свет в 1995-м году, но не были "известны" системам BIOS старых компьютеров выпуска середины 1980-х годов. Вот пример использования команды DRIVPARM

– 86 –

Глава 4: Команды файла Config.sys

для обеспечения доступа к дисководу с дискетами диаметром 3,5 дюйма в старом компьютере, у которого система BIOS "знает" только дисководы для дискет диаметром 5,25 дюйма:

 

DRIVPARM /D:1 /c /f:7 /h:2 /i /s:18 /t:80

здесь:

 

 

/D:1

– номер физического дисковода, "1" означает флоппи-дисковод B:,

 

"0" означает флоппи-дисковод A:, "2" – первый дисковод на

 

жестких магнитных дисках:, и т.д.

/c

– необязательный параметр, разрешающий поддержку

 

обнаружения смены носителей записи (дискет). Для накопителей

 

с несменным носителем вместо параметра /c следует указывать

 

параметр /n .

/f:7

– задает тип дисковода, причем цифра здесь означает:

 

0

– дисковод 5,25-дюймовых дискет 160/180/320/360 кбайт;

 

1

– дисковод 5,25-дюймовых дискет на 1.2 Мбайт;

 

2

– дисковод для 3,5-дюймовых дискет на 720 кбайт;

 

5

– дисковод на жестких магнитных дисках;

 

6

– накопитель на магнитной ленте (стример);

 

7

– дисковод для 3,5-дюймовых дискет на 1.44 Мбайт;

 

8

– оптический дисковод;

 

9

– дисковод для 3,5-дюймовых дискет на 2.88 Мбайт.

/h:2

– задает число головок дисковода; по умолчанию принимаются две

 

головки для двухсторонних дискет.

/i

– обеспечивает поддержку 3.5-дюймовых дисководов в

 

компьютерах, у которых BIOS эти дисководы не поддерживает.

/s:18

– задает число секторов на дорожке:

 

8

– для старых 5.25-дюймовых дискет на 160/320 кбайт;

 

9

– для дискет на 360 и 720 кбайт;

15 – для старых 5.25-дюймовых дискет на 1.2 Мбайт; 18 – для 3.5-дюймовых дискет на 1.44 Мбайт.

/t:80 – задает число дорожек на одной стороне дискеты:

40 – для старых дискет на 160/180/320/360 кбайт; 80 – для 3.5-дюймовых дискет на 720 кбайт и 1.44 Мбайт.

Примечание 1: установки по умолчанию для параметров /f: и /s: соответствуют дисководам для дискет диаметром 5.25 дюйма с 9 секторами на дорожке.

– 87 –

Глава 4: Команды файла Config.sys

4.10FCBS – число блоков управления файлами

Команда FCBS резервирует участки памяти под File Control BlocS (блоки управления файлами), по 80 байт на каждый блок. Допустимое количество таких блоков – от 1 до 255. Блоки управления файлами – это устаревшая форма спецификации на открываемые для доступа файлы, она позволяет адресовать

только файлы текущего каталога и не годится для адресации на дисках с файловой системой FAT32. Современные программы осуществляют доступ к файлам не с помощью FCBS, а посредством номерных ссылок ("handles", 4.12). Тем не менее MS-DOS7 поддерживает FCBS ради обеспечения совместимости со старыми программами и сетевыми службами (INTERLNK.EXE, SHARE.EXE и т.д.).

В большинстве случаев принимаемое по умолчанию значение

FCBS=4

вполне достаточно.

Примечание 1: по умолчанию место для блоков FCB резервируется за пределами обыкновенной памяти (выше 640 кбайт), но будет резервировано ниже границы 640 кбайт, если в команде DOS (4.08) указан параметр NOAUTO, а также если адресное пространство в области UMB недостаточно или недоступно (условия доступности – в разделе 4.07). В любом случае сообщение об ошибке не выдается.

Примечание 2: задаваемое командой FCBS ограничение на количество

открываемых блоков управления файлами не распространяется на "неоткрытые" блоки (A.09-5), входящие в состав PSP (A.07-1), а также используемые в ряде поисковых операций.

4.11FCBSHIGH – число блоков управления файлами

Команда FCBSHIGH делает то же самое, что команда FCBS (4.10), но только

размещает блоки управления файлами за пределами обыкновенной памяти независимо от того, указан ли параметр NOAUTO в команде DOS (4.08). Все остальные сведения из раздела 4.10 в равной мере применимы к команде

FCBSHIGH.

4.12FILES – резервирование места для таблицы файлов

Команда FILES (= файлы) резервирует место в памяти для заявляемого количества записей системной таблицы файлов SFT (A.01-4). Каждая запись определяет состояние одного из открытых для доступа объектов – файла или канала, а также его ассоциацию с присвоенной ему номерной ссылкой ("handle"),

– 88 –

Глава 4: Команды файла Config.sys

через которую данный объект адресуется. По умолчанию принимается 60 записей в SFT. Для MS-DOS7 это количество избыточно. Обычно вполне достаточно указать

FILES=30

SFT с 30 записями займет примерно 1800 байт. Только для работы с базами данных количество записей в SFT целесообразно увеличивать до 40.

Примечание 1: по умолчанию системная таблица файлов размещается за пределами обыкновенной памяти (выше 640 кбайт), но будет размещена ниже границы 640 кбайт, если в команде DOS (4.08) указан параметр NOAUTO, а также если адресное пространство в области UMB недостаточно или недоступно (условия доступности –

вразделе 4.07). В любом случае сообщение об ошибке не выдается.

4.13FILESHIGH – резервирование места для таблицы файлов

Команда FILESHIGH делает то же самое, что команда FILES (4.12), но только

размещает системную таблицу файлов за пределами обыкновенной памяти независимо от того, указан ли параметр NOAUTO в команде DOS (4.08). Все остальные сведения из раздела 4.12 в равной мере применимы к команде

FILESHIGH.

4.14INCLUDE – ввести блок конфигурационных команд

Команда INCLUDE (= содержать) включает именованный блок команд в состав исполняемой последовательности конфигурационных команд. Этот именованный блок команд в файле CONFIG.SYS должен быть указан отдельно и должен начинаться отдельной строкой с именем блока – то есть с одним словом или числом, заключенным в квадратные скобки, например [L055] (пример из раздела 9.09-01). Конец блока обозначается аналогичной строкой заголовка с именем следующего блока. Если больше нет блоков, которые должны быть исполнены обособленно, то в качестве последнего заголовка используется строка с зарезервированным именем [common]. Следующие далее команды, если они имеются, будут исполнены во всех конфигурациях загрузки DOS.

В частности, чтобы исполнить команды, входящие в состав блока [L055], в файле CONFIG.SYS в желаемой позиции должна быть указана строка

INCLUDE=L055

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

– 89 –

Глава 4: Команды файла Config.sys

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

повторяющихся команд в отдельные конфигурационные блоки способствует упрощению файла CONFIG.SYS и делает его структуру более понятной. Примеры такого построения файла CONFIG.SYS приведены в разделах 9.04-01, 9.09-01 и 9.11-03.

4.15INSTALL – загрузить программу

Команда INSTALL (= установить) служит для того, чтобы загружать в память резидентные модули программ и исполняемые драйверы, которые не имеют специального драйверного заголовка (A.05-1) и потому не могут быть загружены командами DEVICE (4.06) и DEVICEHIGH (4.07). Обычно исполняемые драйверы имеют суффиксы *.COM или *.EXE. Запускаемые командой INSTALL программы

идрайверы должны удовлетворять следующим условиям:

–они не должны нуждаться в пространстве окружения;

–они не должны вызывать запросы на отработку критических ошибок;

–они не должны содержать обращений к резидентному модулю командного интерпретатора COMMAND.COM, который в этот момент еще не загружен.

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

Строки с командой INSTALL интерпретируются после строк с командами DEVICE, DEVICEHIGH и SET, но перед строкой с командой SHELL, даже если в файле CONFIG.SYS последовательность строк иная. Во избежание путаницы желательно размещать команды в строках файла CONFIG.SYS в порядке их исполнения.

Вот пример загрузки резидентной программы командой INSTALL:

INSTALL=\DOS\DRV\Mkecdex.com /B /L:0

Здесь справа от знака равенства записаны путь к программе, ее имя и группа передаваемых ей параметров. Так же, как командам DEVICE и DEVICEHIGH, команде INSTALL можно приписать вопросительный знак (INSTALL?=...), что вызовет запрос к пользователю ([Enter=Y, Esc=N]?) для подтверждения целесообразности исполнения данной строки.

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

– 90 –

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]