Nach drei Monaten Entwicklung verfĂŒgbar der Veröffentlichung des Systemmanagers systemd 261. Wichtige Ănderungen: Vorbereitung zur UnterstĂŒtzung einer API zur AltersĂŒberprĂŒfung, UnterstĂŒtzung der Subsysteme Kexec Handover und Live Update Orchestration fĂŒr einen Neustart ohne Verlust des Zustands, Subsystem IMDS (Instance Metadata Service), FunktionalitĂ€t zum Schutz des Bootvorgangs auf Systemen ohne physischen TPM (Trusted Platform Module), Komponente systemd-sysinstall mit Implementierung eines Installationsprogramms.
Unter Ănderungen in der neuen Version:
- Ein neuer Bestandteil systemd-sysinstall mit der Implementierung eines einfachen Installationsprogramms fĂŒr das Betriebssystem, das ĂŒber die Kommandozeile oder eine interaktive TextoberflĂ€che gesteuert werden kann. Die FunktionalitĂ€t von systemd-sysinstall basiert auf bereits bestehenden Möglichkeiten von systemd: FĂŒr die Konfiguration von Festplattenteilungen wird systemd-repart, zur Installation des Kernels und zur Generierung des BootmenĂŒs â der Befehl âbootctl linkâ, zur Installation des Bootloaders systemd-boot â der Befehl âbootctl installâ, fĂŒr die anfĂ€ngliche Konfiguration des zu installierenden Systems (z. B. die Auswahl von Locale und Tastaturlayout) â systemd-creds.
- Im Rahmen der Vorbereitung zur Umsetzung der Anforderungen von Gesetzen zur Integration einer API zur AltersĂŒberprĂŒfung in OS in die Datenbank userdb wurde das Feld birthDate mit dem Geburtsdatum des Nutzers hinzugefĂŒgt. Das hinzugefĂŒgte Feld kann im entwickelten Portal xdg-desktop-portal fĂŒr Distributionen und im Dienst AccountsService verwendet werden, um Anwendungen Informationen ĂŒber die Alterskategorie des Nutzers ĂŒber die D-Bus-Schnittstelle org.freedesktop.AgeVerification1 oder org.freedesktop.ParentalControls bereitzustellen. FĂŒr die Festlegung des Alters wurde der Option âbirth-date in das Tool homectl hinzugefĂŒgt.
- Im Handler PID1 wurde die UnterstĂŒtzung der Kernel-Subsysteme LUO (Live Update Orchestration) und KHO (Kexec Handover), die es ermöglichen, den Kernel vollstĂ€ndig neu zu starten und zu aktualisieren, ohne den Betrieb zu unterbrechen und den Zustand des Systems, der GerĂ€te und Prozesse zu verlieren. KHO bietet Möglichkeiten, um einen neuen Kernel aus einem alten zu starten, ohne den Zustand des Systems zu verlieren, und LUO implementiert die Speicherung des Zustands von GerĂ€ten und des Arbeitsspeichers sowie die KontinuitĂ€t von Operationen, die mit DMA und Interrupt-Verarbeitung verbunden sind.
In systemd wurde die Möglichkeit implementiert, Dateideskriptoren vor dem Aufruf von kexec zu speichern und sie nach dem Neustart des Kernels ĂŒber kexec wiederherzustellen. In den Units können auch eigene Sitzungen erstellt werden. LUO, die beim AusfĂŒhren von kexec gespeichert und wiederhergestellt werden. Um die Speicherung des Zustands des Datei-Deskriptor-Speichers zu aktivieren, sollte die Einstellung FileDescriptorStorePreserve=yes verwendet werden. - Ein Subsystem wurde implementiert systemd-imdsd, das eine API auf Basis von Varlink IPC bereitstellt, um lokalen Programmen Zugriff auf die von verschiedenen Cloud-Anbietern bereitgestellten IMDS-Dienste (Instance Metadata Service) zu ermöglichen. IMDS ermöglicht virtuellen Maschinen, Informationen ĂŒber die Cloud-Umgebung zu erhalten, wie z. B. Informationen zur Netzwerkkonfiguration, zur geografischen Lage des Knotens, zum CPU-Typ und zur GröĂe des Speichers. In systemd-imdsd wird sowohl eine Low-Level-API fĂŒr den Zugriff auf einzelne Felder als auch eine High-Level-Schnittstelle fĂŒr Anfragen nach typischen SchlĂŒsseln angeboten, die mit plattformspezifischen SchlĂŒsseln ĂŒbereinstimmen. Zur Interaktion mit systemd-imdsd wurde das Tool systemd-imds hinzugefĂŒgt, das es ermöglicht, Felder aus IMDS in das lokale Benutzerkontosystem zu importieren.
Um Cloud-Plattformen anhand von Informationen aus SMBIOS zu erkennen und die auf dem aktuellen Knoten verfĂŒgbare IMDS-FunktionalitĂ€t zu bestimmen, wurde eine neue Datenbank hwdb.d/40-imds.hwdb hinzugefĂŒgt. Es wurde die Erkennung der Cloud-Plattformen Amazon EC2, Microsoft Azure, Google Compute Engine, Hetzner, Oracle Cloud, Scaleway, Tencent Cloud, Alibaba ECS und Vultr implementiert. Ein systemd-imds-generator steht zur VerfĂŒgung, um automatisch den Dienst fĂŒr den Abruf von IMDS-Daten einzufĂŒgen, wenn festgestellt wird, dass sie unter einer unterstĂŒtzten Cloud-Plattform betrieben werden. Es ist möglich, universelle Images zu erstellen, die die Nutzung von IMDS beim Start in Cloud-Umgebungen unterstĂŒtzen, aber auch ohne IMDS funktionieren können. - Im systemd-stub wurde die FunktionalitĂ€t boot secret implementiert, die es ermöglicht, einen SchlĂŒssel basierend auf einer EFI-Variable zu generieren, die in einem fĂŒr das Betriebssystem unzugĂ€nglichen Bereich gespeichert und mit einem zufĂ€lligen Wert initialisiert wird. Im initrd wird der SchlĂŒssel ĂŒber die Datei /.extra/boot-secret ĂŒbergeben. Diese FunktionalitĂ€t kann erforderlich sein, um einen systemspezifischen zufĂ€lligen SchlĂŒssel zur Verifizierung des Bootprozesses oder zur VerschlĂŒsselung auf Systemen ohne Hardware-TPM (Trusted Platform Module) zu erhalten.
- Der Dienst systemd-tpm2-swtpm.service wurde hinzugefĂŒgt, um den Emulator fĂŒr TPM-Chips zu starten. swtpm (Software TPM-Emulator), der fĂŒr den automatischen Rollback auf eine Softwareimplementierung von TPM fĂŒr sicheres Booten auf Systemen ohne Hardware-TPM verwendet werden kann. Die Software-TPM funktioniert im Benutzerspeicher und bietet nicht das Schutzniveau wie ein Hardware-TPM, aber in bestimmten Situationen ist ihr Einsatz im Vergleich zu einem Betrieb ohne TPM gerechtfertigt. Zum Beispiel kann die Software-TPM den VerschlĂŒsselungsschlĂŒssel der Partitionen durch die neue FunktionalitĂ€t âboot secretâ erhalten und zur Speicherung ihres Zustands die Partition ESP (EFI System Partition) auf der Festplatte verwenden. Um die Software-TPM automatisch zu aktivieren, wurde der Parameter systemd.tpm2_software_fallback als Kernel-Befehlszeilenparameter vorgeschlagen.
- Wurde stabilisiert und in /usr/bin/ bereitgestellt, die Komponente systemd-sysupdate, die fĂŒr die automatische Erkennung, den Download und die Installation von Updates unter Verwendung des atomaren Mechanismus fĂŒr den Austausch von Partitionen, Dateien oder Verzeichnissen vorgesehen ist (es werden zwei unabhĂ€ngige Partitionen/Dateien/Verzeichnisse verwendet, wobei sich auf einem die aktuell laufende Ressource befindet und im anderen das nĂ€chste Update installiert wird, bevor sie anschlieĂend ausgetauscht werden).
- Im systemd-resolved hat die Möglichkeit implementiert, neue DNS-EintrĂ€ge zu ĂŒberschreiben oder anzugeben, indem Dateien im JSON-Format in den Verzeichnissen systemd/resolve/static.d/ abgelegt werden. Im Gegensatz zu /etc/hosts können in den neuen Dateien nicht nur IP-Adressen an Hostnamen gebunden werden, sondern auch ressourcenbasierte DNS-RR-EintrĂ€ge, die von âAâ und âAAAAâ abweichen. DarĂŒber hinaus wurden in systemd-resolved Einstellungen fĂŒr die GröĂe des DNS-Caches hinzugefĂŒgt: DNSCacheSize, MulticastDNSCacheSize und LLMNRCacheSize.
- Ein Dienstprogramm âstoragectlâ wurde hinzugefĂŒgt, um SpeichergerĂ€te zu inspizieren und die Verbindung von BlockgerĂ€ten und Dateisystemen zu verwalten.
- Im Rahmen der Initiative zur Reduzierung von AbhÀngigkeiten wurden in libsystemd die dynamische Ladebibliotheken libgnutls, libmicrohttpd, libcurl, libcrypto, libssl, libfdisk und libcryptsetup durch den Aufruf von dlopen() implementiert, wenn deren Funktionen tatsÀchlich erforderlich sind.
- Im systemd-tmpfiles hat das Flag âinline hinzugefĂŒgt, das es ermöglicht, Direktiven in der Befehlszeile ohne die Erstellung von Konfigurationsdateien in tmpfiles.d/ festzulegen und ohne die Einstellungen ĂŒber STDIN zu ĂŒbermitteln. Ein neuer Direktiventyp k/K wurde hinzugefĂŒgt, um Capabilities festzulegen. Eine Konfigurationsdatei tmpfiles.d/root.conf wurde hinzugefĂŒgt, die Zugriffsrechte 0555 (-r-xr-xr-x) fĂŒr das Wurzelverzeichnis (/) festlegt, um zu verhindern, dass falsche Rechte beim dynamischen Erstellen des Wurzel-FS angegeben werden.
- In dem Dienstprogramm bootctl wurde die Sicherung einer Sicherungskopie des Systemd-boot-Laders und das Eintragen einer Àlteren Version in UEFI als Backup-Boot-Option gewÀhrleistet.
- Im systemd-vmspawn wurde die UnterstĂŒtzung fĂŒr das direkte Booten des Kernels ohne Verwendung der UEFI-Firmware hinzugefĂŒgt. Eine Option âfirmware-features wurde implementiert, um bestimmte Funktionen von Firmware selektiv ein- oder auszuschalten. Der Modus âconsole=headless wurde hinzugefĂŒgt, um die virtuelle Maschine ohne Konsole und Bildschirm zu starten. Eine Option âimage-disk-type wurde hinzugefĂŒgt, um den verwendeten Blockspeichertyp in der VM auszuwĂ€hlen (virtio-blk, virtio-scsi, nvme, scsi-cd). Eine Option âcoco (Confidential Computing) wurde hinzugefĂŒgt, um den Modus zur VerschlĂŒsselung des Arbeitsspeichers von virtuellen Maschinen unter Verwendung der AMD SEV-SNP-Technologie zu aktivieren.
- Im systemd-hostnamed und /etc/machine-info wurde die UnterstĂŒtzung hinzugefĂŒgt, beliebige Tags an das aktuelle System anzuhĂ€ngen, indem der Parameter Tags verwendet wird. Die festgelegten Tags können dann zur selektiven Anwendung von Einstellungen unter Verwendung eines ConditionMachineTag-Ausdrucks verwendet werden.
- Die Einstellungen EventLoopRateLimitIntervalSec und EventLoopRateLimitBurst wurden hinzugefĂŒgt, um die IntensitĂ€t der Ereignisverarbeitungsschleife in PID1 zu begrenzen und CPU-Ressourcen im Falle einer Endlosschleife freizugeben.
- Im Dienstmanager wurde die Einstellung MinimumUptimeSec implementiert, um die minimale Betriebszeit des Systems festzulegen (standardmĂ€Ăig 15 Sekunden). Wenn vor Ablauf dieser Zeit das Herunterfahren oder der Neustart initiiert wird, wird in der Endphase eine entsprechende Verzögerung hinzugefĂŒgt.
- FĂŒr die Units wurden neue Einstellungen CPUSetPartition zur Festlegung des Typs des cpuset-Partitions in cgroup (root, isolated, member), RestrictFileSystemAccess zur Erlaubnis der AusfĂŒhrung nur digital signierter ausfĂŒhrbarer Dateien mittels dm-verity, sowie CPUPressureWatch/CPUPressureThresholdSec/IOPressureWatch/IOPressureThresholdSec zur Benachrichtigung ĂŒber hohe CPU- und I/O-Belastung implementiert.
- Die Liste der Metriken, die vom Dienstprogramm systemd-report. ausgegeben werden, wurde erweitert. Beispielsweise wurden Informationen ĂŒber die GröĂe des physischen Speichers und aktive CPU-Kerne, Daten ĂŒber den Inhalt der SMBIOS-Felder und /etc/machine-info, sowie Informationen ĂŒber die UnterstĂŒtzung des Confidential Computing-Modus und Angaben zum Hersteller des TPM2-Chips hinzugefĂŒgt.
- Im systemd-oomd Die Möglichkeit zur Festlegung von Regeln fĂŒr das Aussortieren von Prozessen bei unzureichendem Arbeitsspeicher im System wurde implementiert. Regeln können im Verzeichnis /etc/systemd/oomd/rules.d/ oder in den Service-Units ĂŒber die Direktive OOMRule definiert werden.
- Im systemd-socket-proxy Die UnterstĂŒtzung des PROXY-Protokolls, das mit der ersten Version des haproxy-Protokolls ĂŒbereinstimmt, wurde hinzugefĂŒgt.
- Im systemd-networkd Ein neuer sd-dhcp-relay-Backend fĂŒr DHCP-Relais wurde implementiert. Die Optionen BindToInterface, RelayTarget, RelayAgentCircuitId und RelayAgentRemoteId in der Sektion [DHCPServer] wurden als veraltet erklĂ€rt, stattdessen sollte der Parameter DHCPRelay in der Sektion [Network] und eine Reihe neuer Einstellungen in der Sektion [DHCPRelay] und in der Datei networkd.conf verwendet werden. Der Befehl networkctl dhcp-lease INTERFACE wurde hinzugefĂŒgt, um eine Dump-Datei mit Informationen ĂŒber die IP-Adressbindung (DHCP-Lease) zu speichern.
- In das Dienstprogramm systemd-nspawn wurde die Option ârestrict-address-families hinzugefĂŒgt, und in die .nspawn-Dateien die Einstellung RestrictAddressFamilies zur EinschrĂ€nkung der im Container verwendeten Adressfamilien von Sockets. In zukĂŒnftigen Versionen werden standardmĂ€Ăig nur die Familien AF_INET, AF_INET6 und AF_UNIX zugelassen sein.
- Die UnterstĂŒtzung des alten udev-Datenbankformats (Version 0.x) wurde eingestellt. Das Echtzeit-Upgrade von Versionen von systemd zu Version 247 (opennet.ru) wird nicht mehr unterstĂŒtzt.
- Beim Erstellen mit der C-Bibliothek musl ist jetzt mindestens die Version musl 1.2.6 erforderlich.
ZusĂ€tzlich kann vermerkt werden Release des Projekts liberated-systemd 261, das ein Fork von systemd entwickelt, der frei von Code ist, der zur Ăberwachung von Benutzern verwendet werden könnte. In der vorgeschlagenen Version besteht die Ănderung darin, den Code zu entfernen, der in userdb das Feld birthDate mit dem Geburtsdatum des Benutzers hinzufĂŒgt, sowie in das Dienstprogramm homectl die Option âbirth-date zur Festlegung des Alters.
Quelle: linux.org.ru
