A diferença básica é que um micro kernel (MK) é muito pequeno e fornece apenas um conjunto mínimo de serviços. A maioria do que normalmente é considerado serviço 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 por meio do IPC, em vez de apenas ler / escrever para qualquer estrutura de dados que eles desejem acessar.
Os MKs tendem a ser bastante fáceis de portar, pois 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 do espaço do kernel, eles não podem lixeira facilmente de outros processos. Esta é uma vantagem de segurança.
Por exemplo, digamos que a parte da pilha de rede estava no espaço do usuário e foi comprometida por não ser capaz de interromper outros processos / tarefas. Enquanto que a mesma parte da pilha de rede em um kernel monolítico pode estar em execução no espaço do kernel, se comprometida, poderá lixeira para outros processos, pois seria privilegiada.