From Wikipedia, the free encyclopedia
In computing, kexec (kernel execution) is a mechanism of the Linux kernel that allows "live" booting of a new kernel "over" the currently running kernel. kexec skips the bootloader stage (hardware initialization phase by the firmware or BIOS) and directly loads the new kernel into memory, where it starts executing immediately. This avoids the long times associated with a full reboot,[1] and can help systems to meet high-availability requirements by minimizing downtime.
While feasible, implementing a mechanism such as kexec raises two major challenges:
1: the new kernel will overwrite the memory of the currently running one, while it is still executing.
2: 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 may leave devices in an unknown state, and the new kernel will have to recover from that.