Avaldati Nitro projekti esimene avalik versioon, mis arendab minimalistlikku käivitusriistade süsteemi protsesside täitmise kontrollimise funktsioonidega. Projekti arendab Leah Neukirchen, üks pakette hooldajatest Void Linuxi jaotises. Kood on kirjutatud C keeles ja on litsentseeritud 0BSD all.
Nitro saab kasutada nii init-protsessina (pid 1) kui ka privileegivaba protsessina, mis kontrollib rakenduste katkematut toimimist kasutajaruumis ja käivitab ülesandeid uuesti tõrke korral. Toetatakse töötamist Linuxis ja FreeBSD-s, võib olla kasutusel Musli põhiste standardsete C raamistike keskkondades. Kasutusaladeks on mainitud sisseehitatud süsteeme, ram-diskide pilte (initramfs), konteinerid (Docker/Podman/LXC/Kubernetes), samuti tööjaamad ja serverite süsteemid. Teenuste haldamiseks ja init-protsessiga suhtlemiseks on saadaval käsurea tööriist nitroctl.
Nitros kasutatakse komposiit-skripti asemel mudelit, kus iga funktsioon on eraldi skriptina. Iga teenuse jaoks luuakse hierarhias /etc/nitro alamkaust, kuhu võivad asuda järgmised skriptid: setup - sisaldab käske, mis täidetakse teenuse käivitamisest enne; run - määratleb teenuse käivitusskeemi; finish - sisaldab käske, mis täidetakse teenuse lõpetamisel. Logi pidamise korraldamiseks kasutatakse sümboolset linki nimega log, mis osutab teisele teenusele, kuhu suunatakse väljund. Teenuse automaatkäivitamise keelamiseks piisab, kui luua tema kataloogis fail nimega "down", ja teenuse ignoreerimiseks tuleb lisada kataloogi nimele sümbol "@".
Projekti autor toob esile järgmised Nitro eelised võrreldes teiste käivitusriistade süsteemidega:
- Kogu seisund salvestatakse RAM-i, mis lihtsustab töötamist keskkondades, kus kettasektsioonid on vaid lugemisrežiimis.
- Sündmustepõhine arhitektuur, mis ei kasuta pollimist.
- Töötamise ajal ei toimu mälu eraldamise operatsioone (kõik puhvrid eraldatakse käivitamisel).
- Faili deskriptorite piiratud kasutamine töötamise ajal.
- Tarnimine ühtse iseseisva täidesaatva faili ja süsteemi haldamise tööriistade kujul.
- Seerakkuse puudumine konfiguratsiooni kompileerimise etappides — teenuse tööd määravad lihtsad skriptid teenusega seotud kataloogis.
- Teenuste taaskäivitamise funktsiooni olemasolu pärast rikke.
- Logimise mehhanismi olemasolu, mis võib olla sisse lülitatud nii vaike seadistuses kui ka valikuliselt üksikute teenuste jaoks.
- Võime logide töötlemise ahela ehitamiseks, mis katab mitmeid teenuseid.
- Töö ei sõltu süsteemi kellade täpsusest.
- Tugi FreeBSD käivitamiseks läbi /etc/ttys.
- Võime kokku panna miniatuurse staatiliselt kompileeritud käivitatava faili kasutades musl libc.
Allikas: opennet.ru
