Kexec

kexec（kernel execution，类似于Unix或Linux的系统调用）是Linux内核的一种机制，它允许从当前运行的内核启动新内核。kexec会跳过由系统固件（BIOS或UEFI）执行的引导加载程序阶段和硬件初始化阶段，直接将新内核加载到主内存并立即开始执行。这避免了与完全重新启动相关的漫长时间，并且可以通过最小化停机时间来帮助系统满足高可用性要求。

虽然可行，但使用kexec等机制会带来两大挑战：

 旧内核的内存被新内核覆盖，而旧内核仍在执行。
 新的内核通常希望所有的硬件设备处于一个定义良好的状态，在这种状态下，系统重启后系统固件会将其重置为“正常”状态。绕过真正的重新启动可能会使设备处于未知状态，新内核将不得不从中恢复。

支持仅通过kexec引导已签名的内核已合并到2014年10月5日发布的Linux内核主线的3.17版中。 这不允许Root用户通过kexec加载并执行任意代码，补充了UEFI安全启动和内核安全机制，以确保只有经过签名的Linux内核模块才能被插入正在运行的内核中。

 参见 

 kdump Linux内核的崩溃转储机制，它在内部使用kexec
  SUSE开发的Linux内核实时修补技术
  由红帽开发的Linux内核实时修补技术
 Ksplice Ksplice公司开发的Linux内核实时修补技术，后来被Oracle收购

 参考文献 

 外部链接 

 Using kexec and kdump to get core files on Fedora and CentOS hosts

Category:Linux内核功能