Efter fem måneders udvikling er systemadministratoren systemd 251 blevet frigivet.
Vigtige ændringer:
- Systemkravene er blevet opdateret. Den mindste understøttede Linux-kerneversion er steget fra 3.13 til 4.15. Der kræves en CLOCK_BOOTTIME-timer for at fungere. En kompilator med støtte til C11-standarden og GNU-udvidelser er nødvendig for kompilering (standard C89 anvendes stadig til headerfiler).
- Der er tilføjet et eksperimentelt værktøj, systemd-sysupdate, til automatisk at identificere, downloade og installere opdateringer ved hjælp af en atomar mekanisme til udskiftning af partitioner, filer eller kataloger (to uafhængige partitioner/filer/kataloger bruges, hvor den ene indeholder den aktuelle aktive ressource, og den anden installerer den næste opdatering, hvorefter partitionerne/filerne/katalogerne byttet om).
- En ny intern delt biblioteksfil libsystemd-core-.so er blevet præsenteret, som installeres i katalogen /usr/lib/systemd/system og svarer til det eksisterende bibliotek libsystemd-shared-.so. Brug af det delte bibliotek libsystemd-core-.so muliggør reduktion af den samlede installationsstørrelse ved at genbruge binærkode. Versionsnummeret kan angives ved hjælp af parameteren 'shared-lib-tag' i bygningssystemet meson og gør det muligt for distributioner at levere flere versioner af disse biblioteker samtidig.
- Overførslen af miljøvariablerne $MONITOR_SERVICE_RESULT, $MONITOR_EXIT_CODE, $MONITOR_EXIT_STATUS, $MONITOR_INVOCATION_ID og $MONITOR_UNIT til OnFailure/OnSuccess-handlinger er blevet implementeret for at give information om den overvågede enhed.
- For units er der implementeret en konfiguration af ExtensionDirectories, som kan bruges til at organisere indlæsning af systemudvidelseskspomenter fra almindelige kataloger snarere end diskbilleder. Indholdet af systemudvidelseskataloget pålægges via OverlayFS og anvendes til at udvide kataloghierarkiet /usr/ og /opt/ samt tilføje ekstra filer under drift, selv når de angivne kataloger er monteret i skrivebeskyttet tilstand. Kommandoen ‘portablectl attach —extension=’ har også fået indarbejdet støtte til at angive et katalog.
- For enheder, der blev tvungen afsluttet af systemd-oomd på grund af hukommelsesmangel i systemet, er der sikret overførsel af flaget ‘oom-kill’ og repræsentation i attributten ‘user.oomd_ooms’ af antallet af tvangsafslutninger.
- Der er tilføjet nye stispecifikatorer %y/%Y for enheder, som viser den normaliserede sti til enheden (inklusive opløst symbolsk link). Specifikatorerne %q til at indsætte værdien PRETTY_HOSTNAME og %d til at indsætte CREDENTIALS_DIRECTORY er også blevet tilføjet.
- I ikke-privilegerede tjenester, der kører under en almindelig bruger med flaget '—user', er det tilladt at ændre indstillingerne RootDirectory, MountAPIVFS, ExtensionDirectories, *Capabilities*, ProtectHome, *Directory, TemporaryFileSystem, PrivateTmp, PrivateDevices, PrivateNetwork, NetworkNamespacePath, PrivateIPC, IPCNamespacePath, PrivateUsers, ProtectClock, ProtectKernelTunables, ProtectKernelModules, ProtectKernelLogs og MountFlags. Denne mulighed er kun tilgængelig, når systemet har aktiveret bruger-id-rum (user namespaces).
- I LoadCredential-konfigurationen er det tilladt at angive navnet på en mappe som argument; i dette tilfælde forsøges det at indlæse legitimationsoplysninger fra alle filer i den angivne mappe.
- I systemctl er der tilføjet en mulighed for flaget '—timestamp' til at angive flaget 'unix' for at vise tiden i epoch-format (antal sekunder siden 1. januar 1970).
- I 'systemctl status' er flaget 'old-kernel' implementeret, som vises, hvis kernen, der er indlæst i sessionen, har et ældre versionsnummer end den basekerne, der er tilgængelig i systemet. Desuden er flaget 'unmerged-usr' tilføjet for at bestemme, at indholdet af mapperne /bin/ og /sbin/ ikke er dannet via symbolske links til /usr.
- Der er tilføjet nye miljøvariabler for processer, der kører som PID 1, $SYSTEMD_SCOPE (kørsel fra system- eller brugerservice), $SYSTEMD_IN_INITRD (kørsel fra initrd eller værtsmiljø), $SYSTEMD_FIRST_BOOT (indikator for første opstart), $SYSTEMD_VIRTUALIZATION (om der er virtualisering eller kørsel i container) og $SYSTEMD_ARCHITECTURE (arkitektur, som kernen er bygget til).
- I PID 1-håndteringen er muligheden for at indlæse systemlegitimationsparametre fra QEMU-grænsefladen fw_cfg eller ved at angive systemd.set_credential som parameter på kernelens kommandolinje implementeret. I LoadCredential-direktivet er der tilvejebragt automatisk søgning efter legitimationsoplysninger i mapperne /etc/credstore/, /run/credstore/ og /usr/lib/credstore/, hvis en relativ sti er angivet som argument. Den samme opførsel anvendes for direktivet LoadCredentialEncrypted, hvor der desuden kontrolleres mapperne /etc/credstore.encrypted/, /run/credstore.encrypted/ og /usr/lib/credstore.encrypted/.
- I systemd-journald er muligheden for eksport i JSON-format stabiliseret. I kommandoerne «journalctl —list-boots» og «bootctl list» er der tilføjet support for output i JSON-format (flaget «—json»).
- Der er tilføjet nye filer med hwdb-databaser i udev, som indeholder oplysninger om bærbare enheder (PDA'er, lommeregnere osv.) og enheder anvendt i lyd- og videoproduktion (DJ-mixer, keyboard).
- I udevadm er der tilføjet nye indstillinger «—prioritized-subsystem» til at angive prioritet for systemfølgning (brugt i systemd-udev-trigger.service til først at behandle blokenheder og TPM), «—type=all», «—initialized-match» og «—initialized-nomatch» til at vælge initialiserede eller ikke-initialiserede enheder, «udevadm info —tree» til at vise objekttræet i hierarkiet /sys/. Der er også tilføjet nye kommandoer «wait» og «lock» for at vente på, at en enhed registreres i databasen og for at låse en blokenhed under formatering eller oprettelse af partitionstabel.
- Et nyt sæt symbolske links til enheder /dev/disk/by-diskseq/<nr> er tilføjet for at identificere blokenheder efter sekvensnummer («diskseq»).
- I .link-filer i sektionen [Match] er support tilføjet for parameteren «Firmware» til at matche en enhed baseret på en streng med firmwarebeskrivelse.
- I systemd-networkd er værdien for scope for unicast-ruter, der konfigureres via sektionen [Route], ændret til «link» som standard for at matche adfærden af kommandoen «ip route». I sektionen [Bridge] er parameteren Isolated=true|false tilføjet til at konfigurere den tilsvarende egenskab for netværksbroer i kernen. I sektionen [Tunnel] er parameteren External tilføjet for at angive en tunnel af typen external (metadatainnsamlingsmodus). I sektionen [DHCPServer] er parametrene BootServerName, BootServerAddress og BootFilename tilføjet for at konfigurere serveradressen, servernavnet og navnet på opstartsfilerne, der sendes serveren til DHCP under opstart i PXE-tilstand. I sektionen [Network] er parameteren L2TP fjernet, hvorefter den nye indstilling Local kan anvendes i .netdev-filer knyttet til L2TP-interfacet.
- En ny enhed «systemd-networkd-wait-online@<interface>.service» er tilføjet, som kan bruges til at vente på, at en bestemt netværksgrænseflade er etableret.
- Muligheden for at bruge .netdev-filer til at oprette virtuelle WLAN-enheder er blevet implementeret, for hvilke sektionen [WLAN] foreslås til konfiguration.
- I .link/.network-filerne i sektionen [Match] er der implementeret en parameter Kind til matchning efter enhedstype ("bond", "bridge", "gre", "tun", "veth").
- Systemd-resolved er nu startet på et tidligere tidspunkt under boot-processen, herunder opstart fra initrd, hvis systemd-resolved er tilgængelig i initrd-billedet.
- I systemd-cryptenroll er der tilføjet en mulighed —fido2-credential-algorithm til valg af krypteringsalgoritme for legitimationsoplysninger, samt en mulighed —tpm2-with-pin til håndtering af PIN-indtastning ved oplåsning af partitioner ved hjælp af TPM. I /etc/crypttab er der tilføjet en tilsvarende tpm2-pin-option. Ved oplåsning af enheder via TPM er der sikret kryptering af parametre for at beskytte mod overvågning af krypteringsnøgler.
- Der er tilføjet et D-Bus API i systemd-timesyncd til dynamisk at hente information fra NTP-servere via IPC.
- For at bestemme behovet for farvet output i alle kommandoer er der implementeret en kontrol af miljøvariablen COLORTERM ud over de tidligere kontrollerede NO_COLOR, SYSTEMD_COLORS og TERM.
- I Meson build-systemet er der implementeret en option install_tag til selektivt at bygge og installere nødvendige komponenter: pam, nss, devel (pkg-config), systemd-boot, libsystemd, libudev. Der er tilføjet en build-option default-compression til valg af kompressionsalgoritme for systemd-journald og systemd-coredump.
- I sd-boot i loader.conf er der tilføjet en eksperimentel indstilling "reboot-for-bitlocker" til at boote Microsoft Windows med BitLocker TPM.
Kilde: opennet.ru
