CONFIG.SYS: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
отмена правки 37893609 участника 92.242.94.167 (обс)
оформление...
Строка 145: Строка 145:
|lang=en
|lang=en
|description=Команды подсистемы MS-DOS в составе Windows Server 2003
|description=Команды подсистемы MS-DOS в составе Windows Server 2003
}}</ref> В основном, он состоит из директив вида «<tt>команда=значение</tt>» (или то же самое, но без знака равенства — например, «<tt>numlock off</tt>»). Список некоторых часто используемых команд ''CONFIG.SYS'':
}}</ref> В основном, он состоит из директив вида <code>команда=значение</code> (или то же самое, но без знака равенства — например, <code>numlock off</code>). Список некоторых часто используемых команд ''CONFIG.SYS'':


{| class="wikitable"
; ;: строка с комментарием
! Команда || Описание
; break: задаёт поведение системы при нажатии комбинации {{key|Ctrl|C}} во время работы программ
|-
; buffers: резервирует место под указанное количество дисковых буферов
| ; || Строка с комментарием
; country: задаёт региональные настройки (формат даты и времени, наименование валюты, порядок сортировки и т. п.)
|-
; device: загружает [[драйвер]]
| break || Задаёт поведение системы при нажатии комбинации {{key|Ctrl|C}} во время работы программ
; devicehigh: загружает драйвер в [[Upper Memory Area|UMB]]
|-
; dos: параметры загрузки DOS (к примеру, перенос части ядра в [[High Memory Area|HMA]])
| buffers || Резервирует место под указанное количество дисковых буферов
; fcbs: сколько одновременно можно открывать {{не переведено|:en:File control block|FCB}}
|-
; files: сколько одновременно можно открывать файлов
| country || Задаёт региональные настройки (формат даты и времени, наименование валюты, порядок сортировки и т. п.)
; install: загружает [[резидентная программа|резидентную программу]] (обычный [[исполняемый модуль]] не в формате драйвера)
|-
; installhigh: загружает резидентную программу в UMB
| device || Загружает [[драйвер]]
; lastdrive: задаёт последнюю букву, доступную для назначения дискам
|-
; numlock: задаёт состояние переключателя [[Num Lock]]
| devicehigh || Загружает драйвер в [[Upper Memory Area|UMB]]
; rem: строка с комментарием
|-
; set: устанавливает значение переменной окружения
| dos || Параметры загрузки DOS (к примеру, перенос части ядра в [[High Memory Area|HMA]])
; shell: указывает интерпретатор командной строки, отличный от command.com, и/или его опции
|-
; stacks: резервирует место для стеков обработки аппаратных прерываний
| fcbs || Сколько одновременно можно открывать {{не переведено|:en:File control block|FCB}}
; switches: дополнительные опции загрузки
|-
| files || Сколько одновременно можно открывать файлов
|-
| install || Загружает [[резидентная программа|резидентную программу]] (обычный [[исполняемый модуль]] не в формате драйвера)
|-
| installhigh || Загружает резидентную программу в UMB
|-
| lastdrive || Задаёт последнюю букву, доступную для назначения дискам
|-
| numlock || Задаёт состояние переключателя [[Num Lock]]
|-
| rem || Строка с комментарием
|-
| set || Устанавливает значение переменной окружения
|-
| shell || Указывает интерпретатор командной строки, отличный от command.com, и/или его опции
|-
| stacks || Резервирует место для стеков обработки аппаратных прерываний
|-
| switches || Дополнительные опции загрузки
|}


Также, сразу после команды можно поставить знак вопроса ('?') — в этом случае перед исполнением директивы запрашивается подтверждение исполнения.
Также, сразу после команды можно поставить знак вопроса ('?') — в этом случае перед исполнением директивы запрашивается подтверждение исполнения.
Строка 175: Строка 196:
}}</ref>
}}</ref>


