Na liście dyskusyjnej jądra Linux przedstawiona została szósta wersja łat i mechanizmu Kexec HandOver (KHO), rozwijanego przez inżynierów z firm Amazon, Microsoft i Google. Łatki zostały już przyjęte do gałęzi mm-everything, w której gromadzone są zmiany do przyszłej gałęzi jądra 6.16 związane z zarządzaniem pamięcią. Na bazie Kexec HandOver firma Google opracowuje podsystem Live Update Orchestrator (LUO), umożliwiający restart jądra bez zatrzymywania pracy urządzeń.
Kexec HandOver daje możliwości uruchomienia nowego jądra z starego bez utraty stanu systemu. W tej chwili wywołanie kexec() działa jedynie jako ładowarka, która po prostu uruchamia nowe jądro, które następnie całkowicie reinicjuje system, co jest równoważne z restartem, tylko bez udziału firmware'u. Proponowany zestaw łat implementuje inne podejście. Przed przekazaniem sterowania nowej wersji jądra, stan kluczowych podsystemów jądra jest serializowany w regionie pamięci, który nie zostanie naruszony przez dalsze operacje. Nowe jądro, przejmując kontrolę, przywraca zserializowany stan z powrotem. Z perspektywy innych programów operacja wymiany jądra jest niezauważalna.
Kexec HandOver może okazać się przydatny w sytuacjach, gdy zatrzymanie jest niedopuszczalne i konieczne jest zapewnienie ciągłości działania poszczególnych urządzeń. Na przykład w serwerach wirtualizacji Kexec HandOver może być stosowany do aktualizacji jądra (i hypervisora), KVM), nie naruszając pamięci zajmowanej przez maszyny wirtualne i zachowując stan ich działania.
Źródło: opennet.ru
