Na negen maanden ontwikkeling is de release van de systeembeheerder systemd 258 gepresenteerd. Belangrijke wijzigingen: ondersteuning voor cgroups v1 en systeemcomponenten in System V-stijl is beëindigd, nieuwe hulpprogramma's systemd-factory-reset en systemd-pty-forward, het concept van thuiskamers, ondersteuning voor opstarten vanuit een schijfimago, verkregen via HTTP.
Onder de veranderingen in de nieuwe release:
- Het hulpprogramma systemd-factory-reset is toegevoegd om een reset naar de fabrieksinstellingen te starten of ongedaan te maken bij de volgende opstart. Voor een onmiddellijke reset is de eenheid factory-reset-now.target toegevoegd. Voor reset tijdens opstarten is de kernelopdrachtregelparameter "systemd.factory_reset" toegevoegd.
- Het concept van thuiskamers (home area) is toegevoegd, waarmee submappen binnen de hoofd thuismap ($HOME) kunnen worden gedefinieerd, waarin een gebruiker apart kan inloggen om in verschillende werkruimten te werken. Voor één gebruiker kunnen aparte gebieden worden gemaakt voor het testen van instellingen en voor ontwikkeling (~\/Areas\/foo en ~\/Areas\/bar). Om bij een extra gebied in te loggen, moet de naam van het gebied bij de inlognaam worden opgegeven, gescheiden door het teken "%" ("username%foo") of gebruik de run0-hulpprogramma met de optie "—area". Ondersteuning voor thuiskamers is momenteel alleen geïmplementeerd in systemd-homed en is niet beschikbaar voor volledige grafische sessies.
- Aan de kernelparameters "systemd.pull" en "rd.systemd.pull", die worden gebruikt voor automatische opstart, virtuele machines, containers of uitbreidingsafbeeldingen (sysext, confext) is de vlag "blockdev" toegevoegd. Wanneer deze vlag wordt opgegeven, wordt de geladen afbeelding gekoppeld aan een loopback-apparaat, waardoor rechtstreeks kan worden opgestart in een schijfafbeelding, verkregen via HTTP. Bijvoorbeeld: 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
- Het hulpprogramma systemd-pty-forward is toegevoegd waarmee een pseudoterminal ("PTY") kan worden gemaakt en een proces daarop kan worden uitgevoerd, waarbij elke uitvoer naar de originele terminal wordt doorgeleid, waarop het hulpprogramma is gestart.
- De code die ondersteuning voor cgroups v1 bood, is verwijderd.
- System componenten in System V-stijl zijn verwijderd, zoals de hulpprogramma's itctl, runlevel en telinit, het apparaat \/dev\/initctl, het concept van opstartniveaus (runlevel), unit-bestanden runlevel[0-6].target en de mogelijkheid om de status te beheren met het init-commando. Het verwijderen van de ondersteuning voor System V-service-scripts is gepland voor de volgende release.
- De minimale vereisten voor de Linux-kernelversie zijn verhoogd naar release 5.4 (versie 5.7 wordt aanbevolen).
- De toegangsrechten voor tty/pts-apparaten zijn veranderd van 0620 (-rw—w—-) naar 0600 (-rw——-) om andere gebruikers in dezelfde groep te verhinderen schijven in iemands terminal te maken. Om het oude gedrag bij het compileren te herstellen, kan de optie ‘-Dtty-mode=0620’ worden gebruikt.
- In systemd-resolved en systemd-importd is de ondersteuning voor de GnuTLS- en libgcrypt-bibliotheken stopgezet, waarbij alleen OpenSSL als cryptobackend is behouden.
- Ondersteuning voor de voorwaarde 'ConditionKernelModuleLoaded' is toegevoegd aan de eenheidsbestanden om te controleren of een bepaald kernelmodule is geladen. De voorwaarde 'ConditionKernelVersion' is vervangen door een algemenere constructie 'ConditionVersion', waarmee naast de kernel ook de versies van systemd en glibc kunnen worden gecontroleerd.
- Ondersteuning voor gebruikersquota is ingeschakeld voor de /tmp/ sectie, geplaatst in tmpfs, en voor /dev/shm/.
- Voor slice-units die worden gebruikt om het systeem in delen te splitsen (app.slice, background.slice, session.slice) met het doel hulpbronnen tussen verschillende gebruikersservices te isoleren, zijn de instellingen ConcurrencySoftMax en ConcurrencyHardMax geïmplementeerd voor het beheren van het aantal gelijktijdig actieve units. De toegevoegde mogelijkheden kunnen worden gebruikt als een mechanisme voor het beheren van de uitvoering van taken met inachtneming van het hulpbronnenverbruik, met ondersteuning voor hiërarchische arbeidspools.
- De instelling ExecStart heeft ondersteuning gekregen voor de prefix ‘|’, die de uitvoer via de command interpreter bepaalt.
- Een API op basis van het Varlink-protocol is gerealiseerd, die kan worden toegepast voor het bepalen van de huidige status, de lijst van units en de status van de units.
- Een aanvullende map met presets voor systeemservices die in initrd worden uitgevoerd, is toegevoegd, waardoor het mogelijk is om het inschakelen van systeemservices voor de host en initrd te scheiden.
- De mogelijkheid om quota aan specifieke services te koppelen is toegevoegd met behulp van de instellingen StateDirectoryQuota, StateDirectoryAccounting, CacheDirectoryQuota, CacheDirectoryAccounting, LogsDirectoryQuota en LogsDirectoryAccounting.
- In systemd-udevd is ondersteuning toegevoegd voor de eigenschappen ID_NET_BRING_UP_BEFORE_JOINING_BRIDGE, ID_NET_NAME_INCLUDE_DOMAIN, ID_AV_LIGHTS. Een nieuwe parameter is toegevoegd aan de kernel build configuration 'udev.trace' en de optie '--traceu' in de devadm utility voor het traceren van de werking van udev tijdens de opstart en operationele fase. De udevadm utility heeft het commando 'cat' gekregen om de inhoud van geïnstalleerde regelbestanden weer te geven. Automatische labeling van debugging USB-interface van Android (ADB DbC, ADB, Fastboot) voor toegang door niet-bevoegde gebruikers is gewaarborgd.
- In systemd-networkd zijn de instellingen IPv4DuplicateAddressDetectionTimeoutSec, UseSIP toegevoegd in de sectie '[DHCPv6]', MPLSRouting in de sectie '[Network]', Preference in de sectie '[IPv6RoutePrefix]', LinkLocalLearning, Locked, MACAuthenticationBypass en VLANTunnel in de sectie '[Bridge]'. De DHCPv4 client heeft ondersteuning gekregen voor het BOOTP-protocol.
- In systemd-logind zijn nieuwe sessieklassen toegevoegd: 'none' voor het uitschakelen van het aanmaken van sessies; 'user-light' en 'user-early-light' voor het aanmaken van gebruikerssessies zonder activatie voor de service manager gebruiker (voor niet-interactieve sessies).
- In systemd-resolved is ondersteuning toegevoegd voor delegatiezones ('delegate zone'), die het mogelijk maken om DNS-verzoeken voor specifieke domeinen te routeren via opgegeven. servers DNS. Er is ondersteuning verleend voor het gelijktijdig verzenden van DNS-query's voor A en AAAA records voor één domein. In resolved.conf is de instelling RefuseRecordTypes toegevoegd voor het definiëren van geblokkeerde recordtypes, bijvoorbeeld voor het blokkeren van 'A' records op hosts die alleen IPv6 ondersteunen.
- De 'systemctl start' command heeft de optie '--verbose' toegevoegd voor het weergeven van de log van de eenheden waarop de operatie wordt uitgevoerd.
- In systemd-boot is ondersteuning toegevoegd voor twee nieuwe specificaties van bootloaders — 'uki' en 'uki-url'. In het tweede geval is de mogelijkheid geïmplementeerd om een UKI-afbeelding vanaf een externe host te laden via het HTTP-protocol. Er is de mogelijkheid toegevoegd om UEFI firmware-afbeeldingen in UKI (Unified Kernel Image) afbeeldingen in te voegen. In loader.conf is de instelling 'reboot-on-error' toegevoegd om de acties (herstarten of het weergeven van het opstartmenu) in geval van een fout in de geselecteerde opstartpositie te bepalen.
- In systemd-nspawn is ondersteuning toegevoegd voor het niet-bevoegd uitvoeren van containerafbeeldingen, die zijn opgeslagen in gewone directories.
- In systemd-importd is ondersteuning toegevoegd voor afbeeldingen die zijn gecomprimeerd met het zstd-algoritme (naast .xz, .gz en .bz2).
- Er zijn commando-lijnparameters «systemd.break» en «rd.systemd.break» toegevoegd, waarmee interactieve onderbrekingspunten kunnen worden ingevoegd die de opstart onderbreken op bepaalde momenten. Er zijn vier onderbrekingspunten beschikbaar: «pre-udev», «pre-basic», «pre-mount» en «pre-switch-root».
- In de volgende release is het beëindigen van de ondersteuning voor de map /run/lock/ en het pakketfilter iptables gepland (in systemd-networkd en systemd-nspawn blijft alleen ondersteuning voor nftables). Ook worden de vereisten voor de minimale versies verhoogd: Linux-kernel 5.10, glibc 2.34, openssl 3.0.0, python 3.9.0.
Bron: opennet.ru
