Les systèmes d'exploitation utilisent généralement des noyaux monolithiques. Sous Linux, par exemple, les pilotes de périphériques font souvent partie d'un noyau (en particulier les modules de noyau chargeables). Lorsqu'un périphérique est nécessaire, son extension est chargée et "jointe" au noyau, ce qui le rend plus volumineux. Les noyaux monolithiques peuvent causer des problèmes lorsqu'un de ces pilotes est défectueux, par exemple si un pilote bêta est téléchargé. Parce qu'il fait partie du noyau, le pilote défectueux peut passer outre les mécanismes qui traitent les programmes défectueux (voir ci-dessus). Cela peut signifier que le noyau, et donc l'ordinateur tout entier, peut cesser de fonctionner. S'il y a trop de périphériques, le noyau peut également manquer de mémoire, ce qui peut provoquer un plantage du système ou rendre l'ordinateur très lent.
Les micro-noyaux sont un moyen de résoudre ce problème. Dans un système d'exploitation à micro-noyaux, le noyau ne s'occupe que des activités critiques, telles que le contrôle de la mémoire et du processeur, et rien d'autre. Les pilotes et autres fonctions que les noyaux monolithiques devraient normalement inclure dans le noyau sont déplacés à l'extérieur du noyau, où ils sont sous contrôle. Au lieu d'être une partie incontrôlable du noyau, le pilote bêta n'est donc pas plus susceptible de provoquer un crash qu'un navigateur web bêta. Autrement dit, si un pilote se plante, il peut simplement être redémarré par le noyau. Malheureusement, il est très difficile de créer des systèmes d'exploitation basés sur des micro-noyaux et il n'existe pas de système d'exploitation commun basé sur des micro-noyaux. Minix et QNX sont tous deux des systèmes d'exploitation à micro-noyaux.