Po třech měsících vývoje vydání systémového správce .
Hlavní změny:
- Byla přidána podpora pro řízení zdrojů cpuset založené na cgroups v2, které poskytuje mechanismus pro přiřazení procesů ke specifickým CPU (nastavení „AllowedCPUs“) a NUMA uzlům paměti (nastavení „AllowedMemoryNodes“);
- Byla přidána podpora pro načítání nastavení z EFI proměnné SystemdOptions pro konfiguraci systemd, což umožňuje konfigurovat chování systemd v situacích, kdy je obtížné změnit parametry příkazového řádku jádra a konfigurace z disku se načítá příliš pozdě (například když je třeba nastavit možnosti související s hierarchií cgroup). Pro nastavení proměnné v EFI lze použít příkaz ‘bootctl systemd-efi-options’;
- Do jednotek byla přidána podpora pro načítání nastavení z adresářů „{unit_type}.d/“, které jsou přiřazeny k typům jednotek (například „service.d/“), jež mohou být použity pro přidání nastavení platných pro všechny soubory jednotek daného typu;
- Pro servisní jednotky byl přidán nový režim izolace sandbox ProtectKernelLogs, který zakazuje aplikaci přístup k logovému bufferu jádra dostupnému přes systémové volání syslog (nemělo by být zaměňováno s API stejného názvu poskytovaným v libc). V případě aktivace režimu bude přístup aplikace k /proc/kmsg, /dev/kmsg a CAP_SYSLOG zablokován;
- Pro jednotky byla zavedena konfigurace RestartKillSignal, která umožňuje přepsat číslo signálu používaného pro ukončení procesu během restartu úloh (lze změnit chování zastavení procesu ve fázi přípravy na opětovný start);
- Příkaz „systemctl clean“ byl upraven pro použití s jednotkami socketů, montování a swap (socket, mount, swap);
- V rané fázi startupu byla zrušena omezení na intenzitu výstupu zpráv jádrem pomocí volání printk, což umožňuje shromáždit podrobnější logy o průběhu spuštění ve fázi, kdy není úložiště pro logy ještě připojeno (log se shromažďuje v kruhovém bufferu jádra). Nastavení limitů pro printk z příkazové řádky jádra má vyšší prioritu a umožňuje přepsat chování systemd. Programy systemd, které přímo zapisují log do /dev/kmsg (to se děje pouze v rané fázi spuštění), používají samostatná vnitřní omezení pro ochranu před zaplněním bufferu;
- Do utilitě systemctl byla přidána příkaz ‘stop —job-mode=triggering’, který umožňuje zastavit jak konkrétní jednotku uvedenou v příkazovém řádku, tak všechny jednotky, které ji mohou volat;
- Informace o stavu jednotky nyní zahrnuje údaje o vyvolávajících a vyvolaných jednotkách;
- Byla zajištěna možnost použití nastavení «RuntimeMaxSec» v scope-jedinicích (dříve se používalo pouze v service-jedinicích). Například «RuntimeMaxSec» nyní může být použito pro omezení doby PAM relací vytvořením scope-jednotky
pro uživatelský účet. Omezení podle času může být také nastavováno pomocí volby systemd.runtime_max_sec v parametrech PAM modulu pam_systemd; - Byla přidána nová skupina systémových volání «@pkey», která při omezení kontejnerů a služeb usnadňuje přidávání systémových volání souvisejících s ochranou paměti do bílých seznamů;
- Do systemd-tmpfiles byla přidána volba «w+» pro zápis v režimu doplnění souboru;
- Do výstupu systemd-analyze byly přidány údaje o shodě konfigurace paměti jádra s nastaveními systemd (například, pokud nějaký externí program změnil parametry jádra);
- Do systemd-analyze byla přidána volba «—base-time», při jejímž uvedení jsou kalendářní údaje vypočítávány vzhledem k času uvedenému v této volbě, nikoli k aktuálnímu systémovému času;
- V «journalctl —update-catalog» byla zajištěna stálost pořadí prvků ve výstupu (užitečné pro organizaci opakovaných sestav);
- Byla přidána možnost nastavit výchozí hodnotu pro nastavení «WatchdogSec», používané v službách systemd. V průběhu kompilace může být základní hodnota definována pomocí volby «-Dservice-watchdog» (pokud je nastavena prázdná hodnota, watchdog bude vypnut);
- Byla přidána volba pro sestavení «-Duser-path» pro přepsání hodnoty $PATH;
- Do utilitě systemd-id128 byla přidána volba «-u» («—uuid») pro výstup 128-bitových identifikátorů v UUID (kanonické zobrazení UUID);
- Pro sestavení je nyní vyžadována libcryptsetup alespoň verze 2.0.1.
Změny týkající se nastavení sítě:
- Do systemd-networkd byla přidána podpora pro přikonfigurování linky za běhu, pro což byly do networkctl přidány příkazy «reload» a «reconfigure DEVICE…» pro znovu načtení nastavení a přikonfigurování zařízení;
- V systemd-networkd bylo zastaveno vytváření výchozích tras pro místní linky IPv4 s intranetovými adresami 169.254.0.0/16 (). Dříve automatické vytváření výchozích tras pro podobné odkazy vedlo k nepředvídatelnému chování a problémům s trasováním v některých případech. Pro návrat k předchozímu chování by měla být použita konfigurace „DefaultRouteOnDevice=yes“. Podobně bylo zrušeno přidělování lokálních IPv6 adres, pokud není lokální trasování IPv6 pro odkaz povoleno;
- V systemd-networkd, při připojení k bezdrátovým sítím v ad-hoc režimu, je ve výchozím nastavení realizováno použití konfigurace s lokální adresací pro odkaz (link-local);
- Byly přidány parametry RxBufferSiz a TxBufferSize pro nastavení velikosti přijímacího a odesílacího bufferu síťového rozhraní;
- V systemd-networkd bylo implementováno vyhlašování dalších IPv6 tras, regulované prostřednictvím možností Route a LifetimeSec v sekci „[IPv6RoutePrefix]“;
- V systemd-networkd byla přidána možnost nastavení tras „next hop“ pomocí možností „Gateway“ a „Id“ v sekci „[NextHop]“;
- V systemd-networkd a networkctl pro DHCP bylo zajištěno aktualizování vazeb IP adres (leases) za běhu, realizované příkazem ‘networkctl renew’;
- systemd-networkd zajišťuje reset konfigurace DHCP při restartu (pro uchování nastavení by měl být použit parametr KeepConfiguration). Výchozí hodnota nastavení SendRelease byla změněna na „true“;
- V klientu DHCPv4 bylo zajištěno používání hodnoty volby OPTION_INFORMATION_REFRESH_TIME, předané serverem. Pro dotaz na specifické volby serveru byl navržen parametr „RequestOptions“, a pro odeslání voleb serveru — „SendOption“. Pro nastavení typu IP služby DHCP klientem byl přidán parametr „IPServiceType“;
- Pro substituci seznamu SIP (Session Initiation Protocol) serverů DHCPv4 byly přidány parametry „EmitSIP“ a „SIP“. Na straně klienta může být příjem parametrů SIP ze serveru povolen pomocí nastavení „UseSIP=yes“;
- V klientovi DHCPv6 byl přidán parametr „PrefixDelegationHint“ pro dotaz na adresní prefix;
- Ve souborech .network byla zabezpečena podpora mapování bezdrátových sítí podle SSID a BSSID, například pro vazbu na název přístupového bodu a MAC adresu. Hodnoty SSID a BSSID se zobrazují ve výstupu networkctl pro bezdrátová rozhraní. Dále byla přidána možnost mapování podle typu bezdrátové sítě (parametr WLANInterfaceType);
- V systemd-networkd byla přidána možnost konfigurace disciplín organizace front pro správu provozu pomocí nových parametrů Parent,
NetworkEmulatorDelaySec, NetworkEmulatorDelayJitterSec,
NetworkEmulatorPacketLimit a NetworkEmulatorLossRate,
NetworkEmulatorDuplicateRate v sekci „[TrafficControlQueueingDiscipline]“; - V systemd-resolved je zajištěna kontrola IP adres v certifikátech při sestavení s GnuTLS.
Změny související s udev:
- V systemd-udevd byl odstraněn 30sekundový časový limit pro vynucené ukončení visících zpracovatelů. Systemd-udevd nyní čeká na dokončení práce zpracovatelů, u kterých 30 sekund nebylo dostatečné pro normální dokončení operací ve velkých instalacích (například časový limit mohl přerušit inicializaci ovladače při přepínání připojeného oddílu pro kořenový FS). Při použití systemd může být časový limit, který systemd-udevd bude čekat před odchodem, určen prostřednictvím nastavení TimeoutStopSec v systemd-udevd.service. Při spuštění bez systemd je časový limit regulován parametrem udev.event_timeout;
- Pro udev byla přidána program fido_id, který identifikuje tokeny FIDO CTAP1
(„U2F")/CTAP2 na základě údajů o jejich předchozím používání a vydává potřebné proměnné prostředí (program umožňuje obejít se bez externích bílých seznamů všech známých tokenů, které byly použity dříve); - Byla implementována automatická generace udev pravidel autosuspend pro zařízení z bílého seznamu importovaného z Chromium OS (změna umožňuje rozšířit použití energeticky úsporných režimů pro další zařízení);
- Do udev byla přidána nová konfigurace „CONST{key}=value“, která umožňuje přímo provádět přiřazení hodnot systémových konstant bez spuštění jednotlivých zpracovatelů pro ověření. V současné době jsou podporovány pouze klíče „arch“ a „virt“;
- Je zajištěno otevření CDROM v neexkluzivním režimu při provádění operace požadavku podporovaných režimů (změna řeší problémy s přístupem programů k CDROM a snižuje riziko přerušení programů pro zápis na disk, které nepoužívají exkluzivní režim přístupu).
Zdroj: opennet.ru