{| class="wikitable"
; availdev: (MS-DOS 2.х) <tt>availdev=false</tt> делает имена драйверов (CON, LPT1 и т. п.) доступными только в стиле Unix через несуществующий каталог \dev (например, \dev\com1)
! Команда || Описание
; cpsw: (MS-DOS 4.x) <tt>cpsw=off</tt> отключает переключение кодовых страниц
|-
; ifs: (MS-DOS 4.x) загружает драйвер файловой системы
| availdev || (MS-DOS 2.х) <tt>availdev=false</tt> делает имена драйверов (CON, LPT1 и т. п.) доступными только в стиле Unix через несуществующий каталог \dev (например, \dev\com1)
; multitrack: (MS-DOS 4.0 и выше) <tt>multitrack=off</tt> отключает многодорожечное чтение — введено для решения проблем совместимости с нестандартными контроллерами дисков и дискет
|-
; switchar: (MS-DOS 2.х) задаёт знак-префикс, отличный от '/', для указания опций в командных строках — предполагалось использовать для уменьшения конфликта с путями, указанными в стиле Unix, где каталоги разделяются знаком '/', а не '\'
| cpsw || (MS-DOS 4.x) <tt>cpsw=off</tt> отключает переключение кодовых страниц
|-
| ifs || (MS-DOS 4.x) загружает драйвер файловой системы
|-
| multitrack || (MS-DOS 4.0 и выше) <tt>multitrack=off</tt> отключает многодорожечное чтение — введено для решения проблем совместимости с нестандартными контроллерами дисков и дискет
|-
| switchar || (MS-DOS 2.х) задаёт знак-префикс, отличный от '/', для указания опций в командных строках — предполагалось использовать для уменьшения конфликта с путями, указанными в стиле Unix, где каталоги разделяются знаком '/', а не '\'
|}


Некоторые команды, специфичные только для OS/2:<ref>{{cite web
Некоторые команды, специфичные только для OS/2:<ref>{{cite web
Строка 188: Строка 217:
}}</ref>
}}</ref>


{| class="wikitable"
; autofail: подавляет вывод сообщений об аппаратных ошибках
! Команда || Описание
; basedev: загружает базовые драйверы устройств
|-
; cache: управляет кешированием файловой системы [[HPFS]]
| autofail || Подавляет вывод сообщений об аппаратных ошибках
; dllbasing: улучшает использование виртуальной памяти
|-
; dumpprocess: активизирует сброс дампа
| basedev || Загружает базовые драйверы устройств
; iopl: управляет доступом к [[кольца защиты|кольцам защиты]]
|-
; libpath: управляет поиском [[динамическая библиотека|динамических библиотек]] (DLL)
| cache || Управляет кешированием файловой системы [[HPFS]]
; maxwait: пауза перед отданием задаче высшего приоритета
|-
; memman: управляет [[своп]]ингом
| dllbasing || Улучшает использование виртуальной памяти
; priority: управляет приоритетом подзадач
|-
; protectonly: при установке в YES запрещает выполнение приложений DOS или Windows
| dumpprocess || Активизирует сброс дампа
; reipl: автоматическая перезагрузка после системного сбоя
|-
; rmsize: задаёт доступную память для сеанса DOS
| iopl || Управляет доступом к [[кольца защиты|кольцам защиты]]
; threads: задаёт число подзадач
|-
; vme: отключает расширения виртуального режима процессора 486 DX2
| libpath || Управляет поиском [[динамическая библиотека|динамических библиотек]] (DLL)
|-
| maxwait || Пауза перед отданием задаче высшего приоритета
|-
| memman || Управляет [[своп]]ингом
|-
| priority || Управляет приоритетом подзадач
|-
| protectonly || При установке в YES запрещает выполнение приложений DOS или Windows
|-
| reipl || Автоматическая перезагрузка после системного сбоя
|-
| rmsize || Задаёт доступную память для сеанса DOS
|-
| threads || Задаёт число подзадач
|-
| vme || Отключает расширения виртуального режима процессора 486 DX2
|}


=== Несколько конфигураций и меню ===
=== Несколько конфигураций и меню ===
Строка 208: Строка 255:
Начиная с MS-DOS&nbsp;6.0 появилась возможность в ''CONFIG.SYS'' группировать директивы в секции и описывать меню. Секции позволяют задать несколько конфигураций, а меню позволяет выбрать одну из них при загрузке системы. Секция начинается с имени секции в квадратных скобках ''<nowiki>[<имя секции>]</nowiki>'' и заканчивается с началом следующей секции (или с концом файла). При этом секция '''<nowiki>[menu]</nowiki>''' используется для описания меню, а секция '''<nowiki>[common]</nowiki>''' обрабатывается перед обработкой любой выбранной в меню конфигурации. Для задания меню в ''CONFIG.SYS'' были добавлены следующие команды:
Начиная с MS-DOS&nbsp;6.0 появилась возможность в ''CONFIG.SYS'' группировать директивы в секции и описывать меню. Секции позволяют задать несколько конфигураций, а меню позволяет выбрать одну из них при загрузке системы. Секция начинается с имени секции в квадратных скобках ''<nowiki>[<имя секции>]</nowiki>'' и заканчивается с началом следующей секции (или с концом файла). При этом секция '''<nowiki>[menu]</nowiki>''' используется для описания меню, а секция '''<nowiki>[common]</nowiki>''' обрабатывается перед обработкой любой выбранной в меню конфигурации. Для задания меню в ''CONFIG.SYS'' были добавлены следующие команды:


