Não, kernels de diferentes implementações de sistemas operacionais no estilo Unix não são intercambiáveis, principalmente porque todos eles apresentam interfaces diferentes para o resto do sistema (espaço do usuário) - suas chamadas de sistema (incluindo ioctl
detalhes), os vários sistemas de arquivos virtuais que eles usam. ..
O que é intercambiável até certo ponto, no nível de origem, é a combinação do kernel e a biblioteca C, ou melhor, as APIs no nível do usuário que o kernel e as bibliotecas expõem (essencialmente, a visualização na camada descrita pelo POSIX, sem considerando se é realmente POSIX). Exemplos disso incluem o Debian GNU / kFreeBSD , que constrói um sistema Debian no topo de um kernel do FreeBSD, e o Debian GNU / Hurd , que constrói um sistema Debian no topo do 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 os binários sejam usados em vários sistemas sem a necessidade de recompilação. Um exemplo é o Intel Binary Compatibility Standard , que permite que os binários em conformidade com ele sejam executados em qualquer sistema Unix que o implemente, incluindo versões mais antigas 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 .