Systemd 262: rivoluziona sicurezza, container e gestione dei servizi nelle distribuzioni GNU/Linux

Systemd è la suite di base che, dal 2010, gestisce l’avvio e i servizi nella stragrande maggioranza delle distribuzioni GNU/Linux. Nata come alternativa al tradizionale init System V, il progetto è stato avviato da Lennart Poettering e Kay Sievers sotto l’egida di Red Hat. L’applicazione è oggi sviluppata da una comunità di centinaia di collaboratori ed è adottata come sistema di init (inizializzazione) e gestore di servizi predefinito da Fedora, Debian, Ubuntu, openSUSE, Arch Linux e molte altre distribuzioni GNU/Linux. Il suo compito è duplice: fare da PID 1, cioè il primo processo avviato dal kernel Linux, e supervisionare demoni, dispositivi, montaggi, rete e diari di sistema.
La licenza è LGPL-2.1-or-later (GNU Lesser General Public License) per la maggior parte dei componenti, con alcune parti distribuite sotto GPL-2.0-or-later: si tratta quindi di software libero e open source, sviluppato pubblicamente nel repository software ufficiale su GitHub. L’applicazione funziona esclusivamente su sistemi GNU/Linux: non esiste una versione per Windows o macOS, poiché systemd dipende in modo strutturale da interfacce specifiche del kernel Linux, come i cgroup (gruppi di controllo, il meccanismo con cui il kernel Linux limita e contabilizza le risorse dei processi).
Il destinatario naturale dell’applicazione non è l’utente privato comune, che la riceve indirettamente attraverso la propria distribuzione, bensì gli amministratori di sistema, i manutentori delle distribuzioni e gli sviluppatori che lavorano su infrastrutture server, container (contenitori, cioè ambienti isolati che eseguono una o più applicazioni condividendo il kernel del sistema ospitante) e sistemi embedded.
La nuova versione stabile systemd 262 è stata rilasciata il 22 settembre 2026. La versione stabile precedente era systemd 261, rilasciata il 19 giugno 2026, ancora mantenuta con versioni correttive (la serie 261.x ha ricevuto patch fino all’autunno, come la 261.3). La versione 262 rappresenta il 3° rilascio principale dell’anno.
Novità in systemd 262
Systemd 262 è considerata uno dei rilasci più ambiziosi nella storia dell’applicazione con centinaia di modifiche apportate da circa 250 collaboratori. I temi dominanti sono 3: la sicurezza radicata nell’hardware, il supporto agli aggiornamenti live del kernel Linux e la migrazione completa alla comunicazione interna basata su Varlink. Di seguito vengono illustrate le novità principali e poi tutte le altre, raggruppate per area.
Build statiche di PID 1 per i container minimi
Systemd può ora essere compilato come un unico eseguibile statico che unisce PID 1 e l’esecutore dei servizi, pensato per container di dimensioni ridottissime. Una build di questo tipo non utilizza dlopen() (il caricamento dinamico delle librerie a runtime) e sostituisce le tradizionali funzioni di consultazione degli utenti con una lettura semplificata dei file passwd e group, evitando così il sottosistema NSS (Name Service Switch, il meccanismo con cui il sistema risolve nomi di utenti e computer). Inoltre, il gestore incorpora un insieme di base di file di unità: se i file sul disco non sono leggibili, per esempio in un’immagine container essenziale, il sistema può comunque avviarsi e spegnersi correttamente.
Aggiornamenti live del kernel Linux e integrazione LUO
Systemd 262 introduce il supporto di prima classe a LUO (Live Update Orchestrator), l’orchestratore di aggiornamento live del kernel Linux. In pratica, un servizio può mantenere i propri descrittori di file (i riferimenti numerici con cui un processo accede a file e connessioni di rete) attraverso un riavvio eseguito con kexec, una tecnica che sostituisce il kernel Linux in esecuzione senza passare dalla fase di accensione del firmware. Questo consente di aggiornare il kernel Linux senza interrompere i servizi in esecuzione, azzerando i tempi di fermo. Le sessioni utente possono anch’esse conservare il proprio stato attraverso tali riavvii tramite il nuovo flag FileDescriptorStorePreserve=yes. La nuova opzione LUOSession= delle unità di servizio crea sessioni LUO e le passa attraverso l’interfaccia dei descrittori di file, mentre PID 1 espone la nuova proprietà D-Bus KExecCount che conta i riavvii tramite kexec dall’ultimo avvio reale.
Sicurezza: TPM, Argon2id e credenziali ancorate al silicio
Il sottosistema TPM (Trusted Platform Module, il chip di sicurezza presente su molte schede madri che archivia chiavi crittografiche in modo protetto) è stato oggetto di una revisione profonda:
- Le credenziali sigillate nel TPM sono ora ancorate alla SRK (Storage Root Key, la chiave radice di archiviazione del chip). Questo impedisce attacchi di tipo “interposer”, in cui un dispositivo malevolo si frappone tra il sistema e il TPM per intercettare le credenziali decifrate.
- La registrazione di un PIN per TPM2 può ora irrobustire la derivazione delle chiavi con Argon2id, una funzione di derivazione di chiavi resistente agli attacchi con hardware specializzato: un TPM compromesso da solo non basta più a recuperare la chiave del volume. Sono disponibili opzioni per regolare memoria, iterazioni e parallelismo di Argon2.
systemd-cryptenrollguadagna una procedura guidata opzionale al primo avvio per aggiungere meccanismi di sblocco aggiuntivi nei sistemi che si affidano alla cifratura automatica basata su TPM, oltre alle nuove opzioni--unlock-emptye--unlock-headlessper gli ambienti automatizzati o senza interfaccia grafica (i cosiddetti ambienti “headless”).- La selezione dei banchi PCR (Platform Configuration Registers, i registri del TPM che memorizzano lo stato misurato dell’avvio) considera ora anche SHA384 e SHA512, oltre a SHA256 e SHA1.
Virtualizzazione riservata e container
systemd-vmspawn, lo strumento per generare macchine virtuali, supporta ora Intel TDX tramite l’opzione--coco=, affiancandosi al già supportato AMD SEV-SNP. Si tratta di tecnologie di computing riservato (confidential computing): la memoria della macchina virtuale è cifrata e isolata, in modo che nemmeno l’host possa leggerla.- Con
--coco=sev-snp, le credenziali vengono consegnate all’ospite aggiungendo un archivio cpio all’initrd (il filesystem iniziale caricato in memoria all’avvio) sotto/.extra/system_credentials/, così da rientrare nella misurazione di lancio. systemd-nspawninizializza oranet.ipv4.ping_group_rangein base agli intervalli di GID mappati nel container, consentendo agli utenti senza privilegi di creare socket ICMP (i socket usati dai comandi di tipo “ping”).
Gestione dei servizi e del gestore
- Le unità di servizio guadagnano
RestartRandomizedDelaySec=, un ritardo aggiuntivo distribuito in modo casuale sui riavvii automatici: quando molti servizi falliscono insieme, non ripartono tutti nello stesso istante, evitando le cosiddette “tempeste di riavvii”. - Le unità di tipo slice (fetta, cioè raggruppamenti gerarchici di risorse) guadagnano
ActivatingConcurrencyMax=per limitare quante unità possono attivarsi contemporaneamente, accodando le altre fino a liberazione degli slot. - La nuova funzione D-Bus
EnqueueUnitJobMany()permette di accodare in 1 sola transazione operazioni di avvio, arresto, riavvio e ricaricamento per più unità, rispettando le dipendenze di ordinamento. NUMAPolicy=accetta i nuovi valoripreferred-manyeweighted-interleaveper la gestione della memoria nei sistemi multi-socket (NUMA: Non-Uniform Memory Access, architettura in cui la velocità di accesso alla memoria dipende dalla posizione fisica).SecureBits=riconosce i nuovi valorino-cap-ambient-raise,exec-restrict-file,exec-deny-interactivee le relative varianti-locked.- I timer di limitazione della frequenza (rate limit) ora usano
CLOCK_BOOTTIME, quindi anche il tempo trascorso in sospensione (suspend) conta ai fini del limite.
Giornale di sistema più resiliente
I lettori del giornale (journal, il registro strutturato di eventi tenuto da journald) tentano ora di recuperare le voci integre dai file di giornale attivi il cui header o la coda sono stati troncati da uno spegnimento anomalo durante scritture intense, invece di scartare l’intero file. Inoltre il supporto alla firma (sealing) del giornale è passato da libgcrypt a OpenSSL: un file firmato resta leggibile anche dove il supporto alla verifica non è disponibile, nel qual caso la verifica viene semplicemente saltata. Il metodo Varlink GetEntries guadagna una modalità “follow” che trasmette in continuazione le nuove voci, come journalctl -f.
Rete con systemd-networkd
- Le sezioni
[Match]dei file.link,.networke.netdevaccettanoMachineTag=, consentendo di condizionare la configurazione di rete alla presenza di etichette macchina (stringhe che identificano il computer). - L’impostazione
IPv6ProxyNDPAddress=è stata rinominata inProxyNeighbor=e ora gestisce sia indirizzi IPv4 sia IPv6 nella tabella dei vicini proxy. networkctl reloadguadagna--no-reconfigureper ricaricare i file di configurazione senza riconfigurare subito le interfacce esistenti.- Le impostazioni di dispositivi di rete sovrapposti (VLAN, VXLAN, MACsec, tunnel e simili) accettano ora elenchi di nomi separati da spazi.
Systemd-homed, coredump e udev
- Le cartelle home cifrate di nuova creazione con fscrypt usano ora i criteri fscrypt v2: la chiave principale risiede nel portachiavi del filesystem ed è visibile attraverso gli spazi dei nomi di montaggio (namespace, ovvero viste isolate delle risorse del kernel) e nei container. Le cartelle home esistenti in formato v1 restano supportate, ma non esiste una conversione automatica.
- La rotazione della password di una cartella home su LUKS aggiunge tutti i nuovi slot chiave prima di rimuovere i vecchi: in caso di errore non si rischia più il blocco totale dell’accesso.
systemd-coredumpsupporta il protocollo socket del kernel Linux introdotto nella versione 6.17 per la registrazione dei crash (i coredump, cioè le istantanee di memoria di un processo al momento della terminazione anomala); i kernel più vecchi continuano a usare il percorso tradizionale.systemd-udevdesegue ora i processi di lavoro in un cgroup “workers” separato, così da poterli terminare tutti atomicamente concgroup.killsui kernel che lo supportano.
systemd-sysupdate e installazione del sistema
systemd-sysupdate, il componente per gli aggiornamenti atomici del sistema, mantiene ora un database persistente dei file installati e può rimuovere i file non più previsti dalla configurazione corrente tramite una nuova operazione di pulizia. Le unità periodiche systemd-sysupdate.service e systemd-sysupdate.timer sono state rinominate in systemd-sysupdate-update.service e systemd-sysupdate-update.timer, con collegamenti simbolici di compatibilità. Il meccanismo di suggerimento può inoltre raccomandare o attivare automaticamente componenti e funzionalità in base ad architettura, ambiente di virtualizzazione, proprietà del firmware ed etichette macchina.
Avvio: systemd-boot, bootctl e UKI
- La gestione del seme casuale (random seed) rispetta ora l’attributo di sola lettura della partizione di sistema EFI: se il file non può essere ruotato, il seme non viene riutilizzato né accreditato al pool di entropia del kernel.
bootctlguadagna il nuovo verbolink-auto, che collega automaticamente le immagini UKI (Unified Kernel Image, l’immagine eseguibile che unisce kernel Linux, initrd e metadati di avvio) trovate nelle cartelle standard.- Le definizioni NvPCR devono ora essere fornite dentro l’UKI e possono contare su criteri PCR firmati legati alla fase di initrd, generabili con l’opzione
--sign-initrd-pcrsdi ukify.
Altre novità
- È stato aggiunto il supporto a OpenSSL 4 e a
run0, l’alternativa a sudo, sono state aggiunte opzioni compatibili con i comportamenti più familiari del noto strumento. systemd.firstboot=guadagna una modalità headless per le installazioni presenziali.- La nuova opzione sperimentale
--introspect-cliespone i metadati dei comandi in formato JSON leggibile dalle macchine, evitando agli script di analizzare l’output di--help. - Il protocollo Varlink diventa il meccanismo di comunicazione principale in quasi tutti i componenti: il socket legacy di controllo di udev è stato rimosso e
udevadmusa ormai solo Varlink (un protocollo IPC, Inter-Process Communication, basato su JSON per la comunicazione tra processi). hostnamectlgestisce le etichette macchina con argomenti+TAGe-TAGe il nuovo carattere jolly$nel nome host permette di generare nomi memorabili ma stabili da elenchi di parole.- L’integrazione con dm-clone e il supporto all’esecuzione da filesystem overlayfs (un filesystem che sovrappone livelli di lettura e scrittura) con dati protetti da dm-verity (il meccanismo che verifica l’integrità crittografica dei blocchi del disco) completano il quadro.
Modifiche incompatibili e deprecazioni
Come ogni versione principale, systemd 262 introduce modifiche che possono rompere script e configurazioni esistenti. Segnali principali: journalctl rifiuta ora -F/--field combinato con filtri (in passato i filtri venivano ignorati in silenzio); le opzioni di build Meson -Dlibiptc=, -Dlibidn=, -Drc-local= e le opzioni sysvinit sono state rimosse; i servizi Type=notify-reload devono gestire ReloadSignal= prima di inviare READY=1, altrimenti non si avviano; la variabile EFI legacy FactoryReset di systemd-repart non è più onorata; l’API D-Bus sperimentale di systemd-sysupdated verrà rimossa nella versione 263 in favore di Varlink. Gli amministratori sono invitati a leggere integralmente il changelog (registro delle modifiche) prima dell’aggiornamento.
Download e Riferimenti
Systemd non viene in genere installato manualmente dall’utente finale: arriva come pacchetto software ufficiale delle distribuzioni GNU/Linux. systemd 262 sarà disponibile nei repository software delle distribuzioni “rolling release” come Arch Linux e openSUSE Tumbleweed nelle prossime settimane, e nelle versioni future di Fedora, Debian e Ubuntu.
Chi desidera provarlo può compilare il codice sorgente dal repository software ufficiale su GitHub, I tag del codice sorgente sono scaricabili dalla pagina dei rilasci ufficiali.
Riferimenti Ufficiali
Per tutti i dettagli tecnici della nuova versione systemd 262 si rimanda all’annuncio ufficiale nel changelog (registro delle modifiche) completo della versione 262 e alla documentazione ufficiale del progetto, che include guide, pagine di manuale e istruzioni per la compilazione e per lo sviluppo.
Fonte: https://systemd.io/
Fonte: https://it.wikipedia.org/wiki/Systemd
Fonte: https://github.com/systemd/systemd/releases/tag/v262
Fonte: https://www.phoronix.com/news/systemd-262
Fonte: https://linuxiac.com/systemd-262-released-with-static-pid-1-builds/
Se vuoi sostenermi, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che ho nel mio sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul mio negozio online, quelle mancanti possono essere comunque richieste.
Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
























