No, los núcleos de diferentes implementaciones de sistemas operativos de estilo Unix no son intercambiables, en particular porque todos presentan interfaces diferentes al resto del sistema (espacio de usuario): sus llamadas al sistema (incluidos los ioctl
detalles), los diversos sistemas de archivos virtuales que utilizan. ..
Lo que es intercambiable hasta cierto punto, a nivel fuente, es la combinación del núcleo y la biblioteca C, o más bien, las API de nivel de usuario que el núcleo y las bibliotecas exponen (esencialmente, la vista en la capa descrita por POSIX, sin considerando si en realidad es POSIX). Ejemplos de esto incluyen Debian GNU / kFreeBSD , que construye un sistema Debian sobre un núcleo FreeBSD, y Debian GNU / Hurd , que construye un sistema Debian sobre Hurd.
Esto no está en el nivel de intercambiabilidad del kernel, pero ha habido intentos de estandarizar una interfaz binaria de aplicación común, para permitir que los binarios se usen en varios sistemas sin necesidad de recompilación. Un ejemplo es el Estándar de compatibilidad binaria de Intel , que permite que los binarios que se ajustan a él se ejecuten en cualquier sistema Unix que lo implemente, incluidas las versiones anteriores de Linux con la capa iBCS 2. Usé esto a fines de los 90 para ejecutar WordPerfect en Linux.
Vea también Cómo construir un chroot de FreeBSD dentro de Linux .