Конфігураційний файл
В обчислювальній техніці конфігураційні файли або файли конфігурації — це файли, призначені для налаштування параметрів та ініціалізації деяких комп’ютерних програм. Вони використовуються для застосунків, серверних програм і налаштувань операційної системи.
Деякі програми надають інструменти для створення, змінення та перевірки синтаксису файлів конфігурації; іноді вони мають графічний інтерфейс. Для інших програм системні адміністратори можуть створювати та змінювати файли вручну за допомогою текстового редактора, оскільки багато з них є простими текстовими файлами. Для серверних процесів і налаштувань операційної системи часто не існує стандартного інструменту, але операційні системи можуть надавати власні графічні інтерфейси, такі як YaST або debconf[en].
Деякі програми зчитують файли конфігурації лише під час запуску. Інші періодично перевіряють конфігураційні файли на наявність змін. В окремих випадках користувач може ініціювати примусове читання файлу конфігурації та застосування змін до поточного процесу, або навіть читання довільних файлів як файлів конфігурації. Щодо цього немає чітких стандартів чи домовленостей.
У Unix-подібних операційних системах існує багато різних форматів конфігураційних файлів, причому кожна програма або служба потенційно має унікальний формат, але традиційно це прості текстові файли, які редагує людина, у форматі пар «ключ-значення»[en]. Часто використовуються розширення назв файлів .cnf
, .conf
, .cfg
, .cf
або .ini
.
Майже всі формати дозволяють додавати коментарі, і в такому випадку окремі параметри можна вимкнути, додавши на початку рядка знак коментаря. Часто типові файли конфігурації містять розширену внутрішню документацію у формі коментарів[1][2], а файли man також зазвичай використовуються для документування формату та доступних параметрів.
Загальносистемне програмне забезпечення часто використовує конфігураційні файли, що зберігаються в /etc
, тоді як користувацькі програми часто використовують «файли з крапкою»[en] — файл або теку в домашньому каталозі[en] з крапкою на початку назви, які в Unix приховуються від випадкового перегляду.
Деякі конфігураційні файли виконують під час запуску набір команд. За домовленістю, такі файли мають у назві букви «rc
»,[3] зазвичай додані до назви програми, наприклад, .xinitrc
, .vimrc
, .bashrc
, xsane.rc
. (Див.також RUNCOM[en]).
Навпаки, AIX від IBM використовує для зберігання більшості системних параметрів базу даних Object Data Manager (ODM).
Сама 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 активно використовувалися текстові файли INI (від англ. initialization — «ініціалізація»). Вони слугували основним механізмом для налаштування операційної системи та програм[4]. Інтерфейси API для читання та запису з них все ще існують у Windows, але після 1993 року Microsoft почала відмовляти розробників від використання INI-файлів на користь збереження параметрів у реєстрі Windows, ієрархічній базі даних для зберігання параметрів конфігурації, введеній того року у Windows NT.
Список властивостей[en] — це стандартний формат файлу конфігурації в macOS (а також у програмах iOS, NeXTSTEP, GNUstep і Cocoa). Він використовує розширення назви файлу .plist
.
OS/2 від IBM використовує двійковий формат, також із розширенням .INI, але відмінний від Windows-версії. Він містить список списків безтипових пар "ключ-значення"[5]. Два файли керують загальносистемними налаштуваннями: OS2.INI та OS2SYS.INI. Розробники програм можуть вибрати, використовувати їх чи створити для своїх програм окремі файли.
Існує низка форматів серіалізації загального призначення, які можуть подавати складні структури даних у форматі, який легко зберігати, і вони часто використовуються як основа для конфігураційних файлів, особливо в програмах і бібліотеках з відкритим початковим кодом і багатоплатформних. Специфікації, що описують ці формати, регулярно публікуються.
- .properties, розширення файлу, яке переважно використовується в Java
- HOCON, надмножина .properties і JSON
- INI-файл, поширений формат файлу конфігурації
- JSON із підтримкою складних типів даних і структур даних
- RUNCOM[en], що пояснює історичне походження суфікса "rc".
- TOML[en], формально визначений формат файлу конфігурації
- YAML з підтримкою складних типів даних і структур
- ↑ https://opensource.apple.com/source/postfix/postfix-174.2/Postfix.Config/main.cf.default. [Архівовано 2017-08-03 у Wayback Machine.]
- ↑ http://opensource.apple.com/source/apache/apache-769/httpd.conf. [Архівовано 2020-08-01 у Wayback Machine.]
- ↑ rc file. Catb.org. Процитовано 29 лютого 2012.
- ↑ Microsoft: Windows NT Workstation Resource Kit.
- ↑ The OS/2 INI Files by James J. Weinkam.