Não, os kernels de diferentes implementações de sistemas operacionais no estilo Unix não são intercambiáveis, especialmente porque todos eles apresentam interfaces diferentes para o resto do sistema (espaço do usuário) - suas chamadas de sistema (incluindo ioctl
specifics) sistemas de arquivos virtuais que eles usam ...
O que é intercambiável até certo ponto, no nível da fonte, é a combinação do kernel e da biblioteca C, ou melhor, das APIs em nível de usuário que o kernel e as bibliotecas expõem (essencialmente, a visão na camada descrita por POSIX, sem considerar se é realmente POSIX). Exemplos disso incluem Debian GNU / kFreeBSD , que constrói um sistema Debian sobre um kernel do FreeBSD, e < href="https://www.debian.org/ports/hurd/"> Debian GNU / Hurd , que constrói um sistema Debian sobre o Hurd.
Isso não é exatamente o nível de intercambiabilidade do kernel, mas houve tentativas de padronizar uma interface binária de aplicativo comum, para permitir que binários fossem usados em vários sistemas sem precisar de recompilação. Um exemplo é o o Intel Binary Compatibility Standard , que permite que binários em conformidade com ele sejam executados em qualquer sistema Unix que o implemente, incluindo versões do Linux com a camada iBCS 2. Eu usei isso no final dos anos 90 para executar o WordPerfect no Linux.
Veja também Como construir um chroot do FreeBSD dentro do Linux .