Русская Википедия:CONFIG.SYS
CONFIG.SYS — файл конфигурирования операционных систем семейств DOS, Windows 9x и OS/2. Это текстовый файл, содержащий директивы настройки системы и команды загрузки драйверов, он должен располагаться в корневом каталоге Шаблон:Нп2 (дискеты или диска).
Под DOS директивы в этом файле задают некоторые аппаратные (такие, как состояние индикатора Num Lock) и системные параметры (например, количество и вложенность стеков для обработки аппаратных прерываний, количество дисковых буферов и т. п.), а также загружают драйверы для управления дополнительной и расширенной памятью (HIMEM.SYS, EMM386.EXE), экраном (ANSI.SYS, DISPLAY.SYS), дисководом CD-ROM и т. п.
Использование
Под DOS CONFIG.SYS обрабатывается ядром системы IO.SYS. После обработки CONFIG.SYS загружается файл MSDOS.SYS и указанный директивой shell=
в CONFIG.SYS интерпретатор командной строки или, в случае отсутствия этой директивы, COMMAND.COM. Уже командный интерпретатор отвечает за исполнение файла AUTOEXEC.BAT.
Это происходит во всех версиях DOS вплоть до MS-DOS 7.x (на которой основаны Windows 95 и Windows 98). Также, начиная с MS-DOS 6.0 появилась возможность пропустить обработку CONFIG.SYS с помощью функциональных клавиш Шаблон:Key и Шаблон:Key, но эту возможность можно запретить с помощью директивы switches=
в этом же файле.[1] В предыдущих версиях MS-DOS (до версии 6.0) не существовало возможности обойти обработку CONFIG.SYS при загрузке, в результате ошибка в написании (например, указание обычного исполнимого файла вместо драйвера) могла приводить к фатальным сбоям и невозможности загрузиться и для восстановления требовалась загрузка со сменного носителя (дискеты).
В Windows ME, основанной на MS-DOS 8.0, через этот файл уже нельзя загружать драйверы[2][3], однако известны способы обхода этого ограничения[4].
В операционных системах семейства Windows NT файл CONFIG.SYS не используется.[5]
В операционных системах семейства OS/2 файл CONFIG.SYS используется на различных стадиях загрузки загрузчиком ядра OS2LDR, ядром OS2KRNL, а также рядом других компонент системы, в зависимости от текущей настройки системы.
Файл config.nt
В операционных системах семейства Windows NT файл CONFIG.SYS не используется, а при старте DOS-сессий (для запуска в режиме эмуляции приложений, написанных для DOS) вместо него используется файл config.nt. Этот файл должен быть расположен в %systemroot%\System32, и его синтаксис похож на синтаксис CONFIG.SYS.[6]
Двойная загрузка DOS и Windows 9x
При установке Windows 9x поверх уже установленной DOS или Windows файл CONFIG.SYS (так же, как AUTOEXEC.BAT и системные исполняемые файлы IO.SYS, MSDOS.SYS и COMMAND.COM) переименовывается в CONFIG.DOS.[7] Это делается с целью облегчения двойной загрузки между Windows 9x и DOS: при загрузке в предыдущую версию системы (через выбор соответствующего пункта из стартового меню Windows, вызываемого клавишей Шаблон:Key, или через нажатие клавиши Шаблон:Key при старте системы), этот файл временно, до следующей перезагрузки, переименовывается обратно, а файл CONFIG.SYS, созданный для Windows 9x, переименовывается в CONFIG.W40.[8] (При этом файл IO.SYS в Windows 95 переименовывается в WINBOOT.SYS, а в Windows 98/ME — в JO.SYS).[8][9][10]
CONFIG.SYS в клонах DOS
Клоны DOS кроме файла CONFIG.SYS могут использовать файлы и c другими именами, что облегчает сосуществование разных версий DOS на одном диске. Например, в свободной операционной системе FreeDOS CONFIG.SYS ищется только если не найден файл FDCONFIG.SYS[11], а в некоторых версиях DR-DOS ищется файл DCONFIG.SYS[12].
Синтаксис CONFIG.SYS в FreeDOS отличается от синтаксиса в MS-DOS — а именно, в FreeDOS иной синтаксис для организации меню загрузки.[13]
Синтаксис
CONFIG.SYS имеет свой специальный синтаксис.[14][15][16] В основном, он состоит из директив вида команда=значение
(или то же самое, но без знака равенства — например, numlock off
). Список некоторых часто используемых команд CONFIG.SYS:
Команда | Описание |
---|---|
; |
Строка с комментарием |
break |
Задаёт поведение системы при нажатии комбинации Шаблон:Key во время работы программ |
buffers |
Резервирует место под указанное количество дисковых буферов |
country |
Задаёт региональные настройки (формат даты и времени, наименование валюты, порядок сортировки и т. п.) |
device |
Загружает драйвер |
devicehigh |
Загружает драйвер в UMB |
dos |
Параметры загрузки DOS (к примеру, перенос части ядра в HMA) |
fcbs |
Сколько одновременно можно открывать FCB |
files |
Сколько одновременно можно открывать файлов |
install |
Загружает резидентную программу (обычный исполнимый модуль не в формате драйвера) |
installhigh |
Загружает резидентную программу в UMB |
lastdrive |
Задаёт последнюю букву, доступную для назначения дискам |
numlock |
Задаёт состояние переключателя Num Lock |
rem |
Строка с комментарием |
set |
Устанавливает значение переменной окружения |
shell |
Указывает интерпретатор командной строки, отличный от command.com, и/или его опции |
stacks |
Резервирует место для стеков обработки аппаратных прерываний |
switches |
Дополнительные опции загрузки |
Также, сразу после команды можно поставить знак вопроса ('?', например dos?=high) — в этом случае перед исполнением директивы запрашивается подтверждение исполнения.
Некоторые устаревшие или недокументированные команды:[17]
Команда | Описание |
---|---|
availdev |
(MS-DOS 2.х) availdev=false делает имена драйверов (CON, LPT1 и т. п.) доступными только в стиле Unix через несуществующий каталог \dev (например, \dev\com1)
|
cpsw |
(MS-DOS 4.x) cpsw=off отключает переключение кодовых страниц
|
ifs |
(MS-DOS 4.x) загружает драйвер файловой системы |
multitrack |
(MS-DOS 4.0 и выше) multitrack=off отключает многодорожечное чтение — введено для решения проблем совместимости с нестандартными контроллерами дисков и дискет
|
switchar |
(MS-DOS 2.х) задаёт знак-префикс, отличный от /, для указания опций в командных строках — предполагалось использовать для уменьшения конфликта с путями, указанными в стиле Unix, где каталоги разделяются знаком /, а не \ |
Некоторые команды, специфичные только для OS/2:[18]
Команда | Описание |
---|---|
autofail |
Подавляет вывод сообщений об аппаратных ошибках |
basedev |
Загружает базовые драйверы устройств |
cache |
Управляет кешированием файловой системы HPFS |
dllbasing |
Улучшает использование виртуальной памяти |
dumpprocess |
Активизирует сброс дампа |
iopl |
Управляет доступом к кольцам защиты |
libpath |
Управляет поиском динамических библиотек (DLL) |
maxwait |
Пауза перед отданием задаче высшего приоритета |
memman |
Управляет свопингом |
priority |
Управляет приоритетом подзадач |
protectonly |
При установке в yes запрещает выполнение приложений DOS или Windows
|
reipl |
Автоматическая перезагрузка после системного сбоя |
rmsize |
Задаёт доступную память для сеанса DOS |
threads |
Задаёт число подзадач |
vme |
Отключает расширения виртуального режима процессора 486DX2 |
Несколько конфигураций и меню
Начиная с MS-DOS 6.0 появилась возможность в CONFIG.SYS группировать директивы в секции и описывать меню. Секции позволяют задать несколько конфигураций, а меню позволяет выбрать одну из них при загрузке системы. Секция начинается с имени секции в квадратных скобках [<имя секции>]
и заканчивается с началом следующей секции (или с концом файла). При этом секция [menu]
используется для описания меню, а секция [common]
обрабатывается перед обработкой любой выбранной в меню конфигурации. Для задания меню в CONFIG.SYS были добавлены следующие команды:
Команда | Описание |
---|---|
include |
Включает в обработку секцию содержимое другой секции |
menucolor |
Задаёт цвет меню |
menudefault |
Задаёт пункт меню по умолчанию |
menuitem |
Описывает пункт меню |
submenu |
Описывает пункт подменю |
При выборе пункта меню имя секции, указанное в этом пункте, сохраняется в переменной окружения CONFIG. Это позволяет с помощью команд goto %CONFIG% и if "%CONFIG%"== в AUTOEXEC.BAT (и в прочих пакетных файлах) выполнять разные действия в зависимости от выбора конфигурации при загрузке.[15]
Примеры файла CONFIG.SYS
numlock = off
break = on
dos = high,umb
country = 7,,c:\dos\country.sys
files = 40
device = c:\dos\himem.sys
device = c:\dos\emm386.exe ram i=b000-b7ff
shell = command.com /p /e:512
Пример CONFIG.SYS с меню:
[menu]
menuitem=WIN, Windows
menuitem=XMS, DOS with only Extended Memory
menudefault=WIN, 10
[common]
dos=high,umb
country=7,,c:\dos\country.sys
device=c:\dos\himem.sys
shell=command.com /e:512 /p
[WIN]
device=c:\dos\emm386.exe ram
devicehigh=c:\windows\mouse.sys
devicehigh=c:\dos\setver.exe
[XMS]
device=c:\dos\emm386.exe noems
Пример CONFIG.SYS с меню в стиле FreeDOS:
screen=0x12
MENU Please Select Configuration:
MENU
MENU Option 0 basic stuff only
MENU Option 1 CD-ROM
MENU Option 2 TROUSERS
MENU Option 3 CD-ROM and TROUSERS
device=c:\dos\himem.exe
device=c:\dos\emm386.exe
dos=high,umb
country=7,,c:\dos\country.sys
shell=c:\dos\command.com /p /e:512 /p
13? DEVICE=CDROM.SYS /D:CDDRIVE1
23? DEVICE=TROUSERS.SYS
0? ECHO Warning: basic stuff only!
Интересные факты
- Среди всех файлов с расширением .sys, поставляемых с MS-DOS, CONFIG.SYS — единственный текстовый файл, доступный для модификации пользователями.
Примечания
Литература
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 8,0 8,1 Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ См. также: Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 15,0 15,1 Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web