Кіріспе

Конфигурациялық файл форматы

INI файлы – компьютерлік бағдарламалық жасақтама үшін конфигурациялық файл. Ол қасиеттер үшін кілт-мәнді жұптардан және қасиеттерді ұйымдастыратын бөлімдерден тұратын, құрылымы мен синтаксисі бар мәтіндік мазмұннан құралады. Бұл конфигурациялық файлдардың атауы MS DOS операциялық жүйесінде қолданылған INI файл атауының кеңейтілуінен шыққан, ол бағдарламалық жасақтаманы конфигурациялаудың осы әдісін танымал еткен. Формат көптеген конфигурациялық жағдайларда де-факто стандартқа айналды, бірақ басқа операциялық жүйелердегі көптеген қолданбалар conf және cfg сияқты әртүрлі файл атауы кеңейтімдерін пайдаланады.

Тарих

Windows-та бағдарламалық қамтамасының бастапқы конфигурациялау механизмі – мәтіндік файл форматы болды. Ол мәтін жолдарынан тұратын, әр жолында бір кілт-мәнді жұптары бар, бөлімдерге жіктеліп ұйымдастырылған. Бұл формат операциялық жүйенің құрамдас бөліктеріне, мысалы, құрылғы драйверлеріне, қаріптерге және жүйелік қосымшаларға қолданылды. INI файлдары әдетте қосымшалар жеке параметрлерді сақтау үшін де пайдаланылатын. Бұл формат 16 биттік Microsoft Windows платформаларында Windows 3.1x нұсқасына дейін қолданылып келді. Windows 95-тен бастап Microsoft Windows тіркелімін пайдалануға көшті және әзірлеушілерді конфигурация үшін INI файлдарын қолданудан бас тартуға шақырды. Windows-тың барлық келесі нұсқалары жүйелік конфигурация үшін Windows тіркелімін қолданады, бірақ NET Framework негізінде құрылған қосымшалар арнайы XML конфигурациялық файлдарын пайдаланады. Бастапқы файлдарға қатысты функциялар Windows-та әлі де қолжетімді және әзірлеушілер оларды пайдалана береді. Windows бағдарламалық қамтамасынан өзге, платформаға тәуелсіз бағдарламалық қамтама да осы файл форматын конфигурация үшін қолдануы мүмкін. Unix сияқты кейбір конфигурациялық файлдар да ұқсас форматты қолданады. INI форматы адам оқуға қолайлы және қарапайым түрде талданады, сондықтан ол күрделілігі жоғары емес конфигурациялық файлдар үшін қолдануға ыңғайлы.

Ауру таралуы

INI файлдары кездесетін орындардың толық емес тізімі төменде келтірілген. Жұмыс үстелі. ini файлдары Windows жүйесінде әлі де каталогтардың қасиеттерін конфигурациялау үшін қолданылады, мысалы, папкаға белгіше тағайындау. PHP-нің php.ini файлы INI форматын пайдаланады. Git-тің git/config файлы INI нұсқасында жазылған. freedesktop.org *.desktop жұмыс үстелі жазбалары INI нұсқасында жазылады. systemd *.service бірлік конфигурациялық файлдары INI форматында жазылған. Netatalk-тың afp.conf файлы INI стиліндегі конфигурация тілінде жазылған. Pacman-ның pacman.conf файлы INI форматында жазылған.

Формат

