Første udgave af det minimalistiske initialiseringssystem Nitro

Den første offentlige udgave af Nitro-projektet er blevet lanceret, som udvikler et minimalistisk init-system med funktioner til overvågning af procesudførelse. Projektet ledes af Leah Neukirchen, en af pakkelederne i Void Linux-distributionen. Koden er skrevet i C og distribueres under 0BSD-licensen.

Nitro kan anvendes både som init-proces (pid 1) og som en ikke-privilegeret proces, der overvåger kontinuerlig udførelse af applikationer i brugerrummet og genstarter opgaver i tilfælde af fejl. Det understøtter Drift i Linux og FreeBSD, og kan anvendes i miljøer baseret på standard C-biblioteket Musl. Anvendelsesområder nævnes som indlejrede systemer, ramdisk billeder (initramfs), containere (Docker/Podman/LXC/Kubernetes), samt arbejdsstationer og serversystemer. Der leveres et kommandolinjeværktøj, nitroctl, til styring af tjenester og interaktion med init-processen.

I stedet for komplekse init-scripts anvender Nitro en model baseret på at flytte hver funktion til et separat script. For hver tjeneste i hierarkiet /etc/nitro oprettes en undermappe, hvor følgende scripts kan placeres: setup – indeholder kommandoer, der udføres før tjenestens opstart; run – definerer scenariet for tjenestens opstart; finish – inkluderer kommandoer, der udføres efter tjenestens afslutning. Til logføring anvendes en symbolsk link med navnet log, der peger på en anden tjeneste, hvortil output vil blive omdirigeret. For at deaktivere autostart af en tjeneste er det tilstrækkeligt at oprette en fil med navnet "down" i dens mappe, og for at ignorere tjenesten skal symbolet "@" tilføjes til mappenavnet.

Projektets forfatter nævner følgende fordele ved Nitro sammenlignet med andre init-systemer:

  • Alle tilstande gemmes i RAM, hvilket forenkler arbejdet i miljøer med diskpartitioner i skrivebeskyttet tilstand.
  • Arkitektur baseret på begivenhedshåndtering uden brug af polling.
  • Ingen hukommelsesallokeringer under drift (alle buffere allokeres ved opstart).
  • Begrænset brug af filbeskrivelser under drift.
  • Leveres som en enkelt selvstændig eksekverbar fil og et værktøj til systemadministration.
  • Fraværet af kompileringstrin i konfigurationen – tjenestens funktion bestemmes af enkle scripts i den relaterede mappe.
  • Tilstedeværelsen af en funktion til genstart af tjenester efter et nedbrud.
  • Tilstedeværelsen af en logføringsmekanisme, der kan aktiveres både som standard og selektivt for enkelte tjenester.
  • Muligheden for at opbygge en logbehandlingskæde, der dækker flere tjenester.
  • Driften er uafhængig af nøjagtigheden af systemurens indstilling.
  • Understøttelse af start i FreeBSD via /etc/ttys.
  • Muligheden for at bygge i form af en miniaturiseret statisk kompileret eksekverbar fil ved brug af musl libc.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster