Los sistemas operativos suelen utilizar kernels monolíticos. En Linux, por ejemplo, los controladores de dispositivos suelen formar parte de un kernel (concretamente de los módulos cargables del kernel). Cuando se necesita un dispositivo, su extensión se carga y se «une» al núcleo haciendo que éste sea más grande. Los núcleos monolíticos pueden causar problemas cuando uno de estos controladores es defectuoso, como por ejemplo si se descarga un controlador beta. Al formar parte del núcleo, el controlador defectuoso puede anular los mecanismos que se ocupan de los programas defectuosos (véase más arriba). Esto puede significar que el kernel, y por tanto todo el ordenador, puede dejar de funcionar. Si hay demasiados dispositivos, el kernel también puede quedarse sin memoria provocando un fallo del sistema o haciendo que el ordenador sea muy lento.
Los micronúcleos son una forma de resolver este problema. En un sistema operativo de micronúcleo, éste se ocupa sólo de las actividades críticas, como el control de la memoria y la CPU, y nada más. Los controladores y otras funciones que los kernels monolíticos incluirían normalmente dentro del kernel se trasladan fuera de éste, donde están bajo control. En lugar de ser una parte incontrolable del núcleo, el controlador beta no tiene más probabilidades de causar un fallo que un navegador web beta. Es decir, si un controlador va mal, simplemente puede ser reiniciado por el núcleo. Por desgracia, crear sistemas operativos basados en el micronúcleo es muy difícil y no existen sistemas operativos de micronúcleo comunes. Minix y QNX son ambos sistemas operativos de microkernel.