Nakon četiri mjeseca razvoja, predstavljen je izdanak sistemskog menadžera systemd 255. Među najvažnijim poboljšanjima su: podrška za izvoz uređaja putem NVMe-TCP, komponenta systemd-bsod za prikazivanje poruka o greškama na cijelom ekranu, alat systemd-vmspawn za pokretanje virtualnih mašina, alat varlinkctl za upravljanje Varlink servisima, alat systemd-pcrlock za analizu TPM2 PCR registara i generisanje pravila pristupa, modul autentifikacije pam_systemd_loadkey.so.
Ključne promjene u novom izdanju:
- Dodana je komponenta 'systemd-storagetm', koja omogućava automatski izvoz svih lokalnih blok uređaja putem NVMe-TCP drajvera (NVMe preko TCP), koji omogućava pristup NVMe uređajima mrežno (NVM Express preko Fabrics) koristeći TCP protokol. Za omogućavanje pristupa u režimu NVMe preko TCP odgovara nova jedinica 'storage-target-mode.target', koju je moguće aktivirati tokom pokretanja, navodeći u komandnoj liniji jezgre 'rd.systemd.unit=storage-target-mode.target', na primjer, kada je potreban daljinski pristup uređaju za dijagnostičke svrhe.
- Dodana je komponenta 'systemd-bsod' s implementacijom analoga 'plavog ekrana smrti', koja omogućava prikazivanje poruka o kritičnim greškama (LOG_EMERG) u obliku obavijesti na cijelom ekranu tokom faze pokretanja.
- Dodana je alatka 'systemd-vmspawn', koja predstavlja analog alatke systemd-nspawn za pokretanje operativnog sistema u virtualnoj mašini (alatka systemd-nspawn je namijenjena za pokretanje kontejnera, dok systemd-vmspawn pruža sličan interfejs za virtualnih mašina). Trenutno je dostupna samo QEMU backend za pokretanje virtualnih mašina.
- Dodana je alatka 'varlinkctl' za pozivanje i introspekciju servisa koji koriste Varlink protokol.
- Dodana je alatka „systemd-pcrlock“ za analizu i predviđanje stanja TPM2 PCR registra (Platform Configuration Register) i formiranje pravila pristupa koja se spremaju u TPM2 NV indeks, dopuštajući pristup TPM2 objektima, kao što su ključevi za enkripciju diska, samo od ovjerenih digitalnim potpisom komponenti pokrenutih u fazi verifikovanog pokretanja. Kao ulazni podaci za analizu može se koristiti rezultat upita za stanje PCR u TPM2, koji daje UEFI firmware log trenutnog pokretanja (\/sys\/kernel\/security\/tpm0\/binary_bios_measurements) ili lokalno sačuvan TPM2 log (\/run\/log\/systemd\/tpm2-measure.log). Podrška za sačuvana pravila pristupa dodana je u systemd-cryptsetup, systemd-cryptenroll i systemd-repart.
- Dodan je PAM modul pam_systemd_loadkey.so, namijenjen automatskom preuzimanju lozinke iz skladišta ključeva u jezgru (keyring) koja se koristi u cryptsetup-u za otključavanje enkriptovane korijenske datotečne sistema, i postavljanju te lozinke kao autentifikacijskog tokena (PAM authtok). Modul se može koristiti, na primjer, za podešavanje automatskog otključavanja pristupa GNOME Keyring-u i KDE Wallet-u prilikom automatskog prijavljivanja u sustav.
- Dodana je podrška za prelazak u stanje mirovanja (hibernacija) uz čuvanje sadržaja memorije u swap datotekama, koje se čuvaju u Btrfs datotečnom sistemu.
- U jedinice su dodana svojstva MemoryPeak, MemorySwapPeak, MemorySwapCurrent i MemoryZSwapCurrent, koja odgovaraju svojstvima dostupnim putem cgroups v2: memory.peak, memory.swap.peak, memory.swap.current i memory.zswap.current. Informacije o tim svojstvima uključene su u ispravku „systemctl status“.
- Preuređen je način pokretanja servisa, koji je prebačen na korištenje poziva posix_spawn s opcijama CLONE_VM i CLONE_VFORK za pokretanje procesa i primjenu posebne izvršne datoteke systemd-executor za podešavanje pokrenutog procesa. Ranije su se procesi odvajali funkcijom fork koja je kopirala memoriju upravljačkog procesa u režimu copy-on-write, i izvršavala potrebne postavke (montiranje prostora imena i postavljanje CGroup) prije nego što je pokrenuta ciljna izvršna datoteka putem poziva exec, što je dovelo do problema zbog nemogućnosti pristupa nekim Glibc API-jima u fazi između izvršavanja funkcija fork i exec.
- Kod za praćenje unutarnjih procesa prebačen je na korištenje PIDFD umjesto PID-a u okruženjima s kernelima koji podržavaju PIDFD (PIDFD se povezuje s određenim procesom i ne mijenja se, dok se PID može vezati na drugi proces nakon završetka trenutnog procesa povezanog s tim PID-om). Implementirana je mogućnost stvaranja scope-jedinica koristeći PIDFD umjesto PID-a za odabir procesa.
- Prekinuta je podrška za odvojene hijerarhije direktorija (kada se /usr montira odvojeno od korijena ili su razdvojeni direktoriji /bin i /usr/bin, /lib i /usr/lib). U budućnosti je također odlučeno prekinuti podršku za cgroups v1, System V servisne skripte i EFI varijable SystemdOptions.
- Komanda „systemctl switch-root“ ograničena je za primjenu samo u initrd. Za zamjenu korijenske datotečne sustava u običnom okruženju trebate koristiti „systemctl soft-reboot“.
- Objavljeni su zastarjeli parametri SuspendMode, HybridSleepMode, HibernateStat i HybridSleepState u sekciji „[Sleep]“ datoteke systemd-sleep.conf. Ovi parametri se sada ignoriraju i mogu prihvatiti samo zadane vrijednosti.
- U jedinice je dodana opcija SurviveFinalKillSignal koja omogućuje ignoriranje završnog signala SIGTERM/SIGKILL koji se šalje tijekom gašenja, što može biti korisno za održavanje jedinice u radnom stanju tijekom mekog ponovnog pokretanja sustava u načinu soft-reboot.
- Dodana je konfiguracija NFTSet koja omogućuje korištenje identifikatora cgroup za prebacivanje logike u pravilima vatrozida.
- Dodana je opcija ConditionSecurity=measured-uki koja jamči da se jedinica može pokrenuti samo u sustavu učitanom iz ovjerenog kernela u formatu UKI.
- U systemd-boot dodane su nove prečice s tipkovnice „B“ i „O“ za ponovni pokret i isključivanje sustava iz izbornika za podizanje sustava. Dodana je opcija „menu-disabled“ za onemogućavanje prikazivanja izbornika za podizanje.
- U alat systemd-repart dodane su nove opcije „—copy-from“ za dobivanje opisa particije iz određenog FS obraza, „—copy-source“ za određivanje osnovnog direktorija za parametar CopyFiles, „—make-ddi=confext“, „—make-ddi=sysext“ i „—make-ddi=portable“ za generiranje različitih tipova DDI, te „—tpm2-device-key“ za vezivanje diska na određeni otvoreni ključ TPM2.
- Alatu journalctl u parametar „—lines“ dodana je vrijednost „+N“ za ispis N najstarijih zapisa.
- U udevadm dodana je oznaka „—json“ za ispis u JSON formatu.
- U alate systemd-analyze, systemd-tmpfiles, systemd-sysusers, systemd-sysctl i systemd-binfmt dodana je opcija "—tldr" za ispis samo stvarnih konfiguracijskih parametara bez praznina i komentara.
- U sustav seccomp dodana je podrška za arhitekturu LoongArch64. Omogućena je upotreba seccompa za filtriranje sistemskih poziva u servisima koji se ne izvode pod korisnikom root bez uključivanja postavke NoNewPrivileges=yes.
- U alat systemd-mount dodana je opcija "—tmpfs" za montiranje novog primjerka 'tmpfs'.
Izvor: opennet.ru
