systemd 261 e liberated-systemd 261

Dopo tre mesi di sviluppo è disponibile rilascio del gestore di sistema systemd 261. Principali modifiche: preparazione al supporto dell'API per la verifica dell'età, supporto delle sottosistemi Kexec Handover e Live Update Orchestration per riavvii senza perdita di stato, sottosistema IMDS (Instance Metadata Service), funzionalità per la protezione dell'avvio su sistemi senza TPM fisico (Trusted Platform Module), componente systemd-sysinstall con implementazione dell'installer.

Tra le modifiche nella nuova versione:

  • Aggiunto un nuovo componente systemd-sysinstall con implementazione di un semplice installer di sistema operativo, gestibile dalla riga di comando o tramite un'interfaccia testuale interattiva. La funzionalità di systemd-sysinstall è stata formata dalle già esistenti capacità di systemd: per configurare le partizioni dei dischi è stato utilizzato systemd-repart, per installare il kernel e generare il menu di avvio — il comando «bootctl link», per installare il bootloader systemd-boot — comando «bootctl install», per la configurazione iniziale del sistema installato (ad esempio, selezione della lingua e della disposizione della tastiera) — systemd-creds.
  • Nel contesto della preparazione all'implementazione dei requisiti di leggi sull'integrazione nell'OS dell'API per la verifica dell'età nel DB userdb è stato aggiunto il campo birthDate con la data di nascita dell'utente. Questo campo può essere utilizzato nel portale xdg-desktop-portal in fase di sviluppo per le distribuzioni e nel servizio AccountsService per fornire alle applicazioni informazioni sulla categoria di età dell'utente tramite l'interfaccia D-Bus org.freedesktop.AgeVerification1 o org.freedesktop.ParentalControls. Per impostare l'età, è stata aggiunta l'opzione —birth-date allo strumento homectl.
  • Nel gestore PID1 è stato aggiunto il supporto per i sottosistemi del kernel Linux LUO (Live Update Orchestration) e KHO (Kexec Handover), consentendo di riavviare e aggiornare completamente il kernel senza interrompere il funzionamento e senza perdere lo stato del sistema, dei dispositivi e dei processi. KHO offre la possibilità di avviare un nuovo kernel da quello vecchio senza perdere lo stato del sistema, e LUO implementa il salvataggio dello stato dei dispositivi e della memoria operativa, garantendo inoltre la continuità delle operazioni collegate al DMA e alla gestione delle interruzioni.
    In systemd è stata implementata la possibilità di salvare i descrittori di file per le unità di sistema e utente prima della chiamata a kexec e di ripristinarli dopo il riavvio del kernel tramite kexec. Nelle unità è anche possibile creare sessioni personalizzate. LUO, salvati e ripristinati durante l'esecuzione di kexec. Per abilitare il salvataggio dello stato del file descriptor, utilizzare l'impostazione FileDescriptorStorePreserve=yes.
  • Implementato il sottosistema systemd-imdsd, che fornisce un'API basata su Varlink IPC per consentire ai programmi locali di accedere ai servizi IMDS (Instance Metadata Service) forniti da vari provider di cloud. IMDS consente alle macchine virtuali di ottenere informazioni sull'ambiente cloud, ad esempio, è possibile ottenere dettagli sulla configurazione di rete, sulla posizione geografica del nodo, sul tipo di CPU e sulla dimensione dello storage. In systemd-imdsd è fornito sia un'API a basso livello per accedere ai singoli campi, sia un'interfaccia di alto livello per effettuare richieste su chiavi standard, associate a chiavi specifiche per diverse piattaforme cloud. Per interagire con systemd-imdsd, è stata aggiunta l'utility systemd-imds, che consente di importare campi da IMDS nel sistema locale degli account.
    Per riconoscere le piattaforme cloud utilizzando le informazioni da SMBIOS e determinare le funzionalità disponibili nel nodo attuale, è stata aggiunta una nuova DB hwdb.d/40-imds.hwdb. È stato implementato il riconoscimento delle piattaforme cloud Amazon EC2, Microsoft Azure, Google Compute Engine, Hetzner, Oracle Cloud, Scaleway, Tencent Cloud, Alibaba ECS e Vultr. È disponibile il gestore systemd-imds-generator per l'integrazione automatica del servizio per ottenere dati tramite IMDS nel caso venga rilevata una piattaforma cloud supportata. È possibile creare immagini universali che supportano l'uso di IMDS quando eseguite in ambienti cloud, ma capaci anche di funzionare senza IMDS.
  • In systemd-stub È stata implementata la funzionalità boot secret, che consente di generare una chiave basata su una variabile EFI, memorizzata in un'area non accessibile dal sistema operativo e inizializzata con un valore casuale. Nella initrd, la chiave viene trasmessa tramite il file /.extra/boot-secret. Questa possibilità può essere necessaria per ottenere una chiave casuale specifica per il sistema per la verifica del processo di avvio o la crittografia su sistemi privi di TPM (Trusted Platform Module) hardware.
  • È stato aggiunto il servizio systemd-tpm2-swtpm.service per avviare l'emulatore dei chip TPM. swtpm (Software TPM Emulator), che può essere utilizzato per il rollback automatico su un'implementazione software di TPM per un avvio protetto su sistemi privi di TPM hardware. Il TPM software opera nello spazio utente e non offre lo stesso livello di protezione del TPM hardware, ma in alcune situazioni il suo utilizzo è giustificato rispetto a lavorare senza TPM. Ad esempio, il TPM software può ottenere una chiave di crittografia delle partizioni tramite la nuova funzionalità «boot secret» e utilizzare la partizione ESP (EFI System Partition) sul disco per memorizzare il proprio stato. Per attivare automaticamente il TPM software, è stato proposto il parametro della riga di comando kernel systemd.tpm2_software_fallback.
  • Dichiarato stabile e posizionato in /usr/bin/ componente systemd-sysupdate, progettato per la rilevazione automatica, download e installazione degli aggiornamenti utilizzando un meccanismo atomico di 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 installa il successivo aggiornamento, dopo di che le partizioni/file/directory vengono scambiate).
  • In systemd-resolved È stata implementata la possibilità di sovrascrivere o specificare nuovi record DNS attraverso il posizionamento di file in formato JSON nelle cartelle systemd/resolve/static.d/. A differenza di /etc/hosts, nei nuovi file è possibile non solo associare indirizzi IP ai nomi host, ma anche definire record DNS RR resource diversi da «A» e «AAAA». Inoltre, in systemd-resolved sono state aggiunte impostazioni per la dimensione della cache DNS: DNSCacheSize, MulticastDNSCacheSize e LLMNRCacheSize.
  • È stata aggiunta l'utilità ‘storagectl’ per ispezionare i dispositivi di archiviazione e gestire il collegamento di dispositivi a blocchi e sistemi di file.
  • Nel contesto di dell'iniziativa riduzione delle dipendenze in libsystemd è stato implementato un caricamento dinamico delle librerie libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk e libcryptsetup utilizzando la chiamata dlopen() nei casi in cui le loro funzioni siano realmente necessarie.
  • In systemd-tmpfiles è stato aggiunto il flag —inline, che consente di specificare direttive nella riga di comando senza la creazione di file di configurazione in tmpfiles.d/ e senza inviare le impostazioni tramite STDIN. È stato aggiunto un nuovo tipo di direttive k/K per la definizione capacità. È stato aggiunto il file di configurazione tmpfiles.d/root.conf, impostando i permessi di accesso a 0555 (-r-xr-xr-x) per la directory radice (/) per proteggere da impostazioni errate dei permessi durante la generazione dinamica del filesystem radice.
  • Nell'utility bootctl è stata garantita la creazione di un backup del bootloader systemd-boot e l'iscrizione della versione precedente in UEFI come opzione di avvio di riserva.
  • In systemd-vmspawn è stata aggiunta la supporto per l'avvio diretto del kernel senza utilizzare il firmware UEFI. È stata implementata l'opzione —firmware-features per l'attivazione o disattivazione selettiva di singole funzionalità delle firmware. È stata aggiunta l'opzione —console=headless per avviare la macchina virtuale senza console e schermo. È stata aggiunta l'opzione —image-disk-type per selezionare il tipo di storage a blocchi da utilizzare nella VM (virtio-blk, virtio-scsi, nvme, scsi-cd). È stata aggiunta l'opzione —coco (Confidential Computing) per abilitare la modalità di crittografia della memoria delle macchine virtuali utilizzando la tecnologia AMD SEV-SNP.
  • In systemd-hostnamed e /etc/machine-info è stata aggiunta la supporto per l'assegnazione di tag arbitrari al sistema attuale utilizzando il parametro Tags. I tag impostati possono quindi essere utilizzati per l'applicazione selettiva delle configurazioni tramite l'espressione ConditionMachineTag.
  • Sono state aggiunte le impostazioni EventLoopRateLimitIntervalSec e EventLoopRateLimitBurst, che limitano l'intensità del ciclo di elaborazione degli eventi in PID1 per liberare risorse CPU in caso di stallo.
  • Nel gestore dei servizi è stata implementata l'impostazione MinimumUptimeSec per definire il tempo minimo di operatività del sistema (di default 15 secondi). Se viene avviato un arresto o un riavvio prima della scadenza, viene aggiunto un ritardo corrispondente nella fase finale.
  • Per gli unit sono state implementate nuove impostazioni CPUSetPartition per impostare il tipo di partizione cpuset in cgroup (root, isolated, member), RestrictFileSystemAccess per consentire l'esecuzione solo di file eseguibili verificati tramite firma digitale con dm-verity, e CPUPressureWatch/CPUPressureThresholdSec/IOPressureWatch/IOPressureThresholdSec per ricevere notifiche su un carico elevato della CPU e dell'input/output.
  • È stata ampliata la lista delle metriche riportate dallo strumento systemd-report. Ad esempio, sono state aggiunte informazioni sulle dimensioni della memoria fisica e sui core CPU attivi, dati sul contenuto dei campi SMBIOS e /etc/machine-info, informazioni sul supporto della modalità Confidential Computing e dettagli sul produttore dei chip TPM2.
  • In systemd-oomd È stata implementata la possibilità di definire regole per escludere processi in caso di insufficienza di memoria nel sistema. Le regole possono essere specificate nella directory /etc/systemd/oomd/rules.d/ o nei file di unità del servizio tramite la direttiva OOMRule.
  • In systemd-socket-proxy È stata aggiunta la supporto per il protocollo PROXY, conforme alla prima versione del protocollo haproxy.
  • In systemd-networkd È stato implementato un nuovo backend sd-dhcp-relay per i relay DHCP. Sono state dichiarate obsolete le impostazioni nella sezione [DHCPServer] — BindToInterface, RelayTarget, RelayAgentCircuitId e RelayAgentRemoteId, per le quali è necessario utilizzare il parametro DHCPRelay nella sezione [Network] e una serie di nuove impostazioni nella sezione [DHCPRelay] e nel file networkd.conf. È stato aggiunto il comando networkctl dhcp-lease INTERFACE per salvare un dump con informazioni sul legame degli indirizzi IP (DHCP lease).
  • Nell'utility systemd-nspawn È stata aggiunta l'opzione --restrict-address-families, e nei file .nspawn l'impostazione RestrictAddressFamilies per limitare le famiglie di indirizzi dei socket utilizzabili nel contenitore. Nelle versioni future, per impostazione predefinita saranno consentite solo le famiglie AF_INET, AF_INET6 e AF_UNIX.
  • È stato interrotto il supporto per il vecchio formato del database udev (versione 0.x). L'aggiornamento a caldo dalle versioni di systemd alla versione 247 (opennet.ru) non è più supportato.
  • Quando si compila con la libreria C musl, è ora richiesta almeno la versione 1.2.6 di musl.

Inoltre, si può notare rilascio progetto liberated-systemd 261, un fork di systemd che elimina il codice che potrebbe essere utilizzato per il monitoraggio degli utenti. Nella versione proposta, le modifiche riguardano la rimozione del codice che aggiungeva il campo birthDate con la data di nascita dell'utente nella userdb, e l'opzione —birth-date nell'utilità homectl per impostare l'età.

Fonte: linux.org.ru

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster