kexec, abreviado de la ejecución del kernel y análogo a la llamada al sistema de Unix/Linux exec()
, es un mecanismo del núcleo Linux que permite el arranque de un núcleo nuevo desde el que se ejecuta actualmente. sin tener que reiniciar el sistema. Esencialmente, kexec omite la etapa del gestor de arranque y la fase de inicialización del hardware realizada por el firmware del sistema (BIOS o UEFI), carga directamente el nuevo núcleo en la memoria principal y comienza a ejecutarlo de inmediato. Esto evita los largos tiempos asociados con un reinicio completo, y puede ayudar a los sistemas a cumplir con los requisitos de alta disponibilidad al minimizar el tiempo de inactividad.[1][2]
Si bien es factible, la implementación de un mecanismo como kexec plantea dos desafíos principales:
El soporte para permitir que solo los kernels firmados se inicien a través de kexec se fusionó con la versión 3.17 de la línea principal del núcleo Linux, que se lanzó el 5 de octubre de 2014.[3] Esto no permite que un usuario root cargue código arbitrario a través de kexec y lo ejecute, complementando los mecanismos de seguridad arranque seguro UEFI y en el núcleo para garantizar que solo los módulos de núcleo Linux firmados puedan insertarse en el núcleo en ejecución.[4][5][6]