Sistemul de inițializare Finit 4.0 este disponibil.

După aproape trei ani de dezvoltare, a fost publicată versiunea 4.0 a sistemului de inițializare Finit (Fast init), dezvoltat ca o alternativă simplă la SysV init și systemd. Proiectul se bazează pe cercetările realizate prin inginerie inversă a sistemului de inițializare fastinit, utilizat în firmware-ul Linux al netbook-urilor EeePC și remarcabil prin procesul său de încărcare foarte rapid. Sistemul este destinat în principal să asigure încărcarea sistemelor compacte și încorporate, dar poate fi folosit și în medii desktop și servere obișnuite. Exemple de scenarii de implementare sunt pregătite pentru Void Linux, Alpine Linux și Debian GNU/Linux. Codul proiectului este scris în limbajul C și este distribuit sub licența MIT.

Finit suportă nivelurile de execuție (runlevel) în stilul SysV init, monitorizarea funcționării proceselor de fundal (repornirea automată a serviciului în caz de eșec), execuția handler-ilor unice, pornește serviciile ținând cont de dependențe și condiții arbitrare, atașând handleri suplimentari pentru executarea înainte sau după rularea serviciului. De exemplu, poate fi configurat pentru a porni un serviciu doar după ce se obține acces la rețea sau după ce un alt serviciu, cum ar fi syslogd, este pornit. Limitele sunt aplicate folosind Cgroups v2.

Pentru extinderea funcționalității și adaptarea la nevoile proprii, pot fi utilizate pluginuri, pentru care este disponibil un sistem de hook-uri, permițând atașarea unui handler la diferite etape ale încărcării și execuției serviciilor, precum și hidratul la evenimente externe. De exemplu, au fost pregătite pluginuri pentru suportul D-Bus, ALSA, netlink, resolvconf, conectarea la cald a dispozitivelor, verificarea disponibilității și încărcarea modulelor kernel, gestionarea fișierelor PID și configurarea mediului pentru serverul X.

Suportă utilizarea scripturilor standard pentru pornirea serviciilor, create pentru SysV init (/etc/rc.d și /etc/init.d nu sunt utilizate, dar suportul pentru /etc/inittab poate fi implementat printr-un plugin), precum și a scripturilor rc.local, fișierelor cu variabile de mediu și setărilor de rețea din /etc/network/interfaces, similar cu Debian și BusyBox. Setările pot fi definite într-un singur fișier de configurare /etc/finit.conf sau distribuite pe mai multe fișiere din directorul /etc/finit.d.

Gestionarea se realizează prin instrumentele standard initctl și run-parts, care permit activarea și dezactivarea serviciilor legate de nivelurile de pornire, precum și lansarea selectivă a unor servicii. Finit include, de asemenea, o implementare încorporată a getty (managementul terminalului și al autentificării utilizatorilor), un watchdog pentru monitorizarea funcționării și un mod de recuperare după eșec cu sulogin încorporat pentru a lansa un shell de comandă izolat.

Sistemul de inițializare Finit 4.0 este disponibil.

Printre modificările adăugate în versiunea Finit 4.0 (versiunea 3.2 a fost sărită din cauza modificărilor care afectează compatibilitatea inversă):

  • Utilitarul separat reboot a fost înlocuit cu un link simbolic la initctl, asemănător utilitarelor halt, shutdown, poweroff și suspend.
  • A fost implementată o indicație a progresului în execuția operațiunilor.
  • Funcționarea comenzilor „inictl cond set|clear COND” a fost modificată pentru a lega acțiunile de diferite evenimente. Pentru identificarea serviciilor s-a folosit sintaxa în locul legării la căile .
  • Implementarea încorporată a fost eliminată. server inetd, în cazul în care acesta este necesar, poate fi înlocuit cu xinetd.
  • A fost adăugată suportul pentru cgroups v2 pentru a lansa servicii în grupuri separate cgroup.
  • A fost adăugat un mod de recuperare după eșec cu suslogin propriu.
  • A fost adăugată suportul pentru scripturile start/stop de la SysV init.
  • Au fost adăugați handleri pre:script și post:script, care permit specificarea propriilor acțiuni efectuate înainte sau la lansarea serviciului.
  • A fost adăugată suportul pentru env:file cu variabile de mediu.
  • A fost adăugată posibilitatea de a monitoriza fișiere PID arbitrare.
  • A fost adăugată posibilitatea de a lansa sarcini și servicii folosind căi relative.
  • A fost adăugată în initctl opțiunea „-b” pentru a executa acțiuni în modul non-interactiv (batch mode).
  • Watchdog-ul încorporat a fost înlocuit cu o variantă separată watchdogd.
  • A fost adăugat un plugin pentru încărcarea automată a modulelor nucleului pentru dispozitive conectate în timpul funcționării.
  • A fost adăugat un plugin pentru a gestiona /etc/modules-load.d/.
  • A fost adăugată suportul pentru repornirea automată a serviciilor după modificarea configurațiilor, permițând evitarea executării manuale a comenzii „initctl reload”. Este dezactivat în mod implicit și necesită recompilare cu „./configure --enable-auto-reload”.
  • A fost adăugată posibilitatea de a păstra jurnale ale operațiunilor care afectează securitatea, cum ar fi modificarea runlevel-ului, pornirea și oprirea serviciilor, și eșecurile serviciilor.
  • A fost îmbunătățit suportul pentru /etc/network/interfaces.

    Sursa: opennet.ro
Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster