kexec은 현재 돌아가는 커널에 새로운 커널을 부팅하게 하는 리눅스 커널의 메커니즘이다. 근본적으로 kexec는 부트로더 단계와 하드웨어 초기화 단계를 건너뛰며 직접적으로 새로운 커널을 메인 메모리에 로드하고 즉시 실행한다. 이것은 전체 리부팅과 관련된 긴 시간을 피하고 다운타임을 최소화 시킴으로써 시스템이 높은 가용성을 충족하게 한다.[1][2]
실현 가능케하기 위해 kexec는 다음의 두 가지 메커니즘을 구현해야 한다.
현재 진행 중인 커널의 메모리는 돌아가는 도중에 새로운 커널에 의해 덮어써진다.
새로운 커널은 일반적으로 모든 하드웨어 장치들이 잘 정의된 상태라고 가정한다. 실제 리부팅을 우회하는 것은 장치들을 알려지지 않은 상태로 남기며 새로운 커널은 이 상태에서 회복되어야 한다.
오직 사인된 커널만 kexec에 의해서 부트되게 지원하기 위해 리눅스 커널의 3.17부터 추가되었다.[3] 이것은 루트 사용자가 임의의 코드를 kexec를 통해 로드하고 실행하는 것을 불허하며 오직 사인된 리눅스 커널 모듈만 실행 중인 커널에 삽입될 수 있다.[4][5][6]