De code van de Linux-kernel, waarop de release 6.19 begin februari is gebaseerd, heeft de code van het Live Update Orchestrator (LUO) subsysteem, ontwikkeld door Google, aangenomen voor kernupdates in live-modus zonder fysieke herstart. Het subsysteem is gebaseerd op het Kexec HandOver-mechanisme (KHO), dat eerder werd toegevoegd aan kernel 6.16 en de mogelijkheid biedt om een nieuwe kernel vanuit een oude te starten zonder systeemstatus te verliezen.
Live Update Orchestrator maakt het mogelijk om de kernel volledig opnieuw op te starten en te upgraden zonder de werking van het systeem te stoppen en zonder de status van systemen, apparaten en processen te verliezen. Naast de functionaliteit van KHO, houdt het LUO-subsysteem de status van apparaten en RAM vast en zorgt het voor de continuĆÆteit van operaties die verband houden met DMA en interruptverwerking. De status wordt bewaard tot de overschakeling op de nieuwe kernel en wordt hersteld na de activering van de nieuwe kernel zonder onderbreking van de continue operaties met apparaten die door het systeem en toepassingen in de gebruikersruimte worden uitgevoerd.
Een kenmerk van de nieuwe reeks patches is de mogelijkheid om memfd-bestandshandvatten op te slaan om de status van belangrijke gegevens in het geheugen tussen herstarts te behouden, zoals de inhoud van het RAM-geheugen virtuele machines. Als basisgebied van toepassing voor het subsysteem wordt snel updaten genoemd servers met virtualisatiesystemen op basis van de KVM-hypervisor, om problemen met veiligheid en stabiliteit op te lossen bij minimale downtime van virtuele machines. Google maakt deze technologie al in zijn werkomgevingen gebruik.
In tegenstelling tot livepatch, Ksplice, kpatch, kGraft en andere mechanismen voor het warm aanbrengen van patches, beperkt het nieuwe subsysteem zich niet tot het aanbrengen van afzonderlijke correcties op een draaiende kernel, maar staat het volledige vervanging van de kernel toe. In tegenstelling tot de oproep naar kexec, behoudt het LUO-subsysteem de status van apparaten en subsysteemkern tussen herstarts, terwijl de oproep naar kexec alleen als bootloader fungeert die een nieuwe kernel opstart met volledige herinitialisatie van het systeem (equivalent aan een herstart, maar zonder controle over de firmware over te dragen).
Bron: opennet.ru
