Даступная сістэма ініцыялізацыі Finit 4.0

Пасля каля трох гадоў распрацоўкі апублікаваны рэліз сістэмы ініцыялізацыі Finit 4.0 (Fast init), якая развіваецца ў якасці простай альтэрнатывы SysV init і systemd. Праект заснаваны на напрацоўках, створаных пры зваротным інжынірынгу сістэмы ініцыялізацыі fastinit, выкарыстоўванай у Linux-прашыўцы нетбукаў EeePC і характэрнай вельмі хуткім працэсам загрузкі. Сістэма ў першую чаргу нацэлена на забеспячэнне загрузкі кампактных і ўбудавальных сістэм, але таксама можа прымяняцца для звычайных настольных і серверных акружэнняў. Прыклады сцэнарыяў для ўкаранення падрыхтаваны для Void Linux, Alpine Linux і Debian GNU/Linux. Код праекту напісаны на мове Сі і распаўсюджваецца пад ліцэнзіяй MIT.

Finit падтрымлівае ўзроўні выканання (runlevel) у стылі SysV init, адсочванне працаздольнасці фонавых працэсаў (аўтаматычны перазапуск сэрвісу ў выпадку збою), выкананне аднаразовых апрацоўшчыкаў, запуск сэрвісаў з улікам залежнасцяў і адвольных умоў, прымацаванне дадатковых апрацоўшчыкаў для запуску. Напрыклад, можна наладзіць запуск сэрвісу толькі пасля з'яўлення доступу да сеткі ці пасля таго, як будзе запушчаны нейкі іншы сэрвіс, такі як syslogd. Для задання абмежаванняў прымяняецца Cgroups v2.

Для пашырэння функцыянальнасці і адаптацыі пад свае патрэбы могуць выкарыстоўвацца плагіны, для якіх прадстаўлена сістэма hook-ов, якія дазваляюць прымацаваць апрацоўшчык да розных стадый загрузкі і выкананні сэрвісаў, а таксама забяспечыць прывязку да вонкавых падзей. Напрыклад, падрыхтаваны плагіны для падтрымкі D-Bus, ALSA, netlink, resolvconf, гарачага падлучэння прылад, праверкі даступнасці і загрузкі модуляў ядра, апрацоўкі PID-файлаў і налады асяроддзя для X-сервера.

Падтрымліваецца выкарыстанне тыпавых скрыптоў для запуску сэрвісаў, створаных для SysV init (/etc/rc.d і /etc/init.d не выкарыстоўваюцца, але падтрымка /etc/inittab можа быць рэалізавана праз убудову), а таксама сцэнарыяў rc.local, файлаў са зменнымі асяроддзі і сеткавых налад /etc/network/interfaces, як у Debian і BusyBox. Налады могуць як вызначацца ў адным файле канфігурацыі /etc/finit.conf, так і размяркоўвацца па некалькіх файлах у каталогу /etc/finit.d.

Кіраванне ажыццяўляецца праз тыпавы інструментар initctl і run-parts, які дазваляе актываваць і дэактываваць сэрвісы ў прывязцы да ўзроўняў запуску, а таксама выбарачна запускаць частку сэрвісаў. У склад Finit таксама ўваходзіць убудаваная рэалізацыя getty (кіраванне тэрміналам і ўваходам карыстальнікаў), watchdog для адсочвання працаздольнасці і рэжым аднаўлення пасля збою з убудаваным sulogin для запуску ізаляванай каманднай абалонкі.

Даступная сістэма ініцыялізацыі Finit 4.0

Сярод змен, дададзеных у выпуску Finit 4.0 (версія 3.2 была прапушчана з-за наяўнасць змен, якія парушаюць зваротную сумяшчальнасць):

  • Асобная ўтыліта reboot заменена на сімвалічную спасылку на initctl па аналогіі з утылітамі halt, shutdown, poweroff і suspend.
  • Рэалізавана індыкацыя прагрэсу выканання аперацый.
  • Зменена праца каманд "inictl cond set|clear COND" для прывязкі дзеянняў да розных падзей. Для ідэнтыфікацыі сэрвісаў задзейнічаны сінтаксіс замест прывязкі да шляхоў .
  • Выдалена ўбудаваная рэалізацыя сервера inetd, пры неабходнасці ў якім можна ўсталяваць xinetd.
  • Дададзена падтрымка cgroups v2 для запуску сэрвісаў у асобных cgroup.
  • Дададзены рэжым аднаўлення пасля збою са сваім suslogin.
  • Дададзена падтрымка start/stop скрыптоў ад SysV init.
  • Дададзеныя апрацоўшчыкі pre:script і post:script, якія дазваляюць паказаць свае дзеянні, якія выконваюцца перад ці запуску сэрвісу.
  • Дададзена падтрымка env:file са зменнымі асяроддзі.
  • Дададзена магчымасць адсочвання адвольных PID-файлаў.
  • Дададзена магчымасць запуску задач і сэрвісаў з выкарыстаннем адносных шляхоў.
  • У initctl дададзена опцыя "-b" для выканання дзеянняў у неінтэрактыўным рэжыме (batch mode).
  • Убудаваны watchdog заменены на асобны варыянт watchdogd.
  • Дададзены плягін для аўтаматычнай загрузкі модуляў ядра для прылад, якія падключаюцца падчас працы.
  • Дададзены плягін для апрацоўкі /etc/modules-load.d/.
  • Дададзена падтрымка аўтаматычнага перазапуску сэрвісаў пасля змены налад, якая дазваляе абыйсціся без ручнога выканання каманды "initctl reload". Па змаўчанні адключана і патрабуе перазборкі з "./configure -enable-auto-reload".
  • Дададзена магчымасць вядзення лога аперацый, якія ўплываюць на бяспеку, такіх як змена runlevel, запуск і прыпынак сэрвісаў, збоі сэрвісаў.
  • Палепшана падтрымка /etc/network/interfaces.

    Крыніца: opennet.ru

Дадаць каментар