Table of Contents


kexec (kernel execution) is a mechanism of the Linux kernel that allows “live” booting of a new kernel over the currently running one. kexec skips the bootloader stage (hardware initialization phase by the firmware or BIOS) and directly loads the new kernel into memory, which starts executing immediately. This avoids the long times associated with a full reboot[1], and is useful on systems with high availability requirements, where minimizing downtime is of essence. While feasible, there are two major challenges in implementing a mechanism such as kexec: first, the new kernel will overwrite the memory of the currently running one, while it is still executing. Second, the new kernel will usually expect all physical devices to be in a well-defined state, as they are after system reboot, when the BIOS (or firmware) resets them to a “sane” state. Bypassing a real reboot means devices may be in an unknown state, and the new kernel will have to recover from that.


QR Code
QR Code kexec (generated for current page)