Po devíti měsících vývoje byl vydán systémový správce systemd 258. Klíčové změny: ukončení podpory cgroups v1 a komponent systémového managementu ve stylu System V, nové utility systemd-factory-reset a systemd-pty-forward, koncept domácích oblastí a podpora zavádění z diskového obrazu získaného prostřednictvím HTTP.
Mezi změnami v novém vydání:
- Byla přidána utility systemd-factory-reset pro iniciaci nebo zrušení resetování nastavení do továrního stavu (factory reset) při dalším spuštění. Pro okamžité resetování byla přidána jednotka factory-reset-now.target. Pro resetování během zavádění byla přidána volba příkazového řádku jádra „systemd.factory_reset“.
- Byl přidán koncept domácích oblastí (home area), který umožňuje určovat podadresáře uvnitř hlavního domácího adresáře ($HOME), do kterých se může uživatel přihlašovat pro práci v různých pracovních prostorech. Například pro jednoho uživatele lze vytvořit oddělené oblasti pro testování nastavení a pro vývoj (~ /Areas/foo a ~ /Areas/bar). Aby se uživatel připojil k dodatečné oblasti při přihlášení, musí uvést název oblasti v loginu, oddělený znakem „%“ („username%foo“), nebo využít utility run0 s volbou „—area“. Podpora domácích oblastí je zatím implementována pouze v systemd-homed a není dostupná pro plné grafické seance.
- Do voleb příkazového řádku jádra „systemd.pull“ a „rd.systemd.pull“, používaných pro automatické zavádění virtuálních strojů, kontejnerů nebo rozšiřujících obrazů (sysext, confext), byla přidána vlajka „blockdev“. Pokud je tato vlajka určena, připojený obraz se připojuje k zařízení loopback, což umožňuje přímo zavádět do diskového obrazu získaného prostřednictvím HTTP. Například: rd.systemd.pull=raw,machine,verify=no,blockdev:image:https://192.168.100.1:8081/image.raw \ root=/dev/disk/by-loop-ref/image.raw-part2
- Byla přidána utility systemd-pty-forward, pomocí které lze vytvořit pseudoterminál („PTY“) a spustit na něm proces, přesměrovávající jakýkoli výstup na původní terminál, na kterém byla utility spuštěna.
- Byl odstraněn kód, který zajišťoval podporu cgroups v1.
- Byly odstraněny komponenty systémového managementu ve stylu System V, jako jsou utility itctl, runlevel a telinit, zařízení /dev/initctl, koncept úrovní spuštění (runlevel), unit files runlevel[0-6].target a možnost řídit stav prostřednictvím příkazu init. Odstranění podpory skriptů služeb System V je plánováno na další vydání.
- Minimální požadavky na verzi jádra Linux byly zvýšeny na vydání 5.4 (doporučuje se verze 5.7).
- Práva k přístupu k zařízením tty/pts byla změněna z 0620 (-rw—w—-) na 0600 (-rw——-) za účelem zákazu zápisu do cizího terminálu jiným uživatelům se stejnou skupinou. Pro návrat ke starému chování při sestavování lze použít volbu ‘-Dtty-mode=0620’.
- Ve systemd-resolved a systemd-importd byla ukončena podpora knihoven GnuTLS a libgcrypt, jako kryptografický backend zůstává pouze OpenSSL.
- Do unit-souborů byla přidána podpora podmínky „ConditionKernelModuleLoaded“ pro kontrolu načtení určitého modulu jádra. Podmínka „ConditionKernelVersion“ byla nahrazena obecnější konstrukcí „ConditionVersion“, pomocí které lze kromě jádra kontrolovat také verze systemd a glibc.
- Byla přidána podpora uživatelských kvót pro oddíl /tmp/, umístěný v tmpfs, a pro /dev/shm/.
- Pro slice jednotky, které se používají k rozdělení systému na části (app.slice, background.slice, session.slice) za účelem izolace zdrojů mezi různými uživatelskými službami, byly implementovány nastavení ConcurrencySoftMax a ConcurrencyHardMax pro řízení počtu současně aktivních jednotek. Přidané možnosti lze použít jako mechanismus pro řízení spouštění úloh s ohledem na spotřebu zdrojů, podporující hierarchické pooly úloh.
- Do nastavení ExecStart byla přidána podpora prefixu ‘|’, který určuje spuštění skrze příkazový interpret.
- Bylo implementováno API založené na protokolu Varlink, které lze použít k určení aktuálního stavu, seznamu jednotek a stavu jednotek.
- Byl přidán dodatečný adresář s přednastaveními („preset“) pro systémové služby prováděné v initrd, což umožňuje oddělit zapnutí systémových služeb pro hostitele a initrd.
- Byla přidána možnost přiřazení kvót k jednotlivým službám, pomocí nastavení StateDirectoryQuota, StateDirectoryAccounting, CacheDirectoryQuota, CacheDirectoryAccounting, LogsDirectoryQuota a LogsDirectoryAccounting.
- Do systemd-udevd byla přidána podpora vlastností ID_NET_BRING_UP_BEFORE_JOINING_BRIDGE, ID_NET_NAME_INCLUDE_DOMAIN, ID_AV_LIGHTS. Byla přidána volba ‚udev.trace‘ pro kompilaci jádra a možnost ‚—traceu‘ v nástroji devadm pro sledování logiky udev během bootování a v průběhu běhu. Do nástroje udevadm byla přidána příkaz ‚cat‘ pro zobrazení obsahu instalačních souborů s pravidly. Byla zajištěna automatická anotace debuggingových USB rozhraní Android (ADB DbC, ADB, Fastboot) pro přístup neprivilegovaných uživatelů.
- Do systemd-networkd byly přidány volby IPv4DuplicateAddressDetectionTimeoutSec, UseSIP v sekci ‚[DHCPv6]‘, MPLSRouting v sekci ‚[Network]‘, Preference v sekci ‚[IPv6RoutePrefix]‘, LinkLocalLearning, Locked, MACAuthenticationBypass a VLANTunnel v sekci ‚[Bridge]‘. Klient DHCPv4 nyní podporuje protokol BOOTP.
- Do systemd-logind byly přidány nové třídy sezení: ‚none‘ pro deaktivaci vytváření sezení; ‚user-light‘ a ‚user-early-light‘ pro vytváření uživatelských sezení bez aktivace pro uživatele správce služeb (pro neinteraktivní sezení).
- Do systemd-resolved byla přidána podpora delegačních zón („delegate zone“), které umožňují směrovat DNS dotazy pro určité domény prostřednictvím stanovených. servery DNS. Byla zajištěna odesílání paralelních dotazů na DNS záznamy A a AAAA pro jednu doménu. Do resolved.conf byla přidána volba RefuseRecordTypes pro definici blokovaných typů záznamů, například pro blokaci záznamů ‚A‘ na hostech pouze s IPv6.
- K příkazu ‚systemctl start‘ byla přidána volba ‚—verbose‘ pro zobrazení logu operací jednotek, nad kterými je operace prováděna.
- Do systemd-boot byla přidána podpora dvou nových specifikací bootloaderů — ‚uki‘ a ‚uki-url‘. V druhém případě byla implementována možnost načítat obraz UKI z externího hostitele prostřednictvím protokolu HTTP. Byla přidána možnost vkládat obrazy UEFI firmware do obrazů UKI (Unified Kernel Image). Do loader.conf byla přidána volba ‚reboot-on-error‘ pro určení akcí (restartovat nebo zobrazit bootovací menu) v případě selhání zvolené bootovací pozice.
- Do systemd-nspawn byla přidána podpora neprivilegovaného spouštění obrazů kontejnerů, uložených v běžných adresářích.
- Do systemd-importd byla přidána podpora obrazů komprimovaných algoritmem zstd (kromě .xz, .gz a .bz2).
- Byly přidány parametry příkazového řádku jádra „systemd.break“ a „rd.systemd.break“, které umožňují vkládat interaktivní body záchrany, přerušující zavádění v určených momentech. K dispozici jsou čtyři body záchrany: „pre-udev“, „pre-basic“, „pre-mount“ a „pre-switch-root“.
- V příští verzi se plánuje ukončení podpory adresáře /run/lock/ a filtrování paketů iptables (v systemd-networkd a systemd-nspawn zůstane pouze podpora nftables). Také se plánuje zvýšení požadavků na minimální verze: Linux jádro 5.10, glibc 2.34, openssl 3.0.0, python 3.9.0.
Zdroj: opennet.ru
