Il sistema di inizializzazione Finit 4.0 è disponibile

Dopo circa tre anni di sviluppo, è stato pubblicato il rilascio del sistema di inizializzazione Finit 4.0 (Fast init), sviluppato come una semplice alternativa a SysV init e systemd. Il progetto è basato su risultati ottenuti mediante reverse engineering del sistema di inizializzazione fastinit, utilizzato nel firmware Linux dei netbook EeePC e noto per il suo processo di avvio molto rapido. Il sistema è principalmente destinato a garantire l'avvio di sistemi compatti e incorporati, ma può essere utilizzato anche in ambienti desktop e server convenzionali. Esempi di scenari per l'implementazione sono stati preparati per Void Linux, Alpine Linux e Debian GNU/Linux. Il codice del progetto è scritto in linguaggio C e distribuito con licenza MIT.

Finit supporta i livelli di esecuzione (runlevel) in stile SysV init, il monitoraggio della disponibilità dei processi in background (riavvio automatico del servizio in caso di fallimento), l'esecuzione di gestori monouso, l'avvio di servizi tenendo conto delle dipendenze e di condizioni arbitrarie, l'aggiunta di ulteriori gestori da eseguire prima o dopo l'esecuzione del servizio. Ad esempio, è possibile configurare l'avvio di un servizio solo dopo che si è stabilito l'accesso alla rete o dopo l'avvio di un altro servizio, come syslogd. I limiti sono definiti utilizzando Cgroups v2.

Per estendere le funzionalità e adattarsi alle proprie esigenze, possono essere utilizzati plugin, per i quali è fornito un sistema di hook che consente di collegare un gestore a diverse fasi di avvio e esecuzione dei servizi, oltre a garantire il legame con eventi esterni. Ad esempio, sono stati preparati plugin per supportare D-Bus, ALSA, netlink, resolvconf, il collegamento a caldo dei dispositivi, il controllo della disponibilità e il caricamento dei moduli del kernel, la gestione dei file PID e la configurazione dell'ambiente per il server X.

È supportato l'uso di script standard per avviare servizi, creati per SysV init (/etc/rc.d e /etc/init.d non vengono utilizzati, ma il supporto per /etc/inittab può essere realizzato tramite un plugin), così come script rc.local, file con variabili ambientali e impostazioni di rete /etc/network/interfaces, come in Debian e BusyBox. Le impostazioni possono essere definite in un unico file di configurazione /etc/finit.conf oppure distribuite su più file nella directory /etc/finit.d.

La gestione avviene tramite gli strumenti standard initctl e run-parts, che consentono di attivare e disattivare i servizi in base ai livelli di avvio, nonché di avviare selettivamente alcuni servizi. Finit include anche un'implementazione integrata di getty (gestione del terminale e accesso degli utenti), un watchdog per monitorare la funzionalità e una modalità di ripristino dopo un guasto con sulogin integrato per avviare una shell di comando isolata.

Il sistema di inizializzazione Finit 4.0 è disponibile

Tra le modifiche introdotte nella versione Finit 4.0 (la versione 3.2 è stata saltata a causa di modifiche che violano la retrocompatibilità):

  • L'utility reboot è stata sostituita da un collegamento simbolico a initctl, seguendo l'esempio delle utility halt, shutdown, poweroff e suspend.
  • Implementata l'indicazione del progresso durante l'esecuzione delle operazioni.
  • Modificato il funzionamento dei comandi «inictl cond set|clear COND» per collegare le azioni a vari eventi. Per l'identificazione dei servizi è stato utilizzato il formato invece del collegamento a percorsi .
  • Rimossa l'implementazione integrata server inetd, in caso di necessità è possibile installare xinetd.
  • Aggiunta la supporto per cgroups v2 per eseguire servizi in cgroup separati.
  • Aggiunta una modalità di ripristino dopo un guasto con il proprio suslogin.
  • Aggiunto il supporto per gli script start/stop di SysV init.
  • Aggiunti i gestori pre:script e post:script, che consentono di specificare le proprie azioni da eseguire prima o durante l'avvio del servizio.
  • Aggiunto il supporto per env:file con variabili di ambiente.
  • Aggiunta la possibilità di monitorare file PID arbitrari.
  • Aggiunta la possibilità di eseguire attività e servizi utilizzando percorsi relativi.
  • In initctl è stata aggiunta l'opzione «-b» per eseguire azioni in modalità non interattiva (batch mode).
  • Il watchdog integrato è stato sostituito da una variante separata watchdogd.
  • Aggiunto un plugin per il caricamento automatico dei moduli del kernel per i dispositivi collegati durante il funzionamento.
  • Aggiunto un plugin per la gestione di /etc/modules-load.d/.
  • Aggiunto il supporto per il riavvio automatico dei servizi dopo la modifica delle impostazioni, che consente di evitare l'esecuzione manuale del comando «initctl reload». Di default è disattivato e richiede una ricompilazione con «./configure —enable-auto-reload».
  • Aggiunta la possibilità di tenere un registro delle operazioni che influenzano la sicurezza, come la modifica del runlevel, l'avvio e l'arresto dei servizi, e i guasti dei servizi.
  • Migliorato il supporto per /etc/network/interfaces.

    Fonte: opennet.ru
Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster