Po čtyřech měsících vývoje byl uveden na trh systémový správce systemd 255. Mezi nejdůležitější vylepšení patří: podpora exportu úložišť přes NVMe-TCP, komponenta systemd-bsod pro plnoobrazové zobrazení chybových zpráv, nástroj systemd-vmspawn pro spuštění virtuálních strojů, nástroj varlinkctl pro správu služeb Varlink, nástroj systemd-pcrlock pro analýzu registrů TPM2 PCR a generování pravidel přístupu, modul autentizace pam_systemd_loadkey.so.
Klíčové změny v novém vydání:
- Byl přidán komponent "systemd-storagetm", který umožňuje automaticky exportovat všechna místní bloková zařízení pomocí ovladače NVMe-TCP (NVMe přes TCP), který umožňuje přístup k NVMe úložištím přes síť (NVM Express přes Fabrics) za použití protokolu TCP. Za zajištění přístupu v režimu NVMe přes TCP odpovídá nová jednotka "storage-target-mode.target", kterou lze aktivovat během zavádění, a to zadáním do příkazového řádku jádra "rd.systemd.unit=storage-target-mode.target", například v případě potřeby vzdáleného přístupu k úložišti za diagnostickým účelem.
- Byl přidán komponent "systemd-bsod" s implementací analogie "modré obrazovky smrti", která na fázi zavádění zobrazuje zprávy o kritických chybách (LOG_EMERG) ve formě plnoobrazového oznámení.
- Byl přidán nástroj "systemd-vmspawn", který představuje alternativu k nástroji systemd-nspawn pro spuštění obrazu operačního systému ve virtuálním stroji (nástroj systemd-nspawn je určen pro spuštění kontejnerů, zatímco systemd-vmspawn poskytuje podobné rozhraní pro virtuálních strojů). V současnosti je pro spuštění virtuálních strojů k dispozici pouze backend založený na QEMU.
- Byl přidán nástroj "varlinkctl" pro volání a introspekci služeb používajících protokol Varlink.
- Byla přidána utilita „systemd-pcrlock“ pro analýzu a predikci stavů registrů TPM2 PCR (Platform Configuration Register) a pro vytváření pravidel přístupu uložených v indexu TPM2 NV, která umožňují přístup k objektům TPM2, jako jsou klíče pro šifrování disku, pouze z ověřených komponentů podepsaných digitálně, které jsou spuštěny v průběhu ověřeného zavádění. Jako vstup pro analýzu může být použit výstup stavu PCR v TPM2, poskytovaný firmwarem UEFI, protokol událostí aktuálního zavádění (\/sys\/kernel\/security\/tpm0\/binary_bios_measurements) nebo lokálně uložený protokol TPM2 (\/run\/log\/systemd\/tpm2-measure.log). Podpora pro uložená pravidla přístupu byla přidána do systemd-cryptsetup, systemd-cryptenroll a systemd-repart.
- Byl přidán modul PAM pam_systemd_loadkey.so, určený k automatickému vytažení z klíčového úložiště v jádře (keyring) hesla, které se používá v cryptsetup pro odemčení šifrovaného kořenového FS, a k nastavení tohoto hesla jako autentifikačního tokenu (PAM authtok). Modul lze například použít pro nastavení automatického odemknutí přístupu k GNOME Keyring a KDE Wallet při automatickém přihlášení do systému.
- Byla přidána podpora pro přechod do spánkového režimu (hibernace) se zachováním obsahu paměti do stránkovacích souborů uložených v souborovém systému Btrfs.
- Do jednotek byla přidána vlastnost MemoryPeak, MemorySwapPeak, MemorySwapCurrent a MemoryZSwapCurrent, které odpovídají vlastnostem dostupným přes cgroup v2: memory.peak, memory.swap.peak, memory.swap.current a memory.zswap.current. Informace o těchto vlastnostech jsou zahrnuty ve výstupu „systemctl status“.
- Byl přepracován způsob spouštění služeb, který byl převeden na používání volání posix_spawn s opcemi CLONE_VM a CLONE_VFORK pro spuštění procesu a aplikaci samostatného spustitelného souboru systemd-executor pro nastavení spouštěného procesu. Dříve byly procesy odvozeny pomocí funkce fork s kopírováním paměti řídicího procesu v režimu copy-on-write a prováděním potřebných nastavení (montování názvových prostorů a nastavení CGroup) před spuštěním cílového spustitelného souboru pomocí volání exec, což vedlo k problémům v důsledku nemožnosti přístupu k některým API Glibc v období mezi voláními funkcí fork a exec.
- Kód pro sledování vnitřních procesů byl přeložen na použití PIDFD místo PID v prostředích s jádrem, které podporuje PIDFD (PIDFD je svázán s konkrétním procesem a nemění se, zatímco PID může být přidělen jinému procesu po dokončení aktuálního procesu, který je spojen s tímto PID). Byla implementována možnost vytváření scope jednotek, které používají PIDFD místo PID pro výběr procesů.
- Podpora oddělených hierarchií adresářů (když je /usr namontováno odděleně od kořenového adresáře nebo jsou odděleny adresáře /bin a /usr/bin, /lib a /usr/lib) byla ukončena. Dále bylo rozhodnuto o ukončení podpory cgroups v1, systémových skriptů System V a EFI proměnných SystemdOptions.
- Příkaz „systemctl switch-root“ je omezen pouze na použití v initrd. Pro nahrazení kořenového souborového systému v běžném prostředí by se měl použít „systemctl soft-reboot“.
- Parametry SuspendMode, HybridSleepMode, HibernateStat a HybridSleepState v sekci „[Sleep]“ souboru systemd-sleep.conf byly označeny jako zastaralé. Tyto parametry jsou nyní ignorovány a mohou mít pouze výchozí hodnoty.
- Do jednotek byla přidána volba SurviveFinalKillSignal, která umožňuje ignorovat konečný signál SIGTERM/SIGKILL vydaný během ukončení, což může být užitečné pro udržení jednotky aktivní během měkkého restartu systému v režimu soft-reboot.
- Byla přidána konfigurace NFTSet, která umožňuje používat identifikátory cgroup pro změnu logiky pravidel v firewallu.
- Byla přidána volba ConditionSecurity=measured-uki, která zaručuje, že jednotka může být spuštěna pouze v systému, který byl načten z ověřeného obrazu jádra ve formátu UKI.
- Do systemd-boot byly přidány nové klávesové zkratky „B“ a „O“ pro restart a vypnutí systému z bootovacího menu. Byla přidána konfigurace „menu-disabled“ pro deaktivaci zobrazení bootovacího menu.
- Do nástroje systemd-repart byly přidány nové možnosti „—copy-from“ pro získání popisů oddílu z uvedeného obrazu FS, „—copy-source“ pro určení základního adresáře pro parametr CopyFiles, „—make-ddi=confext“, „—make-ddi=sysext“ a „—make-ddi=portable“ pro generaci různých typů DDI, a „—tpm2-device-key“ pro svázání disku s konkrétním otevřeným klíčem TPM2.
- Do nástroje journalctl byla do parametru „—lines“ přidána hodnota „+N“ pro výpis N nejstarších záznamů.
- Do udevadm byla přidána příznak „—json“ pro výstup v JSON formátu.
- Do utilit systemd-analyze, systemd-tmpfiles, systemd-sysusers, systemd-sysctl a systemd-binfmt byla přidána volba „—tldr“ pro zobrazení pouze skutečných konfiguračních parametrů bez mezer a komentářů.
- Do pod systém seccomp byla přidána podpora architektury LoongArch64. Bylo povoleno použití seccomp k filtrování systémových volání v službách, které neprobíhají pod uživatelským účtem root, bez zapnutí nastavení NoNewPrivileges=yes.
- Do utility systemd-mount byla přidána volba „—tmpfs“ pro připojení nové instance ‚tmpfs‘.
Zdroj: opennet.ru
