Puede leer la respuesta de Anders Kaseorg a ¿Es posible que un programa modifique su propio código? Citando ejemplos de la misma respuesta:
- En el momento del arranque, el núcleo se optimiza para la CPU del host, utilizando instrucciones más recientes específicas del procesador para reemplazar el código de reserva genérico.
- Un núcleo que admite multiprocesamiento simétrico, cuando se inicia en un sistema de un solo procesador, repara las instrucciones de bloqueo innecesarias sin operaciones. En los sistemas que admiten CPU hotplug, incluso parcheará estas instrucciones dinámicamente a medida que se agregan y eliminan CPU.
- Un núcleo que admite la paravirtualización, cuando se inicia en hardware nativo, repara las hipercalls lentas en favor de las instrucciones nativas.
- Los ganchos de depuración predefinidos se pueden activar y desactivar en tiempo de ejecución; son parcheados con no-ops cuando no están activos.
- Ksplice lleva los parches en caliente varios pasos hacia adelante para permitir la aplicación segura de cambios de código más o menos arbitrarios en un núcleo en ejecución.