A diferença básica é que um micro-kernel (MK) é muito pequeno e fornece apenas um conjunto mínimo de serviços. A maioria dos que normalmente são considerados serviços do sistema operacional é fornecida por processos separados que são executados fora do kernel e em um modo menos privilegiado. Esses processos precisam se comunicar através de alguns do IPC, em vez de apenas ler / escrever para qualquer estrutura de dados que eles querem acessar.
MKs tendem a ser razoavelmente fáceis de portar já que o kernel é pequeno, o esforço de portabilidade é baixo.
Como muitos dos serviços fornecidos estão potencialmente em execução no espaço do usuário, em vez de no espaço do kernel, eles não podem facilmente destruir outros processos. Esta é uma garantia mais.
Por exemplo, a parte da pilha da rede estava no espaço do usuário e estava comprometida, pois talvez não conseguisse interromper outros processos / tarefas. Considerando que se essa mesma parte da pilha de rede em um kernel monolítico pode estar rodando no espaço do kernel, onde se comprometido seria capaz de lixeira outros processos, uma vez que seria privilegiado.