Конфигурационный файл
В технике вычислительной файлы конфигурации (обычно называемые просто файлами конфигурации ) — это файлы, используемые для настройки параметров и начальных настроек некоторых компьютерных программ или приложений , серверных процессов и настроек операционной системы .
Некоторые приложения предоставляют инструменты для создания, изменения и проверки синтаксиса файлов конфигурации; иногда они имеют графический интерфейс. Для других программ системные администраторы могут создавать и изменять файлы вручную с помощью текстового редактора, что возможно, поскольку многие из них представляют собой простые текстовые файлы, редактируемые человеком. Для серверных процессов и настроек операционной системы часто не существует стандартного инструмента, но операционные системы могут предоставлять свои собственные графические интерфейсы, такие как YaST или debconf.
Некоторые компьютерные программы считывают файлы конфигурации только при запуске . Другие периодически проверяют файлы конфигурации на наличие изменений. Пользователи могут поручить некоторым программам перечитать файлы конфигурации и применить изменения к текущему процессу или даже прочитать произвольные файлы в качестве файла конфигурации. Не существует четких стандартов или строгих соглашений.
Конфигурационные файлы и операционные системы
[ редактировать ]Unix и Unix-подобные операционные системы
[ редактировать ]В Unix-подобных операционных системах существует множество различных форматов файлов конфигурации, причем каждое приложение или служба потенциально имеет уникальный формат, но существует устойчивая традиция использования их в виде простого текста, редактируемого человеком, и пары ключ-значение используется простой формат . общий. Расширения имен файлов .cnf
, .conf
, .cfg
, .cf
или .ini
часто используются.
Почти все форматы допускают комментарии . В этом случае отдельные настройки можно отключить, добавив в начале символ комментария . Часто файлы конфигурации по умолчанию содержат обширную внутреннюю документацию в виде комментариев. [1] [2] и man-файлы также обычно используются для документирования доступного формата и опций.
Общесистемное программное обеспечение часто использует файлы конфигурации, хранящиеся в /etc
, в то время как пользовательские приложения часто используют « точечный файл » — файл или каталог в домашнем каталоге с префиксом точки , который в Unix скрывает файл или каталог от случайного списка. Поскольку это приводит к загрязнению, новые пользовательские приложения обычно создают собственную папку в .config
каталог, стандартизированный подкаталог домашнего каталога.
Некоторые файлы конфигурации запускают набор команд при запуске. Распространенным соглашением является то, что такие файлы должны иметь " rc
"от их имени, [3] обычно используется имя программы, а затем " (.)rc
"суффикс, например" .xinitrc
", " .vimrc
", " .bashrc
", " xsane.rc
". см. в разделе команды запуска Дополнительные сведения .
В отличие от этого, IBM AIX базу данных использует Object Data Manager (ODM) для хранения большей части своих системных настроек.
MS-DOS
[ редактировать ]Сама MS-DOS в основном полагалась только на один файл конфигурации. CONFIG.SYS
. Это был обычный текстовый файл с простыми парами ключ-значение (например, DEVICEHIGH=C:\DOS\ANSI.SYS
) до MS-DOS 6, в которой был представлен формат стиля INI-файла. Также существовал стандартный текстовый пакетный файл с именем AUTOEXEC.BAT
который запускал серию команд при загрузке . Оба этих файла сохранялись до Windows 98SE , которая все еще работала поверх MS-DOS.
Пример CONFIG.SYS для MS-DOS 5:
DOS=HIGH,UMB
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM
DEVICEHIGH=C:\DOS\ANSI.SYS
FILES=30
SHELL=C:\DOS\COMMAND.COM C:\DOS /E:512 /P
Приложения DOS использовали широкий спектр отдельных файлов конфигурации, большинство из которых были двоичными, проприетарными и недокументированными, и не было никаких общих соглашений или форматов. [ нужна ссылка ]
Microsoft Windows
[ редактировать ]Раннее семейство операционных систем Microsoft Windows широко использовало текстовые файлы INI (из «инициализации»). Они служили основным механизмом настройки операционной системы и функций приложений. [4] API -интерфейсы для чтения и записи из них все еще существуют в Windows, но после 1993 года Microsoft начала отговаривать разработчиков от использования файлов INI и переходить к хранению настроек в реестре Windows — иерархической базе данных для хранения настроек конфигурации, которая была представлена в том же году с Windows НТ .
macOS
[ редактировать ]Список свойств — это стандартный формат файла конфигурации в macOS (а также в iOS , NeXTSTEP , GNUstep и Cocoa приложениях ). Он использует расширение имени файла .plist
.
IBM ОС/2
[ редактировать ]IBM OS/2 использует двоичный формат, также с суффиксом .INI, но он отличается от версий для Windows. Он содержит список списков нетипизированных пар ключ-значение. [5] Общесистемные настройки управляются двумя файлами: OS2.INI и OS2SYS.INI. Разработчики приложений могут выбирать, использовать ли их или создать отдельный файл для своих приложений.
Операционные системы HarmonyOS и OpenHarmony
[ редактировать ]Операционные системы на базе HarmonyOS и OpenHarmony используют файл конфигурации «config.json» в корневом каталоге каждого приложения HAP . Он содержит три модуля, такие как app
, deviceConfig
и Module
. config.json
соответствует формату файла JSON, где каждая запись содержит атрибут и соответствующее ему значение. Последовательность значений атрибута произвольная, но каждый атрибут должен быть уникальным и неповторяющимся. Значение, присвоенное каждому атрибуту, соответствует основным типам данных JSON . от HarmonyOS DevEco Studio предоставляет два метода редактирования. config.json
: представление редактирования кода и представление визуального редактирования. Объект app содержит универсальные сведения о конфигурации приложения, как показано в config.json
файл конфигурации основного приложения HarmonyOS. DeviceConfig
включает сведения о конфигурации для конкретных устройств, включая устройства по умолчанию, телефон, планшет, ПК, телевизор, автомобиль, носимые устройства, liteWearable и smartVision. Настройки под меткой по умолчанию применяются ко всем устройствам. Если для других устройств существуют уникальные требования, необходимо настроить параметры под соответствующей меткой типа устройства. Module
Объект содержит сведения о конфигурации пакета HAP, основные атрибуты, которые должна определить каждая способность (например, имя пакета, имя класса, тип и возможности, предоставляемые способностью), а также разрешения, необходимые приложению для доступа к системе или другим защищенным разделам приложение. MainAbility
Указывает название возможности входа в пакет HAP. [6]
Форматы сериализации
[ редактировать ]Существует ряд форматов сериализации общего назначения , которые могут представлять сложные структуры данных в легко сохраняемом формате, и они часто используются в качестве основы для файлов конфигурации, особенно в с открытым исходным кодом и нейтральных к платформе программных приложениях и библиотеках . Спецификации , описывающие эти форматы, регулярно публикуются, что увеличивает доступность синтаксических анализаторов и эмиттеров для разных языков программирования.
Сравнение
[ редактировать ]Формат | Формальные характеристики | Разрешает комментарии | Типизация синтаксиса [8] [9] |
---|---|---|---|
КИЙ [10] | Да | Да | Да |
ЭТОТ | Нет | Да | Нет |
JSON | Да [11] | Нет | Да |
ТОМЛ | Да [12] | Да | Да |
ЛЧ | Нет [13] | Да | Да |
ЯМЛ | Да [14] | Да | Да |
XML | Да [15] | Да | Нет |
См. также
[ редактировать ]- .properties — расширение файла, в основном используемое в Java.
- HOCON , расширенный набор .properties и JSON.
- INI-файл , распространенный формат файла конфигурации.
- JSON с поддержкой сложных типов данных и структур данных.
- Команды запуска , что объясняет историческое происхождение суффикса «rc».
- TOML — формально определенный формат файла конфигурации.
- YAML с поддержкой сложных типов и структур данных.
Ссылки
[ редактировать ]- ^ https://opensource.apple.com/source/postfix/postfix-174.2/Postfix.Config/main.cf.default . Архивировано 3 августа 2017 г. в Wayback Machine.
- ^ http://opensource.apple.com/source/apache/apache-769/httpd.conf . Архивировано 1 августа 2020 г. в Wayback Machine.
- ^ «RC-файл» . Catb.org . Проверено 29 февраля 2012 г.
- ^ Microsoft: Ресурсный комплект для рабочей станции Windows NT .
- ^ INI-файлы OS/2, созданные Джеймсом Дж. Вайнкамом.
- ^ Эванс, Мелисса. «HarmonyOS (Hongmeng) — config.json» . Мо4Тех . Мо4Тех . Проверено 24 марта 2024 г.
- ^ ТОМЛ , ТОМЛ, 15 января 2023 г. , получено 15 января 2023 г.
- ^ Типизация синтаксиса означает использование синтаксиса для обозначения типов данных . В языках, допускающих синтаксическую типизацию, объявление типа будет основано на синтаксисе, например
true
будет логическим значением, пока"true"
будет строкой , тогда как в языках, которые не допускают типизации синтаксиса, она будет основана на семантике , напримерtrue
и"true"
оба будут распознаваться как логические значения, в то время какmicrowave
и"microwave"
оба будут распознаваться как строки (это потребует от синтаксического анализатора некоторых предварительных ожиданий относительно типа конкретного поля, но это часто имеет место в файлах конфигурации). - ^ Мнения о том, является ли синтаксическая типизация в форматах конфигурации хорошей или плохой функцией, различаются среди авторов. некоторые считают это недостатком (см., например, «Что не так с TOML § Синтаксическая типизация »), а другие отдают ему предпочтение.
- ^ «О программе | КЮЕ» . Проверено 6 октября 2022 г.
- ^ «Формат обмена данными нотации объектов JavaScript (JSON)» .
- ^ «Спецификация ТОМЛ» .
- ^ "Формальное определение грамматики UCL · Выпуск №231 · vstahav/libucl" . Гитхаб .
- ^ «Указатель спецификаций YAML™» .
- ^ «Расширяемый язык разметки (XML) 1.0 (пятое издание)» .