Publikuar episodi i parë publik i projektit Nitro, që zhvillon një sistem minimalistik të inicializimit me funksione për kontrollin e ekzekutimit të proceseve. Projekti zhvillohet nga Leah Neukirchen, një nga mbështetësit e paketave në distribucionin Void Linux. Kodi është shkruar në gjuhën C dhe shpërndahet nën licencën 0BSD.
Nitro mund të përdoret si proces inicial (pid 1), ashtu edhe si një proces pa privilegje, që kontrollon ekzekutimin e pandërprerë të aplikacioneve në hapësirën e përdoruesit dhe rikuperon detyrat në rast dështimesh. Mbështetet përdorimi në Linux dhe FreeBSD, dhe është e mundur të përdoret në mjedise të bazuara në bibliotekën standarde të C-së Musl. Si fusha përdorimi përmenden sistemet e integruara, imazhet e memorjes RAM (initramfs), kontejnerët (Docker/Podman/LXC/Kubernetes), si dhe stacionet dhe sistemet server. Për menaxhimin e shërbimeve dhe ndërveprimin me procesin init ofrohet pajisja e komandës nitroctl.
NĂ« vend tĂ« skriptave tĂ« pĂ«rbĂ«rĂ« dhe inicionit, Nitro pĂ«rdor njĂ« model qĂ« bazohet nĂ« nxjerrjen e çdo funksioni nĂ« njĂ« skript tĂ« veçantĂ«. PĂ«r secilĂ«n shĂ«rbim nĂ« hierarkinĂ« "/etc/nitro" krijohet njĂ« nĂ«n-katalog, nĂ« tĂ« cilin mund tĂ« vendosen skriptet e mĂ«poshtme: setup â pĂ«rmban komandat qĂ« ekzekutohen para nisjes sĂ« shĂ«rbimit; run â pĂ«rcakton skenarin e nisjes sĂ« shĂ«rbimit; finish â pĂ«rfshin komandat qĂ« ekzekutohen pas pĂ«rfundimit tĂ« shĂ«rbimit. PĂ«r organizimin e regjistrimeve, aplikohet njĂ« lidhje simbolike me emrin log, qĂ« tregon nĂ« njĂ« shĂ«rbim tjetĂ«r, ku do tĂ« redirektohet dalja. PĂ«r tĂ« çaktivizuar auto-nisjen e shĂ«rbimit, mjafton tĂ« krijoni njĂ« skedar me emrin "down" nĂ« katalogun e tij, dhe pĂ«r tĂ« injoruar shĂ«rbimin duhet tĂ« shtoni simbolin "@" nĂ« emrin e katalogut.
Autori i projektit thekson përfitimet e mëposhtme të Nitro në krahasim me sistemet e tjera të inicionit:
- E gjithë gjendja ruhet në RAM, duke lehtësuar punën në mjediset me partitë e diskut se janë vetëm për lexim.
- Arkitektura që mbështet përpunimin e ngjarjeve, pa përdorimin e polling.
- Mungesa e operacioneve të alokimit të memories gjatë punës (të gjitha buferat alokohen gjatë nisjes).
- Përdorimi i kufizuar idescriptorëve të skedarëve gjatë funksionimit.
- Dërgesa në formën e një skedari ekzekutiv të vetë-mjaftueshëm dhe një utilitari për menaxhimin e sistemit.
- Mungesa e fazave të kompilimit të konfigurimit - funksionimi i shërbimit përcaktohet nga skriptet e thjeshta në katalogun lidhur me shërbimin.
- Prania e funksionit të riluajtjes së shërbimeve pas një dështimi.
- Prania e mekanizmit për mbajtjen e logeve, të cilat mund të aktivizohen si për parazgjedhje, ashtu edhe në mënyrë selektive për shërbime të veçanta.
- Mundësia për ndërtimin e një zinxhiri për përpunimin e logeve, që mbulon disa shërbime.
- Funksionimi nuk varet nga saktësia e caktimit të orëve sistemike.
- Përkrahja e aktivizimit në FreeBSD përmes /etc/ttys.
- Mundësia për ndërtimin në formën e një skedari ekzekutiv të miniaturizuar të statikisht të kompiluar, duke përdorur musl libc.
Burimi: opennet.ru
