První vydání minimalistického inicializačního systému Nitro

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

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster