kexec - A travel to the purgatory

A story about how I fixed the boot delay in an ARM64 system. This article walks through Linux reboot / kexec code path, a bit of kexec-tools source and importantly how kexec-tools injects its code in your boot path.


Anatomy of Linux system call in ARM64

Architecture of Linux system call. Explains ARM64 exception levels and privilege of each level. Walks through Linux code path related to interrupt vectors and instructions that handle the system call. Bit of assembly code understanding is necessary. Explains every single instruction between `printf` and `sys_write`.