El kernel de 32 bits que es capaz de cargar y ejecutar binarios de 64 bits tiene que tener un código de 64 bits para manejar la asignación de memoria, la carga del programa y algunos otros problemas de 64 bits.
Sin embargo, el programador y muchas otras operaciones del sistema operativo no requieren trabajar en el modo de 64 bits para tratar otros problemas: cambia el procesador al modo de 32 bits y viceversa según sea necesario para manejar controladores, tareas, Asignación y asignación de memoria, interrupciones, etc.
De hecho, la mayoría de las cosas que hace el sistema operativo no necesariamente ejecutan una ejecución más rápida a 64 bits: el sistema operativo no es un procesador de datos pesado, y las partes que son (transmisiones, E/S de disco, etc.) probablemente se conviertan a 64 bits (de todos modos, complementos para el sistema operativo).
Pero el kernel desnudo probablemente no cambie de tarea más rápido, etc., si fuera de 64 bits.
Este es especialmente el caso cuando la mayoría de las personas aún ejecuta aplicaciones de 32 bits, por lo que la conmutación de modo no siempre es necesaria, aunque se trata de una operación aérea baja, lleva algo de tiempo.
-Adam
[¿Cómo ejecuta OSX los binarios de 64 bits mientras se ejecuta en un Kernel de 32 bits?] (Https://superuser.com/q/340549/241386) –