Кең мағынада, INI – адамдарға конфигурациялауға мүмкіндік беретін, сонымен бірге жедел іске асыруға ыңғайлы бейресми формат. Осының салдарынан, көптеген әртүрлі спецификациялар (кейде парсерді іске асыру – жазылған жалғыз спецификация) бар, олар INI диалектілері деп аталады. INI интерпретациялары жеке талғам мен есептеу ортасына (мысалы, бос орынның нақты деректерге қатысты қажеттілігі; өріс типі туралы ақпараттың қажеттілігі; Windows әріптерді ерекшелемейтін, Unix әріптерді ерекшелейтін режимді ұнатады; # белгіленген түсініктемелер Unix сценарийлерінен алынған) көптеген жағдайларда тәуелді, сондықтан INI таралуға бейім. Дегенмен, INI форматымен әдетте байланыстырылатын берік ядро бар: мәтіндік және жолдық формат, бос орындар жойылады, бос жолдар мен түсініктеме жолдары (мысалы, ; жүйелік пошталық тізімге тіркеледі, # d5cb328 үшін түзету) назардан тыс қалады, квадрат жақшалар бөлімдерді көрсетеді (мысалы, [Unit], [branch "master"]), ал деректер әдетте тең белгісімен (ASCII 0x3D) бөлінген мәндік жұптар түрінде ұсынылады (мысалы, IconFile=Folder.ico, time machine = yes). Мүмкіндігінше көп диалектіні қолдай алатын парсерлерді жасауға тырысулар бар. Ең күрделі интерпретациясында INI форматы кез келген S-өрнектерін білдіре алады, бұл оны XML немесе JSON сияқты стандартталған форматтармен теңестіреді, бірақ синтаксисі қатаң бекітілмеген және кейбіреулерге ыңғайлырақ сезілуі мүмкін. INI файл форматы қатаң түрде анықталмағандықтан, көптеген парсерлер ортақ ядроны құрайтын мүмкіндіктерден өзге де мүмкіндіктерді қолдайды. Іске асырылған қолдау өте өзгергіш.

Бөлімдер мен қасиеттердің реті

Бөлімдегі қасиеттердің және файлдағы бөлімдердің тізбегі маңызды емес.

Қайталанған атаулар

Көптеген іске асырулар бір бөлімде бір қасиеттің атының бір рет келуін ғана қолдайды. Қасиет атының екінші рет келуі жұмысты тоқтатуға, оны ескермеуге (және мәнін жоюға) немесе бірінші кездесуді алмастыруға (бірінші мән жойылатын) әкелуі мүмкін. Кейбір бағдарламалар бірнеше мәнді қасиеттерді іске асыру үшін қайталама қасиет атауларын пайдаланады. Бірдей атаумен бірнеше бөлімдердің жариялануын түсіндіру де әртүрлі. Кейбір іске асыруларда қайталама бөлімдер өздерінің қасиеттерін біріктіріп, олар тікелей келгендей әрекет етеді. Ал басқалары INI файлының кейбір аспектілерін тоқтатуы немесе назардан тыс қалдыруы мүмкін.

Көрсетілген мәндер

Кейбір іске асырулар мәндерді тырнақшаға алуға мүмкіндік береді, әдетте қос тырнақшалар және/немесе апострофтар қолданылады. Бұл ақ орынды нақты көрсетуге және/немесе арнайы символдарды (теңдік, нүкте-жолақ, және т.б.) тырнақшаға алуға мүмкіндік береді. Стандартты Windows GetPrivateProfileString функциясы мұны қолдайды және мәндерді қоршап тұрған тырнақшаларды жояды.

Жолдың жалғасы

C синтаксисін үлгі алу арқасында, кейбір диалекттер жолдың соңғы символы ретінде кері қисық сызықты (\, ASCII 0x5C) пайдаланып жолды жалғастыруға рұқсат береді. Мұндай жол жалғастыру кезінде, кері қисық сызықтан кейін дереу EOL (жол соңы) келсе, кері қисық сызық және жол үзілісі жойылады, нәтижесінде құжаттағы жолдар логикалық жолдарға айналады.

Баламалар

Windows 95-тен бастап Microsoft Windows тіркелімін INI файлдарынан гөрі қолдануды белсенді түрде насихаттауға кірісті. INI файлдары көбінесе екі деңгеймен (бөлімдер мен қасиеттер) шектеледі және екілік деректерді тиімді өңдемейді. Дегенмен, бұл шешім сынға ұшырады, себебі тіркелім біртұтас, түсініксіз және екілік болып табылады, файлдық жүйемен үйлесімді болуы керек және операциялық жүйе үшін жалғыз сәтсіздік нүктесі болып табылады. Кейіннен XML негізделген конфигурация файлдары мәтіндік файлдарда конфигурацияны кодтау үшін танымал таңдауға айналды. XML кез келген күрделілік деңгейлері мен ұялауға мүмкіндік береді және екілік деректерді кодтау үшін стандартты механизмдерге ие. Соңғы кезде JSON, TOML және YAML сияқты деректерді серияландыру форматтары конфигурация форматтары ретінде қолданылуда. Бұл үш балама формат кез келген деңгейде ұялауға мүмкіндік береді, бірақ INI файлынан өзгеше синтаксисқа ие. Олардың ішінде TOML INI-ге ең жақын, бірақ TOML-ды INI-нің үлкен бөлігімен үйлесімді ету идеясы қабылданбады. Алайда, INI-нің жаңа парсерлері XML, JSON, TOML және YAML сияқты форматтардың кез келген деңгейде ұялауына мүмкіндік береді, типтелген мәндер мен Юникодты толық қолдайды, бірақ INI файлдарының "бейресми статусын" сақтайды, бірдей нәрсені білдіру үшін бірнеше синтаксисқа рұқсат етеді.