Kernel Execute, 현재 실행 중인 커널에서 새로운 커널을 부팅할 수 있도록 하는 리눅스 커널 매커니즘. 전통적인 부팅 과정 (전원 공급/펌웨어/부트로더 등)을 거치지 않고 커널에서 커널로 ‘빠르게1’ 바로 이동합니다.

동작 방식2

  1. kexec은 kexec_load() 시스템 콜3을 호출해 새 커널 이미지(vmlinuz)와 초기 RAM 디스크(initrd)를 메모리에 로드합니다.
  2. 기존 커널은 하드웨어를 안전하게 정지(suspend)합니다.
  3. 기존 커널은 CPU 제어권을 새 커널로 이전합니다.4
  4. 새 커널은 자체 초기화 루틴을 실행합니다.

Footnotes

  1. 6배 빠르다고 합니다. (Oracle 블로그)

  2. linux/arch/arm64/kernel/machine_kexec.c at master · torvalds/linux

  3. Kdump, A Kexec-based Kernel Crash Dumping Mechanism

  4. linux/arch/arm/kernel/relocate_kernel.S at torvalds/linux