En la base de código del núcleo de Linux, sobre la cual se formará la versión 6.19 a principios de febrero, se ha incorporado el código del subsistema LUO (Live Update Orchestrator), desarrollado por Google para actualizar el núcleo en modo en vivo sin necesidad de reiniciar físicamente. Este subsistema se basa en el mecanismo KHO (Kexec HandOver), que fue añadido anteriormente al núcleo 6.16 y que implementa la posibilidad de iniciar un nuevo núcleo a partir de uno antiguo sin perder el estado del sistema.
Live Update Orchestrator permite reiniciar y actualizar completamente el núcleo sin detener el trabajo y sin perder el estado del sistema, dispositivos y procesos. Además de la funcionalidad de KHO, el subsistema LUO guarda el estado de los dispositivos y la memoria RAM, así como asegura la continuidad de las operaciones relacionadas con DMA y el manejo de interrupciones. El estado se conserva hasta que se cambia al nuevo núcleo y se restaura después de activar el nuevo núcleo sin interrumpir las operaciones continuas con los dispositivos realizadas por el sistema y las aplicaciones en el espacio del usuario.
Una característica de la nueva serie de parches es la posibilidad de guardar descriptores de archivos memfd para mantener el estado de datos importantes en la memoria entre reinicios, como el contenido de la memoria RAM. máquinas virtuales. Como ámbito principal de uso del subsistema se menciona la actualización rápida servidores con sistemas de virtualización basados en el hipervisor KVM, para solucionar problemas de seguridad y estabilidad con un tiempo de inactividad mínimo para las máquinas virtuales. Google ya utiliza esta tecnología en sus entornos de trabajo.
A diferencia de livepatch, Ksplice, kpatch, kGraft y otros mecanismos de aplicación caliente de parches, el nuevo subsistema no se limita a la posibilidad de aplicar correcciones individuales al núcleo en funcionamiento y permite reemplazar completamente el núcleo. A diferencia de la llamada kexec, el subsistema LUO mantiene el estado de los dispositivos y las subsistemas del núcleo entre reinicios, mientras que la llamada kexec funciona solo como un cargador que inicia un nuevo núcleo con una reinicialización completa del sistema (equivalente a un reinicio, pero sin transferir el control al firmware).
Fuente: opennet.ru
