Veröffentlichung des Systemmanagers systemd 251

Nach fünfmonatiger Entwicklung wurde die Version des Systemmanagers systemd 251 veröffentlicht.

Wesentliche Änderungen:

  • Die Systemanforderungen wurden erhöht. Die minimal unterstützte Linux-Kernel-Version wurde von 3.13 auf 4.15 angehoben. Ein CLOCK_BOOTTIME-Timer wird benötigt. Zum Erstellen ist ein Compiler erforderlich, der den C11-Standard und GNU-Erweiterungen unterstützt (für die Header-Dateien wird weiterhin der C89-Standard verwendet).
  • Ein experimentelles Werkzeug namens systemd-sysupdate wurde hinzugefügt, um Updates automatisch zu erkennen, herunterzuladen und zu installieren, wobei ein atomarer Mechanismus zum Ersetzen von Partitionen, Dateien oder Verzeichnissen verwendet wird (es werden zwei unabhängige Partitionen/Dateien/Verzeichnisse verwendet, von denen eines die derzeit aktive Ressource enthält und das andere das nächste Update installiert; anschließend werden die Partitionen/Dateien/Verzeichnisse getauscht).
  • Es wurde eine neue interne Shared Library libsystemd-core-.so eingeführt, die im Verzeichnis /usr/lib/systemd/system installiert wird und der vorhandenen Bibliothek libsystemd-shared-.so entspricht. Die Verwendung der Shared Library libsystemd-core-.so ermöglicht eine Reduzierung der Gesamtinstallationsgröße durch die Wiederverwendung von Binärcode. Die Versionsnummer kann über den Parameter 'shared-lib-tag' im Build-System Meson festgelegt werden, was es Distributionen ermöglicht, mehrere Versionen dieser Bibliotheken gleichzeitig bereitzustellen.
  • Es wurde die Übertragung von Umgebungsvariablen an die Handler OnFailure/OnSuccess realisiert, einschließlich $MONITOR_SERVICE_RESULT, $MONITOR_EXIT_CODE, $MONITOR_EXIT_STATUS, $MONITOR_INVOCATION_ID und $MONITOR_UNIT, die Informationen über die überwachte Einheit enthalten.
  • Für die Units wurde die Einstellung ExtensionDirectories implementiert, die zur Organisation des Ladens von Systemerweiterungs-Komponenten (System Extension) aus regulären Verzeichnissen anstelle von Disk-Images verwendet werden kann. Der Inhalt des Systemerweiterungsverzeichnisses wird mithilfe von OverlayFS auf die Verzeichnishierarchie von /usr/ und /opt/ angewendet und ermöglicht das Hinzufügen zusätzlicher Dateien zur Laufzeit, selbst wenn die angegebenen Verzeichnisse im Nur-Lese-Modus eingebunden sind. Die Befehlszeile 'portablectl attach —extension=' unterstützt nun auch die Angabe eines Verzeichnisses.
  • Für Units, die vom Systemd-OOMD-Handler aufgrund von Speichermangel in der Systemumgebung zwangsweise beendet wurden, wird das Zeichen 'oom-kill' übertragen und in dem Attribut 'user.oomd_ooms' die Anzahl der zwangsweisen Beendigungen reflektiert.
  • Neuerungen bei den Units umfassen die neuen Pfadspezifizierer %y/%Y, welche den normalisierten Pfad zur Unit (unter Berücksichtigung symbolischer Links) widerspiegeln. Zusätzlich wurden die Spezifizierer %q zur Einsetzung des Wertes PRETTY_HOSTNAME und %d zur Einsetzung von CREDENTIALS_DIRECTORY hinzugefügt.
  • In nicht privilegierten Diensten, die von einem normalen Benutzer mit dem Flag „—user“ gestartet werden, ist es erlaubt, die Einstellungen RootDirectory, MountAPIVFS, ExtensionDirectories, *Capabilities*, ProtectHome, *Directory*, TemporaryFileSystem, PrivateTmp, PrivateDevices, PrivateNetwork, NetworkNamespacePath, PrivateIPC, IPCNamespacePath, PrivateUsers, ProtectClock, ProtectKernelTunables, ProtectKernelModules, ProtectKernelLogs und MountFlags zu ändern. Diese Möglichkeit ist nur verfügbar, wenn in der Systemumgebung die Benutzer-Namensräume (user namespaces) aktiviert sind.
  • In der Einstellung LoadCredential ist es erlaubt, den Namen eines Verzeichnisses als Argument anzugeben; in diesem Fall wird versucht, die Anmeldedaten aus allen Dateien im angegebenen Verzeichnis zu laden.
  • In systemctl gibt es im Parameter „—timestamp“ die Möglichkeit, das Flag „unix“ anzugeben, um die Zeit im epochalen Format anzuzeigen (Anzahl der Sekunden seit dem 1. Januar 1970).
  • In „systemctl status“ wurde das Flag „old-kernel“ implementiert, welches angezeigt wird, wenn der im aktuellen Sitzungskernel verwendete Kernels eine ältere Versionsnummer hat als das in der System verfügbaren Basis-Kernel. Außerdem wurde das Flag „unmerged-usr“ hinzugefügt, um festzustellen, dass der Inhalt der Verzeichnisse /bin/ und /sbin/ nicht über symbolische Links auf /usr/ erstellt wurde.
  • Für von Prozess PID 1 gestartete Generatoren stehen neue Umgebungsvariablen zur Verfügung: $SYSTEMD_SCOPE (Start aus einem System- oder Benutzerdienst), $SYSTEMD_IN_INITRD (Start aus initrd oder Host-Umgebung), $SYSTEMD_FIRST_BOOT (Indikator für den ersten Start), $SYSTEMD_VIRTUALIZATION (Vorhandensein von Virtualisierung oder Start in einem Container) und $SYSTEMD_ARCHITECTURE (Architektur, für die der Kernel kompiliert wurde).
  • Im Handler PID 1 wurde die Möglichkeit implementiert, Systemanmeldeinformationen aus dem QEMU-Interface fw_cfg zu laden oder über die Angabe des Parameters systemd.set_credential in der Kernel-Befehlszeile. In der Direktive LoadCredential wird eine automatische Suche nach Anmeldeinformationen in den Verzeichnissen /etc/credstore/, /run/credstore/ und /usr/lib/credstore/ gewährleistet, wenn ein relativer Pfad als Argument angegeben wird. Ein ähnliches Verhalten gilt für die Direktive LoadCredentialEncrypted, bei der zusätzlich die Verzeichnisse /etc/credstore.encrypted/, /run/credstore.encrypted/ und /usr/lib/credstore.encrypted/ überprüft werden.
  • In systemd-journald wurde die Möglichkeit zur Exportierung im JSON-Format stabilisiert. In den Befehlen „journalctl —list-boots“ und „bootctl list“ wurde die Unterstützung für die Ausgabe im JSON-Format (Flag „—json“) hinzugefügt.
  • In udev wurden neue Dateien mit hwdb-Datenbanken hinzugefügt, die Informationen über tragbare Geräte (PDAs, Taschenrechner usw.) und Geräte, die zur Erstellung von Audio und Video verwendet werden (DJ-Pulte, Pad-Controller), enthalten.
  • In udevadm wurden neue Optionen hinzugefügt: „—prioritized-subsystem“, um die Priorität der Systemverfolgung festzulegen (wird in systemd-udev-trigger.service verwendet, um Blockgeräte und TPM zuerst zu verarbeiten), „—type=all“, „—initialized-match“ und „—initialized-nomatch“, um initialisierte oder nicht initialisierte Geräte auszuwählen. Außerdem gibt es „udevadm info —tree“, um den Objektbaum in der Hierarchie /sys/ anzuzeigen. In udevadm wurden auch neue Befehle „wait“ und „lock“ hinzugefügt, um auf das Erscheinen eines Geräteeintrags in der Datenbank zu warten und ein Blockgerät während der Formatierung oder beim Schreiben der Partitionstabelle zu sperren.
  • Ein neuer Satz symbolischer Links zu Geräten /dev/disk/by-diskseq/ wurde hinzugefügt, um Blockgeräte anhand ihrer Sequenznummer zu identifizieren („diskseq“).
  • In die .link-Dateien im Abschnitt [Match] wurde die Unterstützung für den Parameter „Firmware“ hinzugefügt, um Geräte anhand der Beschreibung der Firmware zuzuordnen.
  • In systemd-networkd wurde der Standardwert für den Scope von unicast-Routen, die über den Abschnitt [Route] konfiguriert werden, auf „link“ geändert, um das Verhalten des Befehls „ip route“ zu entsprechen. Im Abschnitt [Bridge] wurde die Option Isolated=true|false hinzugefügt, um das gleichnamige Attribut für Netzbrücken im Kernel zu konfigurieren. Im Abschnitt [Tunnel] wurde die Option External hinzugefügt, um Tunnel des Typs external (Metadaten-Erfassungsmodus) festzulegen. Im Abschnitt [DHCPServer] wurden die Parameter BootServerName, BootServerAddress und BootFilename hinzugefügt, um die Adresse des Servers, den Servernamen und den Namen der zu sendenden Bootdatei einzustellen. dem Server durch DHCP beim Booten im PXE-Modus. Im Abschnitt [Network] wurde der Parameter L2TP entfernt, stattdessen kann in .netdev-Dateien die neue Einstellung Local in Verbindung mit dem L2TP-Interface verwendet werden.
  • Ein neuer Dienst „systemd-networkd-wait-online@.service“ wurde hinzugefügt, der verwendet werden kann, um auf das Hochfahren eines bestimmten Netzwerkinterfaces zu warten.
  • Die Möglichkeit zur Verwendung von .netdev-Dateien zur Erstellung virtueller WLAN-Geräte wurde implementiert, für deren Konfiguration der Abschnitt [WLAN] vorgeschlagen wird.
  • In den .link/.network-Dateien wurde im Abschnitt [Match] der Parameter Kind implementiert, um nach Gerätetypen („bond“, „bridge“, „gre“, „tun“, „veth“) zuzuordnen.
  • Der Start von systemd-resolved erfolgt jetzt früher im Bootprozess, einschließlich der Ausführung aus initrd, wenn systemd-resolved im initrd-Image vorhanden ist.
  • In systemd-cryptenroll wurde die Option —fido2-credential-algorithm hinzugefügt, um den Verschlüsselungsalgorithmus für Anmeldeinformationen auszuwählen, sowie die Option —tpm2-with-pin zur Verwaltung der Eingabe des PIN-Codes beim Entsperren des Partition unter Verwendung von TPM. Eine ähnliche Option tpm2-pin wurde in /etc/crypttab hinzugefügt. Bei der Entsperrung von Geräten über TPM wird die Verschlüsselung der Parameter zur Verhinderung von Schlüsselabfang gewährleistet.
  • In systemd-timesyncd wurde eine D-Bus-API hinzugefügt, um dynamisch Informationen vom NTP-Server über IPC abzurufen.
  • Zur Feststellung der Notwendigkeit einer farblichen Ausgabe in allen Befehlen wird die Umgebungsvariable COLORTERM zusätzlich zu den zuvor überprüften NO_COLOR, SYSTEMD_COLORS und TERM geprüft.
  • Im Build-System Meson wurde die Option install_tag implementiert, um eine selektive Build- und Installationsmöglichkeit für benötigte Komponenten wie pam, nss, devel (pkg-config), systemd-boot, libsystemd, libudev anzubieten. Eine Build-Option default-compression wurde hinzugefügt, um den Kompressionsalgorithmus für systemd-journald und systemd-coredump auszuwählen.
  • In sd-boot wurde in loader.conf eine experimentelle Einstellung „reboot-for-bitlocker“ hinzugefügt, um Microsoft Windows mit BitLocker TPM zu starten.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster