antiX-26 — zase o niečo lepší #3
Tak konečne si povieme viac o init systémoch antiX-u. Prečo ich má vlastne toľko?
Čo je to init
Pre väčšinu je to pravdepodobne známy pojem, no ak nie, tak init systém v linuxe je prvý proces, ktorý sa spustí po zavedení jadra. Jeho úlohou je inicializovať systém, spustiť služby a zabezpečiť ich správne fungovanie.
Je ich viacero, najznámejšie sú:
- SysVinit,
- systemd,
- OpenRC.
Zvlášť odklon od SysVinit smerom k systemd vzbudilo veľa povyku a obe strany majú svoje argumenty, ktorými zručne racionalizujú ich používanie. A neradno sa ani teraz do takejto dišputy pustiť.
antiX neprešiel na systemd z viacerých dôvodov, najmä však kvôli podpore starých strojov, filozofie nezávislosti (najväčším prispievateľom je RedHat, čo u niekomu môže dvíhať obočie — proste korporát), ďalej kvôli jeho monolitickej architektúre (systemd obsluhuje nielen init, ale aj cgroups, logovanie (journald), sieť, atď.), a i teda kvôli nesúladu s unixovou filozofiou.
Voľba init-u
antiX má na to šikovný nástroj: „Init Diversity Manager“. A to je fajn, je to grafický nástroj, pomocou ktorého to ide jednoducho a navyše — diverzita je vždy prínosom. Ono je to tak, že grub menu automaticky spustí program, na ktorý odkazuje súbor /sbin/init. Takže tento nástroj vyrába požadovaný symbolický odkaz.
Adresár /etc obsahuje konfiguračné súbory pre všetkých päť init systémov a adresár /sbin obsahuje spúšťacie súbory.
Aha — ešte sme nepovedali, o aké systémy sa jedná. Sú to tieto:
- runit
- SysVinit
- dinit
- s6-rc
- s6-66
![]() |
| Obr. 0: Init Diversity Manager |
Prečo ich je tak veľa? Presnú odpoveď nepoznám, ale hádam je to preto, že každý má svoje plusy a mínusy.
| Init | Paralelný štart | Závislosti | Umiestnenie | Výhody | Nevýhody |
|---|---|---|---|---|---|
| SysVinit | Nie (väčšinou sekvenčne) | Žiadne formálne, poradie cez prefix S/K | /etc/init.d, /etc/rc?.d | Jednoduchý, široká podpora | Pomalší štart, manuálne závislosti |
| OpenRC | Áno (možné) | Deklarované v skriptoch | /etc/init.d, /etc/conf.d, /var/service (distro-specific) | Lepší paralelizmus a správa závislostí, stále sú to sh skripty | Manuálne závislosti, bez vlastného logovania |
| runit | Áno, rýchly | Služby sú nezávislé | /etc/sv alebo /srv/run, jednotlivé run súbory | Veľmi rýchly, jednoduchý model, dohľad nad procesmi | Manuálne závislosti, nemá cgroups |
| s6 | Áno, ešte rýchlejší | Zložité explicitné závislosti cez s6-rc | /etc/s6, /service alebo distro-spec. adresáre | Veľká kontrola, robustný dohľad nad službami | Strmšia krivka učenia |
| dinit | Áno | Deklarované závislosti | /etc/dinit.d alebo /etc/dinit | Malý, rýchly, explicitné závislosti | Menej rozšírený, menej balíčkov so service-súbormi |
| systemd | Áno | Deklarované závislosti v unit súboroch | /lib/systemd/system, /etc/systemd/system | Moderné, rýchly štart, jednotná konfigurácia | Veľký, integrovaný, all-in-one, kontroverzný |
A čo sa deje na pozadí?
Ako sme hovorili, /sbin/init je symbolický odkaz na konkrétny init skript. (napr. /lib/runit/runit-init, /lib/sysvinit/init,…); antiX poskytuje pre niektoré inity samostatné „service“ balíčky a štruktúry (napr. runit-service-, dinit-service-, s6-rc-service-, 66-service-; dajú sa zistiť pomocouapt-cache search '^runit-service-|^dinit-service-|^s6-rc-service-|^66-service-').
Tie inštalujú služby v tvare očakávanom daným initom (runit: /etc/sv alebo /srv/run, dinit: svoje konfigurácie). Zároveň antiX má klasické SysV skripty (/etc/init.d/) ktoré niektoré inity dokážu znovu použiť alebo volať cez kompatibilné wrappery.
Čo je ale dôležité: nie všetky služby sú „duplikované“ v plnom rozsahu pre každý init. Preto antiX buď dodá pre daný init vlastné service-balíčky, alebo inity používajú kompatibilné skripty/wrappery.
Pri zmene init systému sa zmení proces 1 (PID 1) spúšťaný kernelom; ten (konkrétny init) potom používa svoju vlastnú politiku spúšťania a adresáre pre služby (teda nejedná sa len o „prepínanie symlinkov“ v /etc, ale tie služby musia v tvare očakávanom novým initom). Preto antiX dodáva nástroje a balíčky, ktoré pripravujú potrebné „service“ súbory a upravujú boot menu.
Otázkou teda je, či každý init má svoje vlastné verzie skriptov so službami…? No nie. Často je jedna „primárna“ implementácia (najčastejšie SysV skript v /etc/init.d/) a ostatné inity buď používajú kompatibilné wrappery, alebo distribúcia poskytne špecifické „service“ balíčky.
Poznámka na okraj: čo je to ten „wrapper“?
Je to malý skript, ktorý umožní spustiť službu napísanú pre jeden init systém, ktorý premostí rozdiely v API, umiestnení (v adresárovej štruktúre) a spúšťacom modeli. Hľadal som hocikde po webe, ako to presne funguje, a zistil som len, že wrapper zavolá pôvodný init skript s potrebnými parametrami (start/stop/restart) a preloží ho do formy, ktorú nový (druhý) init očakáva (napr. runit očakáva súbor run, s6 očakáva run a finish, dinit moduly majú zase niečo iné). Výhodou môže byť prispôsobenie existujúcich služieb bez ich úplneho prepísania, takže možno používať služby napísaných len so SysV skriptami.
Zhrnuté — niektoré služby sú ošetrené tými „wrappermi“, a niektoré sú dodávané vo viacnásobných service‑balíčkoch. Medzi tie, povedzme „univerzálne“ patria udev, dbus-daemon, syslog, ssh, cron, /getty/…
Špecifické majú napríklad takéto mená:
- dinit-dialogbox-manager
- dinit-service-boot-module-antix
- dinit-service-connmand
- runit-service-acpid
- runit-service-libvirtd
- runit-service-manager
- s6-rc-dialogbox-manager
- s6-rc-service-spice-vdagentd
Výber požadovaných služieb pri štarte systému, alebo ich ručné spustenie, zastavenie či reštart sa v minulosti pre SysVinit robilo pomocou TUI rozhrania. Teraz k tomu pribudol i grafický nástroj.
![]() |
| Obr. 1: Service manager |
Ako ten-ktorý init funguje, ako sa ovláda z príkazového riadku možno dohľadať v oficiálnej dokumentácii:
Záver
Veľké množstvo rôznych init systémov v antiX-e je dôkazom, že jeho autori nestrácajú čas spormi, ktorý init je lepší (samozrejme, systemd je výnimkou) a implementujú rôzne riešenia, ktorými poskytujú používateľom skutočnú slobodu výberu.
Namiesto slepého nasledovania jednej platformy si antiX zachováva ľahkosť, rôznorodosť a adaptabilnosť pre rôzne hardvérové a filozofické potreby.
Toto prístup len potvrdzuje antiX ako moderný, štíhly systém s rešpektom k používateľom.
Aj preto ich pravidelne finančne podporujem. Vážim si ich nadšenie a prácu.



Pre pridávanie komentárov sa musíte prihlásiť.