Po troch mesiacoch vývoja je dostupný vydanie systémového správcu systemd 261. Kľúčové zmeny: príprava na podporu API na overovanie veku, podpora subsystémov Kexec Handover a Live Update Orchestration na reštart bez straty stavu, subsystém IMDS (Instance Metadata Service), funkčnosť na ochranu zavádzania na systémoch bez fyzického TPM (Trusted Platform Module), komponent systemd-sysinstall s realizáciou inštalátora.
Medzi zmien v novom vydaní:
- Pridaný nový komponent systemd-sysinstall s realizáciou jednoduchého inštalátora operačného systému, ktorým sa dá spravovať z príkazového riadku alebo cez interaktívne textové rozhranie. Funkčnosť systemd-sysinstall je vytvorená z už existujúcich možností systemd: na nastavenie diskových oddielov sa využíva systemd-repart, na inštaláciu jadra a generovanie zavádzacieho menu — príkaz „bootctl link“, na inštaláciu zavádzača systemd-boot — príkaz „bootctl install“, na počiatočné konfigurovanie inštalovanej systému (napríklad výber locale a klávesnice) — systemd-creds.
- V rámci prípravy na realizáciu požiadaviek zákonov o integrácii do OS API na overovanie veku v DB userdb bolo pridané pole birthDate s dátumom narodenia používateľa. Pridané pole sa môže používať v rozvíjanom pre distribúcie portáli xdg-desktop-portal a službe AccountsService na poskytovanie aplikáciám informácií o vekovej kategórii používateľa cez D-Bus rozhranie org.freedesktop.AgeVerification1 alebo org.freedesktop.ParentalControls. Na nastavenie veku do nástroja homectl bola pridaná možnosť —birth-date.
- Do spracovateľa PID1 bola pridaná podpora subsystémov Linux jadra LUO (Live Update Orchestration) a KHO (Kexec Handover), ktoré umožňujú kompletné reštartovanie a aktualizovanie jadra bez zastavenia práce a bez straty stavu systému, zariadení a procesov. KHO ponúka možnosti na spustenie nového jadra zo starého bez straty stavu systému, a LUO realizuje zachovanie stavu zariadení a operačnej pamäte, ako aj zabezpečuje kontinuitu operácií súvisiacich s DMA a spracovaním prerušenia.
V systemd bola pre systémové a používateľské jednotky реализована možnosť zachovania súborových deskriptorov pred volaním kexec a ich obnovenia po reštartovaní jadra cez kexec. V jednotkách je tiež možné vytvárať vlastné relácie. LUO, ukladané a obnovované pri vykonaní kexec. Pre povolenie uchovávania stavu úložiska súborových popisovačov je potrebné použiť nastavenie FileDescriptorStorePreserve=yes. - Implementovaný subsystém systemd-imdsd, ktorý poskytuje API založené na Varlink IPC pre prístup lokálnych programov k službám IMDS (Instance Metadata Service), ktoré poskytujú rôzni poskytovatelia cloudových systémov. IMDS umožňuje virtuálnym strojom získať informácie o cloudovom prostredí, napríklad sa dajú získať údaje o sieťovej konfigurácii, geografickej polohe uzla, type CPU a veľkosti úložiska. V systemd-imdsd je poskytované ako nízkoúrovňové API pre prístup k jednotlivým poliam, tak aj vysokúrovňové rozhranie pre dotazy podľa typických kľúčov, zodpovedajúcich kľúčom špecifickým pre jednotlivé cloudové platformy. Na interakciu so systemd-imdsd bola pridaná utilita systemd-imds, ktorá umožňuje importovať polia z IMDS do lokálneho systému účtov.
Na rozpoznávanie cloudových platforiem na základe informácií zo SMBIOS a určenie dostupnej funkcionality IMDS na aktuálnom uzle bola pridaná nová databáza hwdb.d/40-imds.hwdb. Implementované je rozpoznávanie cloudových platforiem Amazon EC2, Microsoft Azure, Google Compute Engine, Hetzner, Oracle Cloud, Scaleway, Tencent Cloud, Alibaba ECS a Vultr. K dispozícii je spracovateľ systemd-imds-generator pre automatickú náhradu služby na získavanie údajov cez IMDS v prípade zistenia prevádzky pod riadením podporovanej cloudovej platformy. Je možné vytvárať univerzálne obrazy, ktoré podporujú používanie IMDS pri spustení v cloudových prostrediach, ale schopné fungovať aj bez IMDS. - V systemd-stub implementovaná funkcionalita boot secret, ktorá umožňuje vytvoriť kľúč na základe EFI-premennej, uložené v nedostupnej pre operačný systém oblasti a inicializovanej náhodnou hodnotou. V initrd je kľúč prenášaný cez súbor /.extra/boot-secret. Predstavená možnosť môže byť potrebná na získanie pre systém špecifického náhodného kľúča na overenie procesu spustenia alebo šifrovania na systémoch bez hardvérového TPM (Trusted Platform Module).
- Pridaná služba systemd-tpm2-swtpm.service na spustenie emulátora TPM čipov swtpm (Software TPM Emulator), ktorý je možné použiť na automatický návrat k softvérovej implementácii TPM pre zabezpečené spúšťanie na systémoch bez hardvérového TPM. Softvérový TPM funguje v užívateľskom priestore a nedosahuje úroveň ochrany, akú má hardvérový TPM, ale v niektorých situáciách je jeho použitie odôvodnené v porovnaní s prácou bez TPM. Napríklad, softvérový TPM môže získať kľúč na šifrovanie oddielov pomocou novej funkčnosti „boot secret“ a na uloženie svojho stavu môže využiť oddiel ESP (EFI System Partition) na disku. Pre automatické zapínanie softvérového TPM bol navrhnutý parameter príkazového riadku jadra systemd.tpm2_software_fallback.
- Bol vyhlásený za stabilný a umiestnený v /usr/bin komponent systemd-sysupdate, určený na automatické zistenie, stiahnutie a inštaláciu aktualizácií pomocou atómového mechanizmu výmeny oddielov, súborov alebo adresárov (používajú sa dve nezávislé oddiely/súbory/adresáre, na jednom z nich sa nachádza aktuálne funkčný zdroj a na druhom sa inštaluje nasledujúca aktualizácia, po čom sa oddiely/súbory/adresáre vymenia).
- V systemd-resolved bola implementovaná možnosť prepisovania alebo určovania nových DNS záznamov pomocou umiestnenia súborov vo formáte JSON v adresároch systemd/resolve/static.d/. Na rozdiel od /etc/hosts v nových súboroch je možné nielen viazať IP adresy k menám hostiteľov, ale aj určovať zdrojové DNS RR záznamy, ktoré sa líšia od „A“ a „AAAA“. Okrem toho boli do systemd-resolved pridané nastavenia veľkosti DNS cache: DNSCacheSize, MulticastDNSCacheSize a LLMNRCacheSize.
- Pridaná utility ‘storagectl’ na inšpekciu úložných zariadení a správu pripojenia blokových zariadení a súborových systémov.
- V rámci iniciatívy na skrátenie závislostí v libsystemd bola realizovaná dynamická načítanie knižníc libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk a libcryptsetup pomocou volania dlopen() v situáciách, keď sú ich funkcie skutočne potrebné.
- V systemd-tmpfiles bol pridaný príznak —inline, ktorý umožňuje nastavovanie direktív v príkazovom riadku bez vytvárania konfiguračných súborov v tmpfiles.d/ a bez posielania nastavení cez STDIN. Bol pridaný nový typ direktív k/K na nastavenie capabilities. Pridaný konfiguračný súbor tmpfiles.d/root.conf, ktorý nastavuje prístupové práva 0555 (-r-xr-xr-x) k root adresáru (/) na ochranu pred nesprávnym nastavením práv pri dynamickom vytváraní root FS.
- V utilitě bootctl Zabezpečené uchovanie zálohy zavádzača systemd-boot a nastavenie starej verzie v UEFI ako záložnej možnosti zavádzania.
- V systemd-vmspawn Pridaná podpora priameho zavádzania jadra bez použitia firmvéru UEFI. Implementovaná možnosť —firmware-features na selektívne zapínanie alebo vypínanie jednotlivých funkcií firmvéru. Pridaný režim —console=headless na spustenie virtuálneho stroja bez konzoly a obrazovky. Pridaná možnosť —image-disk-type na výber typu blokového úložiska používaného vo VM (virtio-blk, virtio-scsi, nvme, scsi-cd). Pridaná možnosť —coco (Confidential Computing) na aktiváciu režimu šifrovania pamäte virtuálnych strojov pomocou technológie AMD SEV-SNP.
- V systemd-hostnamed a /etc/machine-info pridaná podpora pripojenia náhodných tagov k aktuálnemu systému pomocou parametra Tags. Nastavené tagy sa potom môžu používať na selektívne aplikovanie nastavení s kontrolou prostredníctvom výrazu ConditionMachineTag.
- Pridané nastavenia EventLoopRateLimitIntervalSec a EventLoopRateLimitBurst, obmedzujúce intenzitu cyklu spracovania udalostí v PID1 na oslobodenie zdrojov CPU v prípade zacyklenia.
- V správcovi služieb bola implementovaná konfigurácia MinimumUptimeSec na určenie minimálneho času prevádzky systému (predvolene 15 sekúnd). Ak je pred uplynutím tohto času iniciované vypnutie alebo reštart, na záverečnej fáze sa pridáva príslušná oneskorenie.
- Pre jednotky implementované nové nastavenia CPUSetPartition na nastavenie typu rozdelenia cpuset v cgroup (root, isolated, member), RestrictFileSystemAccess pre povolenie spustenia len vykonateľných súborov, ktoré boli overené digitálnym podpisom pomocou dm-verity, a CPUPressureWatch/CPUPressureThresholdSec/IOPressureWatch/IOPressureThresholdSec na prijímanie upozornení o vysokom zaťažení CPU a vstup/výstup.
- Rozšírený zoznam metrík poskytovaných utilitou systemd-report. Napríklad pridané informácie o veľkosti fyzickej pamäte a aktívnych jadrách CPU, údaje o obsahu polí SMBIOS a /etc/machine-info, informácie o podpore režimu Confidential Computing a údaje o výrobcoch čipov TPM2.
- V systemd-oomd implementovaná možnosť definovania pravidiel na filtrovanie procesov pri nedostatku pamäte v systéme. Pravidlá môžu byť nastavené v priečinku /etc/systemd/oomd/rules.d/ alebo v servisných jednotkách cez direktívu OOMRule.
- V systemd-socket-proxy pridaná podpora protokolu PROXY, zodpovedajúceho prvej verzii protokolu haproxy.
- V systemd-networkd bol nového backendu sd-dhcp-relay pre DHCP relay. Nastavenia v sekcii [DHCPServer] — BindToInterface, RelayTarget, RelayAgentCircuitId a RelayAgentRemoteId sú označené za zastarané a mali by sa nahradiť parameter DHCPRelay v sekcii [Network] a sériou nových nastavení v sekcii [DHCPRelay] a v súbore networkd.conf. Pridaný príkaz networkctl dhcp-lease INTERFACE na uchovanie dumpu s informáciami o viazaní IP adries (DHCP lease).
- Do nástroja systemd-nspawn pridaná možnosť —restrict-address-families a v súboroch .nspawn nastavenie RestrictAddressFamilies na obmedzenie používaných rodín adries soketov v kontejnere. V budúcich vydaniach budú predvolene povolené len rodiny AF_INET, AF_INET6 a AF_UNIX.
- Podpora starého formátu databázy udev (verzie 0.x) bola ukončená. Aktualizácia za behu z verzií systemd na vydanie 247 (opennet.sk) už sa nepodporuje.
- Pri zostavovaní s C-knižnicou musl je teraz vyžadovaná aspoň verzia musl 1.2.6.
Navyše môžeme spomenúť uvoľnenie projektu liberated-systemd 261, rozvíjajúceho fork systemd zbaveného kódu, ktorý by mohol byť použitý na sledovanie používateľov. V navrhovanom vydaní sú zmeny zamerané na odstránenie kódu, ktorý pridáva do userdb pole birthDate s dátumom narodenia používateľa a do nástroja homectl možnosť —birth-date na nastavenie veku.
Zdroj: linux.org.ru
