Dopo cinque mesi di sviluppo, è stato rilasciato il gestore di sistema systemd 251.
Principali modifiche:
- Sono stati incrementati i requisiti di sistema. La versione minima del kernel Linux supportata è aumentata da 3.13 a 4.15. È necessario avere un timer CLOCK_BOOTTIME. Per la compilazione è richiesto un compilatore che supporti lo standard C11 e le estensioni GNU (per i file di intestazione continua a essere usato lo standard C89).
- È stata aggiunta un'utilità sperimentale systemd-sysupdate per la determinazione automatica, il download e l'installazione degli aggiornamenti utilizzando un meccanismo atomico per la sostituzione di partizioni, file o directory (vengono utilizzate due partizioni/file/directory indipendenti, una delle quali contiene la risorsa attualmente in uso, mentre l'altra ha l'aggiornamento in corso di installazione, dopodiché le partizioni/file/directory vengono scambiate).
- È stata presentata una nuova libreria condivisa interna libsystemd-core-<version>.so, che viene installata nella directory /usr/lib/systemd/system e corrisponde alla libreria esistente libsystemd-shared-<version>.so. L'uso della libreria condivisa libsystemd-core-<version>.so consente di ridurre la dimensione complessiva dell'installazione attraverso il riutilizzo del codice binario. Il numero di versione può essere specificato tramite il parametro ‘shared-lib-tag’ nel sistema di build meson e consente ai distributori di fornire più versioni di queste librerie contemporaneamente.
- È stata implementata la trasmissione ai gestori OnFailure/OnSuccess delle variabili d'ambiente $MONITOR_SERVICE_RESULT, $MONITOR_EXIT_CODE, $MONITOR_EXIT_STATUS, $MONITOR_INVOCATION_ID e $MONITOR_UNIT contenenti informazioni sull'unità monitorata.
- Per gli unit, è stata implementata la configurazione ExtensionDirectories, che può essere utilizzata per gestire il caricamento dei componenti di estensione del sistema (System Extension) da normali directory anziché da immagini disco. Il contenuto della directory dell'estensione del sistema viene applicato tramite OverlayFS e utilizzato per estendere la gerarchia delle directory /usr/ e /opt/, aggiungendo file aggiuntivi durante l'esecuzione, anche se le directory specificate sono montate in modalità di sola lettura. È stata inoltre aggiunta al comando 'portablectl attach —extension=' la possibilità di specificare una directory.
- Per gli unit interrotti forzatamente dal gestore systemd-oomd a causa della mancanza di memoria di sistema, è stata garantita la trasmissione del flag 'oom-kill' e la registrazione nel campo 'user.oomd_ooms' del numero di interruzioni forzate.
- Per gli unit sono stati aggiunti nuovi specificatori di percorso %y/%Y, che riflettono il percorso normalizzato all'unit (con risoluzione dei collegamenti simbolici). Sono stati inoltre aggiunti specificatori %q per sostituire il valore PRETTY_HOSTNAME e %d per sostituire CREDENTIALS_DIRECTORY.
- Nei servizi non privilegiati avviati da un utente normale utilizzando il flag «—user», è consentita la modifica delle impostazioni RootDirectory, MountAPIVFS, ExtensionDirectories, *Capabilities*, ProtectHome, *Directory, TemporaryFileSystem, PrivateTmp, PrivateDevices, PrivateNetwork, NetworkNamespacePath, PrivateIPC, IPCNamespacePath, PrivateUsers, ProtectClock, ProtectKernelTunables, ProtectKernelModules, ProtectKernelLogs e MountFlags. Questa possibilità è disponibile solo se nella sistema sono abilitati gli spazi dei nomi degli identificatori utente (user namespaces).
- Nella configurazione LoadCredential è consentita l'indicazione del nome di una directory come argomento; in questo caso si tenterà di caricare le credenziali da tutti i file nella directory specificata.
- In systemctl nel parametro «—timestamp» è stata aggiunta la possibilità di specificare il flag «unix» per mostrare il tempo nel formato epoch (numero di secondi dal 1 gennaio 1970).
- In «systemctl status» è stato implementato il flag «old-kernel», visualizzato se il kernel caricato nella sessione ha un numero di versione più vecchio rispetto a quello del kernel di base disponibile nel sistema. È stato inoltre aggiunto il flag «unmerged-usr» per indicare che il contenuto delle directory /bin/ e /sbin/ non è stato creato tramite collegamenti simbolici a /usr.
- Per i generatori avviati dal processo PID 1 sono state introdotte nuove variabili ambientali $SYSTEMD_SCOPE (avvio da un servizio di sistema o utente), $SYSTEMD_IN_INITRD (avvio da initrd o ambiente host), $SYSTEMD_FIRST_BOOT (indicatore del primo avvio), $SYSTEMD_VIRTUALIZATION (presenza di virtualizzazione o avvio in un contenitore) e $SYSTEMD_ARCHITECTURE (architettura per la quale è stato compilato il kernel).
- Nel gestore PID 1 è stata implementata la possibilità di caricare i parametri delle credenziali di sistema dall'interfaccia fw_cfg di QEMU o specificandoli nella riga di comando del kernel con il parametro systemd.set_credential. Nella direttiva LoadCredential è fornita la ricerca automatica delle credenziali nelle directory /etc/credstore/, /run/credstore/ e /usr/lib/credstore/, se è specificato un percorso relativo come argomento. Un comportamento simile è stato applicato alla direttiva LoadCredentialEncrypted, in cui vengono ulteriormente verificate le directory /etc/credstore.encrypted/, /run/credstore.encrypted/ e /usr/lib/credstore.encrypted/.
- In systemd-journald è stata stabilizzata la possibilità di esportare in formato JSON. Nei comandi «journalctl —list-boots» e «bootctl list» è stato aggiunto il supporto per l'output in formato JSON (flag «—json»).
- In udev sono stati aggiunti nuovi file con i database hwdb, contenenti informazioni sui dispositivi portatili (PDA, calcolatrici, ecc.) e sui dispositivi utilizzati nella creazione di suoni e video (mixer DJ, pad esecutivi).
- In udevadm sono state aggiunte nuove opzioni «—prioritized-subsystem» per impostare la priorità di monitoraggio dei sistemi (utilizzata in systemd-udev-trigger.service per elaborare per prima i dispositivi di blocco e TPM), «—type=all», «—initialized-match» e «—initialized-nomatch» per selezionare i dispositivi inizializzati o non inizializzati, «udevadm info —tree» per mostrare l'albero degli oggetti nella gerarchia /sys/. Sono stati aggiunti anche nuovi comandi in udevadm «wait» e «lock» per attendere l'apparizione nel database della registrazione del dispositivo e per bloccare il dispositivo di blocco durante la formattazione o la scrittura della tabella delle partizioni.
- È stato aggiunto un nuovo insieme di link simbolici ai dispositivi /dev/disk/by-diskseq/ per identificare i dispositivi di blocco in base al numero sequenziale («diskseq»).
- Nei file .link nella sezione [Match] è stata aggiunta la supporto per il parametro «Firmware» per mappare il dispositivo tramite una stringa che descrive il firmware.
- In systemd-networkd, for unicast routes configured via the [Route] section, the default value for scope has been changed to "link" to match the behavior of the "ip route" command. The [Bridge] section has been updated to include the parameter Isolated=true|false for configuring the corresponding attribute of network bridges in the kernel. In the [Tunnel] section, the External parameter has been added for setting external-type tunnels (metadata collection mode). The [DHCPServer] section now includes the parameters BootServerName, BootServerAddress, and BootFilename for configuring the server address, server name, and boot file name sent during DHCP boot in PXE mode. server The L2TP parameter has been removed from the [Network] section. Instead, the new Local setting can be used in .netdev files, bound to the L2TP interface.
- A new unit "systemd-networkd-wait-online@.service" has been introduced, which can be used to wait for a specific network interface to come up.
- It is now possible to use .netdev files to create virtual WLAN devices, for which the [WLAN] section is provided for configuration.
- In .link/.network files within the [Match] section, the Kind parameter has been implemented for matching by device type ("bond", "bridge", "gre", "tun", "veth").
- È stato garantito ilavvio di systemd-resolved in una fase precedente del boot, incluso l'avvio da initrd se systemd-resolved è presente nell'immagine initrd.
- In systemd-cryptenroll è stata aggiunta l'opzione —fido2-credential-algorithm per scegliere l'algoritmo di cifratura delle credenziali e l'opzione —tpm2-with-pin per gestire l'input del PIN durante lo sblocco della partizione usando TPM. È stata aggiunta un'opzione analoga tpm2-pin in /etc/crypttab. Durante lo sblocco dei dispositivi tramite TPM è stata garantita la cifratura dei parametri per proteggere contro l'intercettazione delle chiavi di cifratura.
- In systemd-timesyncd è stata aggiunta un'API D-Bus per ottenere dinamicamente informazioni dal server NTP tramite IPC.
- Per determinare la necessità di output colorato in tutti i comandi, è stata implementata una verifica della variabile d'ambiente COLORTERM, oltre a quelle già verificate NO_COLOR, SYSTEMD_COLORS e TERM.
- Nel sistema di build Meson è stata implementata l'opzione install_tag per la compilazione e l'installazione selettiva dei componenti necessari: pam, nss, devel (pkg-config), systemd-boot, libsystemd, libudev. È stata aggiunta un'opzione di compilazione default-compression per scegliere l'algoritmo di compressione per systemd-journald e systemd-coredump.
- In sd-boot, nel file loader.conf è stata aggiunta un'impostazione sperimentale «reboot-for-bitlocker» per l'avvio di Microsoft Windows con BitLocker TPM.
Fonte: opennet.ru
