Dopo tre mesi di sviluppo rilascio del gestore di sistema .
Variazioni principali:
- Aggiunta del supporto per il controller delle risorse cpuset basato su cgroups v2, che fornisce un meccanismo per associare i processi a specifici CPU (opzione "AllowedCPUs") e nodi di memoria NUMA (opzione "AllowedMemoryNodes");
- Aggiunto il supporto per il caricamento delle impostazioni dalla variabile EFI SystemdOptions per la configurazione di systemd, che consente di configurare il comportamento di systemd in situazioni in cui è problematico modificare i parametri della riga di comando del kernel e la configurazione da disco viene letta troppo tardi (ad esempio, quando è necessario configurare opzioni relative alla gerarchia cgroup). Per impostare la variabile in EFI, è possibile utilizzare il comando 'bootctl systemd-efi-options';
- Nei unitè è stato aggiunto il supporto per il caricamento delle impostazioni dalle directory "{unit_type}.d/", collegate ai tipi di unità (ad esempio, "service.d/"), che possono essere utilizzate per aggiungere impostazioni che coprono tutti i file di unità di quel tipo;
- Per le unità di servizio è stata aggiunta una nuova modalità di isolamento sandbox ProtectKernelLogs, che consente di vietare l'accesso del programma al buffer di log del kernel, accessibile tramite la chiamata di sistema syslog (non confondere con l'API omonima fornita in libc). In caso di attivazione della modalità, l'accesso dell'applicazione a /proc/kmsg, /dev/kmsg e CAP_SYSLOG sarà bloccato;
- Per le unità è stata proposta l'impostazione RestartKillSignal, che consente di sovrascrivere il numero del segnale utilizzato per terminare il processo durante il riavvio delle attività (è possibile modificare il comportamento della fermata del processo nella fase di preparazione al riavvio);
- Il comando "systemctl clean" è stato adattato per l'applicazione con unità di socket, montaggio e swap (socket, mount, swap);
- Nella fase iniziale di avvio sono state disattivate le restrizioni sull'intensità delle uscite del kernel tramite la chiamata printk, il che consente di accumulare log più completi sul processo di avvio nella fase in cui l'archiviazione dei log non è ancora collegata (il log viene accumulato nel buffer circolare del kernel). L'impostazione dei limiti per printk dalla riga di comando del kernel ha una priorità maggiore e consente di sovrascrivere il comportamento di systemd. I programmi di systemd che inviano direttamente il log a /dev/kmsg (questo viene fatto solo nella fase iniziale di avvio) utilizzano restrizioni interne separate per evitare di riempire il buffer;
- Nell'utility systemctl è stata aggiunta la comando 'stop —job-mode=triggering', che consente di arrestare sia l'unità specificata nella riga di comando che tutte le unità che possono attivarla;
- Le informazioni sullo stato dell'unità ora comprendono dati sulle unità chiamanti e chiamate;
- È stata fornita la possibilità di utilizzare la configurazione ‘RuntimeMaxSec’ nelle unità di scope (in precedenza applicata solo alle unità di servizio). Ad esempio, ‘RuntimeMaxSec’ può ora essere utilizzata per limitare il tempo delle sessioni PAM tramite la creazione di un'unità di scope
per l'account utente. Il vincolo temporale può essere impostato anche tramite l'opzione systemd.runtime_max_sec nei parametri del modulo PAM pam_systemd; - È stato aggiunto un nuovo gruppo di chiamate di sistema ‘@pkey’, che semplifica l'aggiunta alle liste bianche delle chiamate di sistema legate alla protezione della memoria durante il confinamento di contenitori e servizi;
- Nell'utility systemd-tmpfiles è stato aggiunto il flag ‘w+’ per la scrittura in modalità di completamento file;
- Nell'output di systemd-analyze sono state aggiunte informazioni sulla conformità della configurazione della memoria del kernel con le impostazioni di systemd (ad esempio, se un programma di terze parti ha modificato i parametri del kernel);
- In systemd-analyze è stata aggiunta l'opzione ‘—base-time’, che consente di calcolare i dati del calendario rispetto all'ora specificata in tale opzione, anziché all'ora di sistema corrente;
- Nell'‘journalctl —update-catalog’ è stata garantita la coerenza dell'ordine degli elementi nell'output (utile per l'organizzazione di build ripetibili);
- È stata aggiunta la possibilità di specificare un valore di default per la configurazione ‘WatchdogSec’, utilizzata nei servizi systemd. Durante la compilazione, il valore di base può essere definito tramite l'opzione ‘-Dservice-watchdog’ (se viene impostato un valore vuoto, il watchdog sarà disattivato);
- È stata aggiunta un'opzione di compilazione ‘-Duser-path’ per sovrascrivere il valore di $PATH;
- Nell'utility systemd-id128 è stata aggiunta l'opzione ‘-u’ (‘—uuid’) per l'output di identificatori a 128 bit in UUID (rappresentazione canonica di UUID);
- Per la compilazione è ora richiesta libcryptsetup almeno nella versione 2.0.1.
Modifiche relative alla configurazione di rete:
- In systemd-networkd è stato aggiunto il supporto per la riconfigurazione del link in tempo reale, per il quale sono stati aggiunti i comandi ‘reload’ e ‘reconfigure DEVICE…’ in networkctl per ricaricare le impostazioni e riconfigurare i dispositivi;
- In systemd-networkd è stata interrotta la creazione di rotte predefinite per i collegamenti locali IPv4 con indirizzi intranet 169.254.0.0/16 (). In precedenza, la creazione automatica di percorsi predefiniti per collegamenti simili portava a comportamenti imprevisti e problemi di routing in alcuni casi. Per ripristinare il comportamento precedente, utilizzare l'impostazione «DefaultRouteOnDevice=yes». Allo stesso modo, è stata interrotta l'assegnazione di indirizzi locali IPv6 se il routing locale IPv6 per il collegamento non è abilitato;
- In systemd-networkd, durante la connessione a reti wireless in modalità ad-hoc, viene applicata per impostazione predefinita la configurazione con indirizzamento locale per il collegamento;
- Aggiunti i parametri RxBufferSize e TxBufferSize per configurare la dimensione dei buffer di ricezione e invio dell'interfaccia di rete;
- In systemd-networkd è stata implementata la dichiarazione di percorsi IPv6 aggiuntivi, regolata tramite le opzioni Route e LifetimeSec nella sezione «[IPv6RoutePrefix]»;
- In systemd-networkd è stata aggiunta la possibilità di configurare i percorsi «next hop» tramite le opzioni «Gateway» e «Id» nella sezione «[NextHop]»;
- In systemd-networkd e networkctl per DHCP è stato assicurato l'aggiornamento dinamico dei legami degli indirizzi IP (leases), realizzato con il comando ‘networkctl renew’;
- È stato implementato il ripristino della configurazione DHCP in systemd-networkd al riavvio (per mantenere le impostazioni è necessario utilizzare l'opzione KeepConfiguration). Il valore dell'impostazione SendRelease è stato modificato di default in «true»;
- Nel client DHCPv4 è stato implementato l'uso del valore dell'opzione OPTION_INFORMATION_REFRESH_TIME fornita dal server. Per richiedere specifiche opzioni dal server è stato suggerito il parametro «RequestOptions», mentre per inviare opzioni al server è stato utilizzato «SendOption». È stato aggiunto il parametro «IPServiceType» per configurare il tipo di servizio IP dal client DHCP;
- Per la sostituzione del server DHCPv4 con un elenco di server SIP (Session Initiation Protocol) sono stati aggiunti i parametri «EmitSIP» e «SIP». L'accettazione da parte del client dei parametri SIP forniti dal server può essere abilitata tramite l'impostazione «UseSIP=yes»;
- Nel client DHCPv6 è stato aggiunto il parametro «PrefixDelegationHint» per richiedere un prefisso di indirizzo;
- Nei file .network è stata implementata la compatibilità per l'abbinamento delle reti wireless in base a SSID e BSSID, ad esempio, per l'associazione al nome del punto di accesso e all'indirizzo MAC. I valori SSID e BSSID sono visualizzati nell'output di networkctl per le interfacce wireless. È stata inoltre aggiunta la possibilità di abbinamento in base al tipo di rete wireless (parametro WLANInterfaceType);
- In systemd-networkd è stata aggiunta la possibilità di configurare le discipline di gestione delle code per il controllo del traffico tramite i nuovi parametri Parent,
NetworkEmulatorDelaySec, NetworkEmulatorDelayJitterSec,
NetworkEmulatorPacketLimit e NetworkEmulatorLossRate,
NetworkEmulatorDuplicateRate nella sezione «[TrafficControlQueueingDiscipline]»; - In systemd-resolved è stata garantita la verifica degli indirizzi IP nei certificati durante la compilazione con GnuTLS.
Modifiche relative a udev:
- In systemd-udevd è stato rimosso il timeout di 30 secondi per forzare la terminazione dei gestori bloccati. Systemd-udevd ora attende il completamento dei gestori per i quali 30 secondi non erano sufficienti per completare le operazioni normalmente in grandi installazioni (ad esempio, il timeout potrebbe interrompere l'inizializzazione del driver durante il passaggio di un'unità montata per il filesystem radice). Durante l'uso di systemd, il timeout che systemd-udevd attenderà prima di uscire può essere specificato tramite l'impostazione TimeoutStopSec in systemd-udevd.service. Quando avviato senza systemd, il timeout è regolato dal parametro udev.event_timeout;
- Per udev è stato aggiunto il programma fido_id, che identifica i token FIDO CTAP1
(«U2F») / CTAP2 sulla base dei dati sul loro utilizzo passato e fornisce le necessarie variabili d'ambiente (il programma consente di evitare l'uso di liste bianche esterne contenenti tutti i token noti utilizzati in precedenza); - È stata implementata la generazione automatica di regole udev autosuspend per dispositivi dalla lista bianca, importata da Chromium OS (la modifica consente di espandere l'applicazione delle modalità di risparmio energetico per ulteriori dispositivi);
- In udev è stata aggiunta una nuova impostazione «CONST{key}=value», che consente di eseguire direttamente le corrispondenze dei valori delle costanti di sistema senza l'avvio di gestori separati per la verifica. Attualmente sono supportate solo le chiavi «arch» e «virt»;
- È stata garantita l'apertura del CDROM in modalità non esclusiva durante l'esecuzione dell'operazione di richiesta delle modalità supportate (la modifica risolve i problemi di accesso dei programmi al CDROM e riduce il rischio di interruzione dei programmi di masterizzazione, che non utilizzano modalità di accesso esclusive).
Fonte: opennet.ru
