stringtranslate.com

Файл конфигурации

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

Некоторые приложения предоставляют инструменты для создания, изменения и проверки синтаксиса своих файлов конфигурации; иногда они имеют графические интерфейсы. Для других программ системным администраторам может потребоваться создавать и изменять файлы вручную с помощью текстового редактора, что возможно, поскольку многие из них представляют собой простые текстовые файлы, доступные для редактирования человеком. Для серверных процессов и настроек операционной системы часто нет стандартного инструмента, но операционные системы могут предоставлять свои собственные графические интерфейсы, такие как YaST или debconf.

Некоторые компьютерные программы считывают свои файлы конфигурации только при запуске . Другие периодически проверяют файлы конфигурации на наличие изменений. Пользователи могут поручить некоторым программам перечитать файлы конфигурации и применить изменения к текущему процессу или даже прочитать произвольные файлы как файл конфигурации. Не существует окончательных стандартов или строгих соглашений.

Файл конфигурации для GNU GRUB редактируется. Комментарии (строки, начинающиеся с #) используются как в качестве документации, так и как способ «отключить» настройку.

Файлы конфигурации и операционные системы

Unix и Unix-подобные операционные системы

В Unix-подобных операционных системах существует множество различных форматов файлов конфигурации, причем каждое приложение или служба потенциально имеет уникальный формат, но существует сильная традиция, согласно которой они представляют собой редактируемый человеком простой текст, и распространен простой формат пар «ключ-значение» . Часто используются расширения имен файлов .cnf, .conf, .cfgили ..cf.ini

Почти все форматы допускают комментарии , в этом случае отдельные настройки можно отключить, добавив символ комментария . Часто файлы конфигурации по умолчанию содержат обширную внутреннюю документацию в виде комментариев [1] [2] , а файлы man также обычно используются для документирования формата и доступных опций.

Системное программное обеспечение часто использует файлы конфигурации, хранящиеся в /etc, в то время как пользовательские приложения часто используют " dotfile " – файл или каталог в домашнем каталоге с префиксом в виде точки , который в Unix скрывает файл или каталог от случайного листинга. Поскольку это вызывает загрязнение, новые пользовательские приложения обычно создают свою собственную папку в каталоге .config, стандартизированный подкаталог домашнего каталога.

Некоторые файлы конфигурации запускают набор команд при запуске. Обычно такие файлы имеют " rc" в своем имени, [3] обычно используя имя программы, а затем (.)rcсуффикс " ", например " .xinitrc", " .vimrc", " " .bashrc, " xsane.rc". См. команды запуска для получения более подробной информации.

Напротив, AIX от IBM использует базу данных 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 = ВЫСОКИЙ,UMBУСТРОЙСТВО = C:\DOS\HIMEM.SYSУСТРОЙСТВО = C:\DOS\EMM386.EXE ОЗУDEVICEHIGH = C:\DOS\ANSI.SYSФАЙЛЫ = 30SHELL = C:\DOS\COMMAND.COM C:\DOS/E:512/P

Приложения DOS использовали широкий спектр отдельных файлов конфигурации, большинство из которых были двоичными, проприетарными и недокументированными, и не существовало общих соглашений или форматов. [ необходима цитата ]

Майкрософт Виндоус

Приложение REGEDIT, используемое для редактирования данных реестра Windows

Раннее семейство операционных систем Microsoft Windows активно использовало простые текстовые файлы INI (от «инициализация»). Они служили основным механизмом для настройки функций операционной системы и приложений. [ 4] API для чтения и записи из них все еще существуют в Windows, но после 1993 года Microsoft начала отвлекать разработчиков от использования файлов INI и переходить к хранению настроек в реестре Windows , иерархической базе данных для хранения параметров конфигурации, которая была представлена ​​в том же году с Windows NT .

macOS

Список свойств — это стандартный формат файла конфигурации в macOS (а также в приложениях iOS , NeXTSTEP , GNUstep и Cocoa ). Он использует расширение имени файла .plist .

IBM ОС/2

OS/2 от IBM использует двоичный формат, также с суффиксом .INI, но это отличается от версий Windows. Он содержит список списков нетипизированных пар ключ-значение. [5] Два файла управляют общесистемными настройками: OS2.INI и OS2SYS.INI. Разработчики приложений могут выбирать, использовать ли их или создать специальный файл для своих приложений.

Операционные системы HarmonyOS и OpenHarmony

HarmonyOS и операционные системы на базе OpenHarmony используют файл конфигурации «config.json» в корневом каталоге каждого приложения HAP . Он содержит три модуля, такие как app, deviceConfigи Module. config.jsonФайл соответствует формату файла JSON, где каждая запись содержит атрибут и соответствующее ему значение. Последовательность значений атрибутов произвольна, но каждый атрибут должен быть уникальным и неповторяющимся. Значение, назначенное каждому атрибуту, соответствует основным типам данных JSON . DevEco Studio HarmonyOS предоставляет два метода редактирования config.json: представление редактирования кода и представление визуального редактирования. Объект `app` содержит универсальные сведения о конфигурации для приложения, как показано в config.jsonфайле конфигурации основного приложения HarmonyOS. DeviceConfigохватывает сведения о конфигурации для определенных устройств, включая default, Phone, Tablet, PC, TV, Car, Wearable, liteWearable и smartVision. Настройки под меткой default применяются ко всем устройствам. Если для других устройств существуют уникальные требования, необходимо настроить параметры под соответствующей меткой типа устройства. Объект Moduleсодержит сведения о конфигурации пакета HAP, основные атрибуты, которые должна определять каждая способность (например, имя пакета, имя класса, тип и возможности, предоставляемые способностью), а также разрешения, необходимые приложению для доступа к системе или другим защищенным разделам приложения. Указывает MainAbilityимя возможности входа пакета HAP. [6]

Форматы сериализации

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

Примеры включают: JSON , XML и YAML .

Сравнение

Смотрите также

Ссылки

  1. ^ https://opensource.apple.com/source/postfix/postfix-174.2/Postfix.Config/main.cf.default. Архивировано 2017-08-03 на Wayback Machine
  2. ^ http://opensource.apple.com/source/apache/apache-769/httpd.conf. Архивировано 01.08.2020 на Wayback Machine
  3. ^ "rc file". Catb.org . Получено 29.02.2012 .
  4. ^ Microsoft: Комплект ресурсов Windows NT Workstation.
  5. INI-файлы OS/2 Джеймса Дж. Вайнкама.
  6. ^ Эванс, Мелисса. "HarmonyOS (Hongmeng) — config.json". Mo4Tech . Mo4Tech . Получено 24 марта 2024 г. .
  7. ^ TOML, TOML, 2023-01-15 , получено 2023-01-15
  8. ^ Синтаксическая типизация относится к использованию синтаксиса для обозначения типов данных . В языках, которые допускают синтаксическую типизацию, объявление типа будет основано на синтаксисе — например, trueбудет логическим значением , а "true"будет строкой — тогда как в языках, которые не допускают синтаксическую типизацию, оно будет основано на семантике — например, trueи "true"будут оба распознаваться как логические значения, тогда как microwaveи "microwave"будут оба распознаваться как строки (для этого парсеру потребуется иметь некоторые предварительные ожидания относительно типа конкретного поля, но это часто бывает в файлах конфигурации).
  9. ^ Мнения авторов о том, является ли типизация синтаксиса в форматах конфигурации хорошей или плохой функцией, различаются. Некоторые считают ее недостатком (см., например, Что не так с типизацией синтаксиса TOML §), а другие отдают ей предпочтение.
  10. ^ "О компании | CUE" . Получено 6 октября 2022 г.
  11. ^ «Формат обмена данными JavaScript Object Notation (JSON)».
  12. ^ «Спецификация TOML».
  13. ^ "Формальное определение грамматики UCL · Выпуск № 231 · vstakhov/libucl". GitHub .
  14. ^ «Индекс спецификаций YAML™».
  15. ^ «Расширяемый язык разметки (XML) 1.0 (пятое издание)».