Dopo tre mesi di sviluppo rilascio del gestore di sistema .
Principali modifiche:
- Aggiunta del supporto per il controller di risorse cpuset basato su cgroups v2, che fornisce un meccanismo per legare i processi a specifici CPU (impostazione 'AllowedCPUs') e ai nodi di memoria NUMA (impostazione 'AllowedMemoryNodes');
- Aggiunto il supporto per il caricamento delle impostazioni dalla variabile EFI SystemdOptions per la configurazione di systemd, permettendo di configurare il comportamento di systemd in situazioni in cui è difficile modificare i parametri della riga di comando del kernel, mentre la configurazione da disco viene letta troppo tardi (ad esempio, quando è necessario impostare opzioni relative alla gerarchia del cgroup). Per impostare la variabile in EFI si può usare il comando 'bootctl systemd-efi-options';
- Nei unit è stato aggiunto il supporto per il caricamento delle impostazioni dalle cartelle '{unit_type}.d/', collegate ai tipi di unit (ad esempio, 'service.d/'), che possono essere utilizzate per aggiungere impostazioni che si applicano a 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 la configurazione RestartKillSignal, che consente di sovrascrivere il numero del segnale utilizzato per terminare il processo durante il riavvio dei task (è possibile modificare il comportamento di arresto del processo nella fase di preparazione al riavvio);
- Il comando «systemctl clean» è stato adattato per l'uso con unità di socket, montaggio e swap (socket, mount, swap);
- Nella fase iniziale di avvio, vengono disabilitate le limitazioni sull'intensità di output dei messaggi tramite la chiamata printk, consentendo di accumulare log più completi sul processo di avvio in una fase in cui il supporto per i log non è ancora connesso (i log vengono accumulati nel buffer circolare del kernel). La configurazione dei limiti per printk dalla riga di comando del kernel ha una priorità maggiore e può sovrascrivere il comportamento di systemd. I programmi di systemd che scrivono direttamente il log in /dev/kmsg (cosa che avviene solo nelle fasi iniziali di avvio) utilizzano limitazioni interne separate per prevenire il riempimento del buffer;
- È stata aggiunta al comando systemctl l'opzione ‘stop —job-mode=triggering’, che consente di fermare sia l'unità specificata nella riga di comando sia tutte le unità che possono invocarla;
- Le informazioni sullo stato dell'unità ora includono dettagli sulle unità chiamanti e chiamate;
- È stata introdotta la possibilità di utilizzare l'impostazione «RuntimeMaxSec» nelle unità di tipo scope (in precedenza applicata solo nelle unità di tipo service). Ad esempio, «RuntimeMaxSec» può ora essere utilizzato per limitare la durata delle sessioni PAM attraverso la creazione di un'unità di tipo scope.
per l'account utente. Il limite temporale può essere impostato anche tramite l'opzione systemd.runtime_max_sec nelle configurazioni del modulo PAM pam_systemd; - È stato aggiunto un nuovo gruppo di chiamate di sistema «@pkey», che semplifica l'aggiunta di chiamate di sistema relative alla protezione della memoria nelle liste bianche per i container e i servizi;
- In systemd-tmpfiles è stato aggiunto il flag «w+» per la scrittura in modalità di aggiunta del 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 qualche programma di terze parti ha modificato i parametri del kernel);
- In systemd-analyze è stata aggiunta l'opzione «—base-time», che calcola i dati del calendario rispetto all'orario specificato in questa opzione, invece che rispetto all'ora di sistema attuale;
- In «journalctl —update-catalog» è stata garantita la coerenza dell'ordine degli elementi nell'output (utile per l'organizzazione di build ripetute);
- È stata aggiunta la possibilità di specificare un valore predefinito per l'impostazione «WatchdogSec», utilizzata nei servizi systemd. Durante la fase di compilazione, il valore di base può essere definito tramite l'opzione «-Dservice-watchdog» (se viene impostato un valore vuoto, il watchdog verrà disattivato);
- È stata aggiunta un'opzione di build «-Duser-path» per sovrascrivere il valore di $PATH;
- All'utilità systemd-id128 è stata aggiunta l'opzione «-u» («—uuid») per l'output degli identificatori a 128 bit in UUID (rappresentazione canonica di UUID);
- Per la compilazione ora è richiesta libcryptsetup versione 2.0.1 o superiore.
Modifiche relative alla configurazione della rete:
- In systemd-networkd è stata aggiunta la supporto per la riconfigurazione del link in tempo reale, per cui in networkctl sono state aggiunte le comandi «reload» e «reconfigure DEVICE…» per il riavvio delle impostazioni e la riconfigurazione dei dispositivi;
- In systemd-networkd è stata interrotta la creazione di route predefinite per link locali IPv4 con indirizzi di intranet 169.254.0.0/16 (). In precedenza, la creazione automatica di route predefinite per collegamenti simili portava a comportamenti imprevisti e problemi di routing in alcuni casi. Per ripristinare il comportamento precedente, è necessario utilizzare l'impostazione «DefaultRouteOnDevice=yes». È stata inoltre interrotta l'assegnazione di indirizzi IPv6 locali se il routing locale IPv6 per il link non è attivato;
- In systemd-networkd, durante la connessione a reti wireless in modalità ad-hoc, è implementata per impostazione predefinita l'applicazione della configurazione con indirizzamento locale per il link (link-local);
- Aggiunti i parametri RxBufferSiz e TxBufferSize per configurare la dimensione dei buffer di invio e ricezione dell'interfaccia di rete;
- In systemd-networkd è implementata l'annunciazione di ulteriori route IPv6, regolabile tramite le opzioni Route e LifetimeSec nella sezione «[IPv6RoutePrefix]»;
- In systemd-networkd è stata aggiunta la possibilità di configurare le route «next hop» usando le opzioni «Gateway» e «Id» nella sezione «[NextHop]»;
- In systemd-networkd e networkctl per DHCP è garantito l'aggiornamento delle assegnazioni di indirizzi IP (leases) in tempo reale, implementato mediante il comando ‘networkctl renew’;
- systemd-networkd ora supporta il reset della configurazione DHCP al riavvio (per mantenere le impostazioni, utilizzare il parametro KeepConfiguration). Il valore predefinito dell'impostazione SendRelease è stato cambiato in "true";
- Nel client DHCPv4 è stato garantito l'utilizzo del valore dell'opzione OPTION_INFORMATION_REFRESH_TIME fornita dal server. È stata proposta l'opzione «RequestOptions» per richiedere opzioni specifiche dal server, e «SendOption» per inviare opzioni al server. È stato aggiunto il parametro «IPServiceType» per configurare il tipo di servizio IP dal client DHCP;
- Per la sostituzione del server DHCPv4, sono stati aggiunti i parametri «EmitSIP» e «SIP» per l'elenco dei server SIP (Session Initiation Protocol). Sul lato client, la ricezione dei parametri SIP 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 assicurata la compatibilità con la mappatura delle reti wireless in base a SSID e BSSID, ad esempio, per legare al nome del punto di accesso e all'indirizzo MAC. I valori SSID e BSSID sono mostrati nell'output di networkctl per le interfacce wireless. Inoltre, è stata aggiunta la possibilità di mappatura in base al tipo di rete wireless (parametro WLANInterfaceType);
- In systemd-networkd è stata aggiunta la possibilità di configurare le discipline di organizzazione delle code per la gestione del traffico tramite i nuovi parametri Parent,
NetworkEmulatorDelaySec, NetworkEmulatorDelayJitterSec,
NetworkEmulatorPacketLimit e NetworkEmulatorLossRate,
NetworkEmulatorDuplicateRate nella sezione «[TrafficControlQueueingDiscipline]»; - In systemd-resolved è stata assicurata 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. Ora systemd-udevd attende il completamento dei gestori, per i quali 30 secondi non sono stati sufficienti per una chiusura regolare delle operazioni in installazioni di grandi dimensioni (ad esempio, il timeout poteva interrompere l'inizializzazione del driver durante il processo di switching della partizione montata per il file system root). Quando si utilizza systemd, il timeout che systemd-udevd attenderà prima di uscire può essere impostato tramite la configurazione TimeoutStopSec in systemd-udevd.service. Quando viene eseguito 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 basato su dati del loro utilizzo passato e restituisce le variabili ambiente necessarie (il programma consente di evitare elenchi bianchi esterni di tutti i token noti utilizzati in precedenza); - Implementata la generazione automatica delle regole udev autosuspend per i dispositivi nell'elenco autorizzato, importato da Chromium OS (questa modifica consente di ampliare 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 il mapping dei valori delle costanti di sistema senza eseguire gestori separati per la verifica. Attualmente sono supportate solo le chiavi «arch» e «virt»;
- Garantita l'apertura del CDROM in modalità non esclusiva durante l'esecuzione dell'operazione di richiesta delle modalità supportate (questa modifica risolve i problemi di accesso ai programmi sul CDROM e riduce il rischio di interruzione dei programmi di scrittura su disco che non utilizzano la modalità di accesso esclusiva).
Fonte: opennet.ru