{| class="wikitable"
; include: включает в обработку секцию содержимое другой секции
! Команда || Описание
; menucolor: задаёт цвет меню
|-
; menudefault: задаёт пункт меню по умолчанию
| include || Включает в обработку секцию содержимое другой секции
; menuitem: описывает пункт меню
|-
; submenu: описывает пункт подменю
| menucolor || Задаёт цвет меню
|-
| menudefault || Задаёт пункт меню по умолчанию
|-
| menuitem || Описывает пункт меню
|-
| submenu || Описывает пункт подменю
|}


При выборе пункта меню имя секции, указанное в этом пункте, сохраняется в [[среда окружения|переменной окружения]] <tt>CONFIG</tt>. Это позволяет с помощью команд «<tt>goto %CONFIG%</tt>» и «<tt>if "%CONFIG%"==</tt>» в ''AUTOEXEC.BAT'' (и в прочих пакетных файлах) выполнять разные действия в зависимости от выбора конфигурации при загрузке.<ref name="cmdref"/>
При выборе пункта меню имя секции, указанное в этом пункте, сохраняется в [[среда окружения|переменной окружения]] <tt>CONFIG</tt>. Это позволяет с помощью команд «<tt>goto %CONFIG%</tt>» и «<tt>if "%CONFIG%"==</tt>» в ''AUTOEXEC.BAT'' (и в прочих пакетных файлах) выполнять разные действия в зависимости от выбора конфигурации при загрузке.<ref name="cmdref"/>


== Примеры файла CONFIG.SYS ==
== Примеры файла CONFIG.SYS ==
<source lang="dos">

numlock = off
numlock = off
break = on
break = on
Строка 226: Строка 281:
device = c:\dos\emm386.exe ram i=b000-b7ff
device = c:\dos\emm386.exe ram i=b000-b7ff
shell = command.com /p /e:512
shell = command.com /p /e:512
</source>

Пример ''CONFIG.SYS'' с меню:
Пример ''CONFIG.SYS'' с меню:
<source lang="dos">

[menu]
[menu]
menuitem=WIN, Windows
menuitem=WIN, Windows
Строка 244: Строка 299:
[XMS]
[XMS]
device=c:\dos\emm386.exe noems
device=c:\dos\emm386.exe noems
</source>

Пример ''CONFIG.SYS'' с меню в стиле FreeDOS:
Пример ''CONFIG.SYS'' с меню в стиле FreeDOS:
<source lang="dos">
screen=0x12
screen=0x12
MENU Please Select Configuration:
MENU Please Select Configuration:
Строка 262: Строка 317:
23? DEVICE=TROUSERS.SYS
23? DEVICE=TROUSERS.SYS
0? ECHO Warning: basic stuff only!
0? ECHO Warning: basic stuff only!
</source>


== Интересные факты ==
== Интересные факты ==
Строка 268: Строка 324:


== Примечания ==
== Примечания ==

{{примечания}}
{{примечания}}



Версия от 06:48, 27 марта 2012

CONFIG.SYS — файл конфигурирования операционных систем семейств DOS, Windows 9x и OS/2. Это текстовый файл, содержащий директивы настройки системы и команды загрузки драйверов, и он должен располагаться в корневом каталоге Шаблон:Translation2 (дискеты или диска).

