In den Code-Basis des Linux-Kernels, auf dessen Grundlage im frĂŒhen Februar die Version 6.19 erstellt wird, wurde der Code des LUO (Live Update Orchestrator) akzeptiert. Dieser wurde von Google zur Aktualisierung des Kernels im Live-Modus ohne physische Neustarts entwickelt. Das System basiert auf dem KHO-Mechanismus (Kexec HandOver), der zuvor in den Kernel 6.16 integriert wurde und es ermöglicht, einen neuen Kernel aus einem alten zu starten, ohne den Zustand des Systems zu verlieren.
Der Live Update Orchestrator ermöglicht eine vollstÀndige Aktualisierung und den Neustart des Kernels, ohne den Betrieb zu unterbrechen und den Zustand des Systems, der GerÀte und Prozesse zu verlieren. Neben der FunktionalitÀt von KHO speichert das LUO-System den Zustand der GerÀte und des Arbeitspeichers und gewÀhrleistet die KontinuitÀt der mit DMA und der Interrupt-Verarbeitung verbundenen Operationen. Der Zustand wird bis zum Wechsel zum neuen Kernel gespeichert und nach der Aktivierung des neuen Kernels wiederhergestellt, ohne unterbrochene Operationen der GerÀte durch das System und Anwendungen im Benutzerraum zu verursachen.
Ein besonderes Merkmal der neuen Patch-Serie ist die Möglichkeit, Dateideskriptoren von memfd zu speichern, um den Zustand wichtiger Daten im Speicher zwischen Neustarts zu erhalten, wie z.B. den Inhalt des Arbeitsspeichers. virtuellen MaschinenDer Anwendungsbereich der Subsystem wird durch schnelle Aktualisierungen Server mit Virtualisierungssystemen, die auf dem KVM-Hypervisor basieren, erwÀhnt, um Sicherheits- und StabilitÀtsprobleme bei minimalen Ausfallzeiten von virtuellen Maschinen zu beheben. Google nutzt diese Technologie bereits in seinen Arbeitsumgebungen.
Im Gegensatz zu Livepatch, Ksplice, kpatch, kGraft und anderen Mechanismen zum Hot-Patching ist das neue Subsystem nicht auf die Anwendung einzelner Korrekturen fĂŒr den laufenden Kernel beschrĂ€nkt und ermöglicht es, den Kernel vollstĂ€ndig zu ersetzen. Im Unterschied zum Aufruf von kexec bewahrt das LUO-Subsystem den Zustand von GerĂ€ten und Kernel-Subsystemen zwischen Neustarts, wĂ€hrend der Aufruf von kexec nur als Bootloader fungiert, der einen neuen Kernel mit einer vollstĂ€ndigen Neuinitialisierung des Systems startet (entspricht einem Neustart, jedoch ohne die Steuerung an die Firmware zu ĂŒbergeben).
Quelle: opennet.ru
