Megjelent a Nitro projekt első nyilvános kiadása, amely egy minimalista inicializáló rendszert fejleszt, a folyamatok végrehajtásának ellenőrzésével kapcsolatos funkciókkal. A projektet Leah Neukirchen fejleszti, aki az Void Linux disztribúció tarantományai közé tartozik. A kód C nyelven készült, és a 0BSD licensz alatt terjesztik.
A Nitro alkalmazható init-folyamatként (pid 1) és nem privilegizált folyamatos folyamatként is, amely figyelemmel kíséri a felhasználói térben futó alkalmazások zavartalan végrehajtását, és újraindítja a feladatokat hiba esetén. Támogatja a Linux és a FreeBSD munkát, és alkalmazható a standard C könyvtárral rendelkező környezetekben, mint például a Musl. Használati területei között megemlítik a beágyazott rendszereket, a ram-lemezképeket (initramfs), a konténereket (Docker/Podman/LXC/Kubernetes), valamint munkaállomásokat és szerverrendszereket. A szolgáltatások működésének kezelésére és az init-folyamattal való interakcióra a nitroctl parancssori segédeszközként áll rendelkezésre.
A Nitro nem összetett inicializáló szkriptek alkalmazását, hanem egy modellt használ, amelyben minden funkció saját szkriptbe kerül. Minden szolgáltatás számára, amely az /etc/nitro hierarchiában található, almappa jön létre, amelyben a következő szkriptek helyezhetők el: setup – olyan parancsokat tartalmaz, amelyek a szolgáltatás elindítása előtt futnak; run – meghatározza a szolgáltatás indításának forgatókönyvét; finish – olyan parancsokat tartalmaz, amelyek a szolgáltatás befejezése után futnak. A naplózás szervezésére egy log nevű szimbolikus hivatkozást használnak, amely egy másik szolgáltatásra mutat, amelyhez a kimenetet átirányítják. A szolgáltatás automatikus indításának letiltásához elegendő egy „down” nevű fájlt létrehozni a mappájában, a szolgáltatás figyelmen kívül hagyásához pedig a mappa nevéhez „@” szimbólumot kell hozzáadni.
A projekt szerzője a Nitro következő előnyeit emeli ki más inicializáló rendszerekkel szemben:
- Minden állapot a RAM-ban tárolódik, ami megkönnyíti a munkát csak olvasási módban lévő lemezosztályokkal rendelkező környezetekben.
- Esemény-vezérelt architektúra, amely nem használ polling módot.
- A működés során nem alkalmaz memóriaallokációs műveleteket (minden puffer a indításkor kerül megkötésre).
- Korlátozott fájldeszköz-használat működés közben.
- Önálló végrehajtható fájl és segédeszköz a rendszer kezelésére.
- A konfigurációs fordítások hiánya - a szolgáltatás működését egyszerű szkriptek határozzák meg, amelyek a szolgáltatáshoz kapcsolódó könyvtárban találhatók.
- A szolgáltatások újraindításának lehetősége hiba esetén.
- A naplózási mechanizmus jelenléte, amely alapértelmezetten és külön-külön, egyes szolgáltatásokra is bekapcsolható.
- Lehetőség a naplófeldolgozási lánc felépítésére, amely több szolgáltatást is magában foglal.
- A működés független a rendszerórák pontos beállításától.
- A FreeBSD támogatása a /etc/ttys-en keresztül történik.
- Lehetőség egy mini statikusan lefordított végrehajtható fájl formájában történő összeállításra musl libc használatával.
Forrás: opennet.ru