Под 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 с помощью функциональных клавиш F5 и F8, но эту возможность можно запретить с помощью директивы 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, вызываемого клавишей F8, или через нажатие клавиши F4 при старте системы), этот файл временно, до следующей перезагрузки, переименовывается обратно, а файл 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 Задаёт поведение системы при нажатии комбинации Ctrl+C во время работы программ
buffers Резервирует место под указанное количество дисковых буферов
country Задаёт региональные настройки (формат даты и времени, наименование валюты, порядок сортировки и т. п.)
device Загружает драйвер
devicehigh Загружает драйвер в UMB
dos Параметры загрузки DOS (к примеру, перенос части ядра в HMA)
fcbs Сколько одновременно можно открывать шаблон не поддерживает такой синтаксис
files Сколько одновременно можно открывать файлов
install Загружает резидентную программу (обычный исполняемый модуль не в формате драйвера)
installhigh Загружает резидентную программу в UMB
lastdrive Задаёт последнюю букву, доступную для назначения дискам
numlock Задаёт состояние переключателя Num Lock
rem Строка с комментарием
set Устанавливает значение переменной окружения
shell Указывает интерпретатор командной строки, отличный от command.com, и/или его опции
stacks Резервирует место для стеков обработки аппаратных прерываний
switches Дополнительные опции загрузки

Также, сразу после команды можно поставить знак вопроса ('?') — в этом случае перед исполнением директивы запрашивается подтверждение исполнения.

Некоторые устаревшие или недокументированные команды:[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 Отключает расширения виртуального режима процессора 486 DX2

Несколько конфигураций и меню

Начиная с 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
 fileshigh = 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!

Интересные факты

Примечания

  1. KB93602: How to Disable F5 and F8 During Startup in MS-DOS (англ.). Microsoft (16 ноября 1999). Дата обращения: 21 декабря 2008.
  2. KB269524: Overview of Real Mode Removal from Windows Millennium Edition (англ.). Microsoft (27 января 2007). Дата обращения: 21 декабря 2008.
  3. KB274646: Understanding the Settings in the Windows Millennium Edition Config.sys File (англ.). Microsoft (27 января 2007). Дата обращения: 7 июня 2009.
  4. Reines [MFD]. Real DOS-Mode Patch for Windows ME v1.3 (англ.) (15 августа 2000). Дата обращения: 21 декабря 2008.
  5. Appendix B. Other Application Environments (англ.). Библиотека TechNet. Microsoft. — Окружение для приложений Windows 3.x, MS-DOS и OS/2 в Windows NT. Дата обращения: 7 июня 2009.
  6. KB314106: Troubleshooting MS-DOS-based programs in Windows XP (англ.). Microsoft (28 июня 2005). Дата обращения: 7 июня 2009.
  7. KB121963: Requirements to Boot Previous Operating System (англ.). Microsoft (10 мая 2007). Дата обращения: 7 июня 2009.
  8. 1 2 MDGx / AXCEL216. The renaming game (англ.). Windows 95/98/NT4/2000/ME/XP/2003 + DOS 7.xx/8.00 Tricks + Secrets Files. Дата обращения: 7 июня 2009.
  9. KB187641: Err Msg: The Following File Is Missing or Corrupt… (англ.). Microsoft (23 января 2007). — «The Jo.sys file is used by Windows 98 and Windows Me in a dual-boot environment with MS-DOS». Дата обращения: 7 июня 2009.
  10. См. также: Bart’s free JO.SYS (англ.) (12 марта 2002). — Альтернативный вариант JO.SYS. Дата обращения: 7 июня 2009.
  11. FreeDOS: System Files (англ.). Дата обращения: 10 июля 2008.
  12. Introduction to Caldera DR-DOS (англ.). Дата обращения: 10 июля 2008.
  13. Описание CONFIG.SYS в FreeDOS (англ.). Дата обращения: 10 июля 2008.
  14. KB232557: The Windows 98 Config.txt File (англ.). Microsoft (24 января 2007). — Копия файла CONFIG.TXT, поставляемого с Windows 98. Дата обращения: 7 июня 2009.
  15. 1 2 Batch Commands (англ.). Библиотека TechNet. Microsoft. Дата обращения: 7 июня 2009.
  16. Command-line reference A-Z (англ.). Библиотека TechNet. Microsoft (21 января 2005). — Команды подсистемы MS-DOS в составе Windows Server 2003. Дата обращения: 7 июня 2009.
  17. MS-DOS Undocumented commands (англ.). Дата обращения: 28 июля 2008.
  18. The Config.sys Documentation Project OS/2-eCS Commands (англ.). Дата обращения: 29 июля 2008.