Byl zveřejněn první veřejný release projektu Nitro, který rozvíjí minimalistický init systém s funkcemi pro kontrolu vykonávání procesů. Projekt vyvíjí Leah Neukirchen, jedna z udržovatelek balíčků v distribuci Void Linux. Kód je napsán v jazyce C a je distribuován pod licencí 0BSD.
Nitro může být používáno jak jako init proces (pid 1), tak ve formě neoprávněného procesu, který kontroluje plynulé vykonávání aplikací v uživatelském prostoru a restartuje úkoly v případě selhání. Podporuje práci na Linuxu a FreeBSD, je možné jej používat v prostředí na základě standardní C knihovny Musl. Mezi oblasti použití patří vestavěné systémy, obrazy ramdisků (initramfs), kontejnery (Docker/Podman/LXC/Kubernetes), jakož i pracovní stanice a serverové systémy. K ovládání práce služeb a interakci s init procesem je dodávána příkazová utilita nitroctl.
Místo složených ininit skriptů používá Nitro model, který zakládá každou funkci na samostatném skriptu. Pro každou službu v hierarchii /etc/nitro je vytvořen podadresář, ve kterém mohou být umístěny následující skripty: setup — obsahuje příkazy prováděné před spuštěním služby; run — definuje scénář spuštění služby; finish — zahrnuje příkazy prováděné po ukončení služby. Pro organizaci vedení logu je použita symbolická vazba s názvem log, směřující na jinou službu, které bude přesměrován výstup. Pro zakázání automatického spouštění služby stačí v jejím adresáři vytvořit soubor s názvem "down", a pro ignorování služby je třeba přidat symbol "@" k názvu adresáře.
Autor projektu uvádí následující výhody Nitro ve srovnání s jinými init systémy:
- Všechna data jsou uchovávána v RAM, což usnadňuje práci v prostředích s diskovými oddíly v režimu pouze pro čtení.
- Architektura založená na zpracování událostí, která nepoužívá polling.
- Žádné operace alokace paměti během provozu (všechny buffery jsou alokovány při spuštění).
- Omezené využívání deskriptorů souborů během provozu.
- Dodáváno ve formě jednoho samostatného spustitelného souboru a utility pro správu systému.
- Nedostatek fází kompilace konfigurace — funkčnost služby určuje jednoduché skripty ve složce související se službou.
- Funkce restartování služeb po selhání.
- Existence mechanismu pro vedení logů, které mohou být zapnuty buď výchozím způsobem, nebo selektivně pro jednotlivé služby.
- Možnost sestavení řetězce zpracování logu, pokrývajícího více služeb.
- Funkčnost nezávisí na přesnosti nastavení systémových hodin.
- Podpora spuštění ve FreeBSD přes /etc/ttys.
- Možnost sestavení ve formě miniaturizovaného staticky zkompilovaného spustitelného souboru při použití musl libc.
Zdroj: opennet.ru
