ĂshtĂ« publikuar edicioni i parĂ« publik i projektit Nitro, qĂ« zhvillon njĂ« sistem minimalistik inicializimi me funksione Kontrolli mbi ekzekutimin e proceseve. Projekti zhvillohet nga Leah Neukirchen, njĂ« nga mbĂ«shtetĂ«sit e paketeve nĂ« shpĂ«rndarjen Void Linux. Kodi Ă«shtĂ« shkruar nĂ« gjuhĂ«n C dhe shpĂ«rndahet nĂ«n licencĂ«n 0BSD.
Nitro mund të përdoret si procesi init (pid 1), ashtu si dhe në formën e një procesi të papenguar, që kontrollon ekzekutimin e vazhdueshëm të aplikacioneve në hapësirën e përdoruesit dhe ribashkon detyrat në rast dështimesh. Mbështetet funksionimi në Linux dhe FreeBSD, dhe është e mundur të përdoret në mjedise të ndërtuara mbi bibliotekën standarde C Musl. Si fusha përdorimi përmenden sistemet në ngulitur, imazhet e ram-diskut (initramfs), kontejnerët (Docker/Podman/LXC/Kubernetes), si dhe stacionet e punës dhe sistemet serverike. Për menaxhimin e punës së shërbimeve dhe ndërveprimin me procesin init, ofrohet një utilitar me linjë komandash nitroctl.
Përveç skripteve kompozite të inicializimit, në Nitro aplikohet një model që bazohet në nxjerrjen e çdo funksioni në një skript të veçantë. Për çdo shërbim në hierarkinë /etc/nitro krijohet një nënfolder, në të cilin mund të vendosen skriptet e mëposhtme: setup - përmban komandat që ekzekutohen para nisjes së shërbimit; run - përcakton skenarin e nisjes së shërbimit; finish - përfshin komandat që ekzekutohen pas përfundimit të shërbimit. Për organizimin e mbajtjes së logëve përdoret një lidhje simbolike me emrin log, që tregon në një shërbim tjetër, ku do të ridrejtohet dalja. Për të çaktivizuar nisjen automatikë të shërbimit, mjafton të krijohet në dosjen e tij një skedar me emrin 'down', e për të injoruar shërbimin duhet të shtohet simbolet '@' në emrin e dosjes.
Autori i projektit thekson këto merita të Nitro krahasuar me sistemet e tjera të inicializimit:
- Të gjitha gjendjet ruhen në RAM, që e bën më të lehtë punën në mjedise me ndarje diskesh në modalitetin vetëm për lexim.
- Arkitektura e bazuar në përpunimin e ngjarjeve, që nuk përdor sondazhin në modalitetin polling.
- Mungesë operacioneve të ndarje të memories gjatë funksionimit (të gjitha tamponet ndahen gjatë fillimit).
- Përdorim të kufizuar të descriptorëve të skedareve gjatë punës.
- Dërgimi në formën e një skedari ekzekutiv të vetë-mjaftueshëm dhe një utilitari për menaxhimin e sistemit.
- Mungesa e fazave tĂ« kompilimit tĂ« konfiguracionitâfunksionin e shĂ«rbimit e pĂ«rcaktojnĂ« skriptet e thjeshta nĂ« katalogun e lidhur me shĂ«rbimin.
- Prania e funksionit për rinisjen e shërbimeve pas një dështimi.
- Prania e mekanizmit të regjistrimit të logëve, që mund të aktivizohen si automatikisht, ashtu edhe selektivisht për shërbime të veçanta.
- Mundësia e ndërtimit të një zinxhiri përpunimi të logëve, që mbulon disa shërbime.
- Funksionimi nuk varet nga saktësia e vendosjes së orëve sistematike.
- Mbështetje për nisjen në FreeBSD përmes /etc/ttys.
- Mundësia e ndërtimit në formën e një skedari ekzekutiv të miniaturizuar të kompiluar statikisht duke përdorur musl libc.
Burimi: opennet.ru
