Конфігураційний файл

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

В обчислювальній техніці конфігураційні файли або файли конфігурації — це файли, призначені для налаштування параметрів та ініціалізації деяких комп’ютерних програм. Вони використовуються для застосунків, серверних програм і налаштувань операційної системи.

Деякі програми надають інструменти для створення, змінення та перевірки синтаксису файлів конфігурації; іноді вони мають графічний інтерфейс. Для інших програм системні адміністратори можуть створювати та змінювати файли вручну за допомогою текстового редактора, оскільки багато з них є простими текстовими файлами. Для серверних процесів і налаштувань операційної системи часто не існує стандартного інструменту, але операційні системи можуть надавати власні графічні інтерфейси, такі як YaST або debconf[en].

Деякі програми зчитують файли конфігурації лише під час запуску. Інші періодично перевіряють конфігураційні файли на наявність змін. В окремих випадках користувач може ініціювати примусове читання файлу конфігурації та застосування змін до поточного процесу, або навіть читання довільних файлів як файлів конфігурації. Щодо цього немає чітких стандартів чи домовленостей.

Редагується файл конфігурації GNU GRUB. Коментарі (рядки, що починаються з '#') використовуються і як документація, і як спосіб "відключення" налаштувань.

Конфігураційні файли та операційні системи

[ред. | ред. код]

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

[ред. | ред. код]

У 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

[ред. | ред. код]
Програма REGEDIT використовується для редагування даних реєстру Windows

У ранніх операційних системах сімейства 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. Розробники програм можуть вибрати, використовувати їх чи створити для своїх програм окремі файли.

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

[ред. | ред. код]

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

Приклади: JSON, XML і YAML.

Див. також

[ред. | ред. код]
  • .properties, розширення файлу, яке переважно використовується в Java
  • HOCON, надмножина .properties і JSON
  • INI-файл, поширений формат файлу конфігурації
  • JSON із підтримкою складних типів даних і структур даних
  • RUNCOM[en], що пояснює історичне походження суфікса "rc".
  • TOML[en], формально визначений формат файлу конфігурації
  • 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. [Архівовано 2020-08-01 у Wayback Machine.]
  3. rc file. Catb.org. Процитовано 29 лютого 2012.
  4. Microsoft: Windows NT Workstation Resource Kit.
  5. The OS/2 INI Files by James J. Weinkam.