Predstavljen je izdanje servisnog menadžera s6-rc 0.5.6.0, namijenjenog za upravljanje pokretanjem skripti inicijalizacije i servisa. Podržano je praćenje stabla zavisnosti i automatsko pokretanje ili zaustavljanje servisa kako bi se postiglo naznačeno stanje. Alat s6-rc može se koristiti kako u sistemima inicijalizacije, tako i za organizaciju pokretanja proizvoljnih servisa u vezi sa događajima koji odražavaju promjenu stanja sistema. Sistem podržava skripte inicijalizacije kompatibilne sa sysv-init, a može uvoziti informacije o zavisnostima iz sysv-rc ili OpenRC. Kod je napisan na jeziku C i distribuira se pod ISC licencom.
Servisni menadžer s6-rc uključuje skup alata za pokretanje i zaustavljanje dugotrajnih procesa (demonas) ili skripti inicijalizacije koje se odmah završavaju. Tokom rada osigurava se paralelno pokretanje nespojivih servisa i garantuje se ponovljiva sekvenca izvršavanja skripti pri različitim pokretanjima. Sve promjene stanja se obrađuju uzimajući u obzir zavisnosti, na primjer, prilikom pokretanja nekog servisa automatski će biti pokrenute potrebne zavisnosti za njegovo funkcionisanje, a pri zaustavljanju će se zaustaviti i zavisni servisi.
Za razliku od drugih servisnih menadžera, s6-rc podržava proaktivno (u offline režimu) konstruisanje grafa zavisnosti za postojeći skup servisa, što omogućava izvođenje resursno intenzivne analize zavisnosti odvojeno, a ne tokom pokretanja ili promjene stanja. Pri tome, sistem nije monolitan i podeljen je na niz odvojenih i zamenljivih modula, od kojih svaki u skladu sa filozofijom Unixa rešava samo određeni zadatak. Projekat s6-rc se pridržava filozofije minimalizma (ne sadrži ništa suvišno) i troši minimum resursa.
Umesto nivoa pokretanja (runlevel) u s6-rc se predlaže koncept skupova (bundles), koji omogućava grupisanje servisa prema proizvoljnim kriterijumima i rešenim zadacima. Za povećanje efikasnosti rada koristi se kompajlirana baza podataka zavisnosti, koja se stvara alatom s6-rc-compile na osnovu sadržaja direktorijuma sa fajlovima za pokretanje/zaustavljanje servisa. Za analizu i manipulaciju sa bazom podataka predloženi su alati s6-rc-db i s6-rc-update.
Istodobno su kreirane nove verzije pratećih paketa koji dopunjuju s6-rc:
- s6 2.13.2.0 — alati za praćenje rada procesa i upravljanje procesima (analog daemontools i runit). Podržavaju se mogućnosti kao što su ponovni start procesa nakon njihovog neuspelog završavanja, pokretanje obradnika (aktivacija servisa) prilikom pristupanja mrežnoj luci, beleženje događaja (zamena syslogd) i kontrolisano dodeljivanje dodatnih privilegija (analog sudo).
- s6-linux-init 1.1.3.0 — implementacija init-procesa za operacione sisteme zasnovane na Linux jezgru, korišćena za kreiranje inicijalizacionih sistema, u kojima se za upravljanje servisima i skriptama koriste paketi s6 i s6-rc.
- s6-networking 2.7.1.0 — set alata za kreiranje mrežnih servisa, sličan ucspi.
- s6-frontend — omotač za replikaciju funkcionalnosti daemontools i runit iznad s6.
- s6-portable-utils 2.3.1.0 — skup tipičnih Unix alata, poput cut, chmod, ls, sort i grep, optimizovanih za minimalnu potrošnju resursa i isporučenih pod ISC licencom.
- s6-linux-utils 2.6.3.0 — set Linux povezanih alata, kao što su chroot, freeramdisk, logwatch, mount i swapon.
- mdevd 0.1.7.0 — menadžer događaja (analog udevd), namenjen za obradu vrućeg povezivanja uređaja. Prema konfiguraciji, mdevd je kompatibilan sa mdev-om iz Busybox-a.
- bcnm 0.0.2.0 — mrežni konfigurator sa mogućnostima za podešavanje Wi-Fi na strani klijenta.
- execline 2.9.7.0 — jezik za pisanje skripti.
- skalibs 2.14.4.0 — biblioteka za kreiranje sigurnih sistemskih aplikacija na C jeziku.
- s6-dns 2.4.1.0 — set klijentskih biblioteka i alata koji zamenjuju standardne DNS alate iz BIND i djbdns.
- dnsfunnel 0.0.3.0 — preusmerava lokalne DNS upite na spoljašnje server (DNS forwarder).
- shibari 0.0.2.0 — jednostavni DNS server.
- tipidee 0.0.6.0 — HTTP server sa podrškom za HTTP/1.1.
U novim verzijama u sve pakete dodata je podrška za pkg-config. U biblioteci skalibs implementirane su varijante funkcija ulaza/izlaza čije vreme rada se može ograničiti vremenskim ograničenjem. U mdevd je dodana opcija „-I“ za postavljanje imena grupe netlink za prijem zahteva, podrazumevana veličina bafera povećana je na 1 MB. U tipideed omogućena je mogućnost strimovanja izlaza CGI skripti, dodata je podrška za metode PUT, DELETE i PATCH, i implementirana je direktiva autochunk za chunked kodiranje prenesenih podataka.
Izvor: opennet.ru
