Na vijf maanden van ontwikkeling is de release van de systeembeheerder systemd 251 gepresenteerd.
Belangrijkste wijzigingen:
- De systeemeisen zijn verhoogd. De minimale ondersteunde versie van de Linux-kernel is verhoogd van 3.13 naar 4.15. Voor de werking is een CLOCK_BOOTTIME-timer vereist. Voor de compilatie is een compiler nodig die voldoet aan de C11-standaard en GNU-extensies (de standaard C89 wordt nog steeds gebruikt voor headerbestanden).
- Er is een experimentele tool systemd-sysupdate toegevoegd voor de automatische detectie, download en installatie van updates met behulp van een atomair mechanisme voor het vervangen van partities, bestanden of mappen (er worden twee onafhankelijke partities/bestanden/mappen gebruikt, waarvan de ene de huidige werkende bron bevat en op de andere het volgende update wordt geĆÆnstalleerd, waarna de partities/bestanden/mappen worden gewisseld).
- Er is een nieuwe interne gedeelde bibliotheek libsystemd-core-.so gepresenteerd, die wordt geĆÆnstalleerd in de map /usr/lib/systemd/system en overeenkomt met de bestaande bibliotheek libsystemd-shared-.so. Het gebruik van de gedeelde bibliotheek libsystemd-core-.so vermindert de totale installatiediameter door hergebruik van binaire code. Het versienummer kan worden opgegeven via de parameter āshared-lib-tagā in het build-systeem meson, en stelt distributies in staat om tegelijkertijd meerdere versies van deze bibliotheken te leveren.
- De overdracht van omgevingsvariabelen $MONITOR_SERVICE_RESULT, $MONITOR_EXIT_CODE, $MONITOR_EXIT_STATUS, $MONITOR_INVOCATION_ID en $MONITOR_UNIT naar de handlers OnFailure/OnSuccess is geĆÆmplementeerd met informatie over de geobserveerde eenheid.
- Voor units is de configuratie ExtensionDirectories geĆÆmplementeerd, die kan worden gebruikt om de laadcomponenten van het systeem (System Extension) uit gewone mappen in plaats van schijfimages te organiseren. De inhoud van de uitbreidingsmap wordt toegepast via OverlayFS en wordt gebruikt om de directorystructuur /usr/ en /opt/ uit te breiden, en om extra bestanden tijdens runtime toe te voegen, zelfs als de opgegeven mappen in alleen-lezen modus zijn gemonteerd. De opdracht āportablectl attach āextension=ā ondersteunt ook de opgave van de map.
- Voor units die geforceerd zijn beĆ«indigd door de handler systemd-oomd vanwege gebrek aan geheugen in het systeem, is de overdracht van de āoom-killā-indicatie en weergave in de eigenschap āuser.oomd_oomsā van het aantal geforceerde beĆ«indigingen verzekerd.
- Voor unit's zijn nieuwe pad-specifiers %y/%Y toegevoegd, die het genormaliseerde pad naar de unit weerspiegelen (met het uitbreiden van symbolische links). Ook zijn de specifiers %q toegevoegd voor de substitutie van de waarde PRETTY_HOSTNAME en %d voor de substitutie van CREDENTIALS_DIRECTORY.
- In niet-priviliegerende services die door een normale gebruiker worden uitgevoerd met de vlag "--user", is het nu toegestaan om instellingen te wijzigen van RootDirectory, MountAPIVFS, ExtensionDirectories, *Capabilities*, ProtectHome, *Directory, TemporaryFileSystem, PrivateTmp, PrivateDevices, PrivateNetwork, NetworkNamespacePath, PrivateIPC, IPCNamespacePath, PrivateUsers, ProtectClock, ProtectKernelTunables, ProtectKernelModules, ProtectKernelLogs en MountFlags. Deze mogelijkheid is alleen beschikbaar als de user namespaces in het systeem zijn ingeschakeld.
- In de LoadCredential-instelling is het toegestaan om de naam van de map als argument op te geven; in dat geval wordt geprobeerd om inloggegevens uit alle bestanden in de opgegeven map te laden.
- In systemctl is de mogelijkheid toegevoegd om in het "--timestamp"-argument de vlag "unix" op te geven om de tijd in epoch-formaat te tonen (aantal seconden sinds 1 januari 1970).
- In "systemctl status" is de vlag "old-kernel" geĆÆmplementeerd, die wordt weergegeven als de kernel die in de sessie is geladen een oudere versienummer heeft dan de basiskernel die in het systeem beschikbaar is. Ook is de vlag "unmerged-usr" toegevoegd om aan te geven dat de inhoud van de mappen /bin/ en /sbin/ niet is gevormd via symbolische links naar /usr.
- Voor processen die worden uitgevoerd door PID 1-generators zijn nieuwe omgevingsvariabelen $SYSTEMD_SCOPE (uitgevoerd vanuit een systeem- of gebruikersservice), $SYSTEMD_IN_INITRD (uitgevoerd vanuit initrd of hostomgeving), $SYSTEMD_FIRST_BOOT (indicator voor de eerste opstart), $SYSTEMD_VIRTUALIZATION (aanwezigheid van virtualisatie of uitvoering in een container) en $SYSTEMD_ARCHITECTURE (architectuur waarvoor de kernel is samengesteld).
- In de handler PID 1 is de mogelijkheid geĆÆmplementeerd om parameters voor systeemcredentials te laden vanuit de QEMU-interface fw_cfg of via het opgeven van de kernelopdrachtregelparameter systemd.set_credential. In de LoadCredential-instructie wordt automatisch gezocht naar inloggegevens in de mappen /etc/credstore/, /run/credstore/ en /usr/lib/credstore/, als een relatieve pad is opgegeven als argument. Een soortgelijk gedrag is toegepast voor de LoadCredentialEncrypted-instructie, waarbij ook de mappen /etc/credstore.encrypted/, /run/credstore.encrypted/ en /usr/lib/credstore.encrypted/ worden gecontroleerd.
- In systemd-journald is de mogelijkheid om te exporteren in JSON-formaat gestabiliseerd. In de commando's "journalctl --list-boots" en "bootctl list" is ondersteuning toegevoegd voor uitvoer in JSON-formaat (vlag "--json").
- In udev zijn nieuwe bestanden met databases hwdb toegevoegd, die informatie bevatten over draagbare apparaten (PDA's, rekenmachines, enz.) en apparaten die worden gebruikt voor het maken van geluid en video (DJ-mixers, keypads).
- In udevadm zijn nieuwe opties toegevoegd: "--prioritized-subsystem" voor het instellen van de prioriteit van subsystems (gebruikt in systemd-udev-trigger.service om blokapparaten en TPM als eerste te verwerken), "--type=all", "--initialized-match" en "--initialized-nomatch" voor het selecteren van geïnitialiseerde of niet-geïnitialiseerde apparaten, en "udevadm info --tree" voor het tonen van de boomstructuur van objecten in de hiërarchie /sys/. Daarnaast zijn nieuwe commando's "wait" en "lock" aan udevadm toegevoegd om te wachten op de opname van een apparaat in de database en om het blokapparaat te vergrendelen tijdens het formatteren of het schrijven van de partitie-indeling.
- Een nieuwe set symlink-verbindingen naar apparaten /dev/disk/by-diskseq/ is toegevoegd om blokapparaten te identificeren op volgorde van nummer ("diskseq").
- In .link-bestanden in de sectie [Match] is ondersteuning toegevoegd voor de parameter "Firmware" om het apparaat te koppelen aan een string met de beschrijving van de firmware.
- In systemd-networkd voor unicast-routes die zijn ingesteld via de sectie [Route], is de standaardwaarde van scope veranderd naar "link" om overeen te komen met het gedrag van het commando "ip route". In de sectie [Bridge] is de parameter Isolated=true|false toegevoegd voor het instellen van de overeenkomstige netwerkbrug-attribuut in de kernel. In de sectie [Tunnel] is de parameter External toegevoegd voor het instellen van een tunnel van het type extern (metadata-verzamelmodus). In de sectie [DHCPServer] zijn de parameters BootServerName, BootServerAddress en BootFilename toegevoegd voor het instellen van het IP-adres van de server, de naam van de server en de naam van het opstartbestand dat wordt verzonden server door DHCP bij het opstarten in PXE-modus. In de sectie [Network] is de parameter L2TP verwijderd, waarvoor in .netdev-bestanden nu de nieuwe instelling Local kan worden gebruikt in samenhang met de L2TP-interface.
- Een nieuwe eenheid "systemd-networkd-wait-online@.service" is toegevoegd, die kan worden gebruikt om te wachten op de activatie van een bepaald netwerkinterface.
- De mogelijkheid om .netdev-bestanden te gebruiken voor het creëren van virtuele WLAN-apparaten is geïmplementeerd, waarvoor de sectie [WLAN] is voorgesteld.
- In de .link/.network-bestanden is er in de sectie [Match] een parameter Kind geĆÆmplementeerd voor aansluiting op het apparaattype ("bond", "bridge", "gre", "tun", "veth").
- De opstart van systemd-resolved is verzekerd in een eerdere fase van het opstarten, inclusief de opstart vanuit initrd indien systemd-resolved aanwezig is in het initrd-image.
- In systemd-cryptenroll is de optie āfido2-credential-algorithm toegevoegd voor het selecteren van het encryptie-algoritme van de referenties en de optie ātpm2-with-pin voor het beheren van de invoer van de PIN-code bij het ontgrendelen van de partitie met behulp van TPM. Een soortgelijke optie tpm2-pin is toegevoegd in /etc/crypttab. Bij het ontgrendelen van apparaten via TPM is encryptie van de parameters gegarandeerd voor bescherming tegen afluisteren van encryptiesleutels.
- In systemd-timesyncd is een D-Bus API toegevoegd voor dynamische informatieverkrijging van de NTP-server via IPC.
- Voor het bepalen van de noodzaak voor kleuruitvoer in alle commando's is er een controle van de omgevingsvariabele COLORTERM geĆÆmplementeerd, naast de eerder gecontroleerde NO_COLOR, SYSTEMD_COLORS en TERM.
- In het build-systeem Meson is de optie install_tag geĆÆmplementeerd voor selectieve opbouw en installatie van benodigde componenten: pam, nss, devel (pkg-config), systemd-boot, libsystemd, libudev. Een build-optie default-compression is toegevoegd voor het kiezen van het compressie-algoritme voor systemd-journald en systemd-coredump.
- In sd-boot is in loader.conf een experimentele instelling 'reboot-for-bitlocker' toegevoegd voor het opstarten van Microsoft Windows met BitLocker TPM.
Bron: opennet.ru
