Besturingssystemen maken vaak gebruik van monolithische kernels. In Linux, bijvoorbeeld, zijn apparaatstuurprogramma’s vaak onderdeel van een kernel (specifiek Loadable Kernel Modules). Wanneer een apparaat nodig is, wordt de uitbreiding ervan geladen en “toegevoegd” aan de kernel, waardoor de kernel groter wordt. Monolithische kernels kunnen problemen veroorzaken wanneer een van deze drivers defect is, bijvoorbeeld wanneer een beta-driver wordt gedownload. Omdat hij deel uitmaakt van de kernel kan de defecte driver de mechanismen die omgaan met defecte programma’s (zie hierboven) overrulen. Dit kan betekenen dat de kernel, en dus de hele computer, niet meer functioneert. Als er te veel apparaten zijn, kan de kernel ook te veel geheugen krijgen, waardoor het systeem vastloopt of de computer erg traag wordt.
Microkernels zijn een manier om dit probleem op te lossen. In een microkernel besturingssysteem houdt de kernel zich alleen bezig met kritieke activiteiten, zoals het aansturen van het geheugen en de CPU, en verder met niets. Stuurprogramma’s en andere functies die monolithische kernels normaal gesproken in de kernel zouden opnemen, worden naar buiten de kernel verplaatst, waar ze onder controle staan. In plaats van een oncontroleerbaar onderdeel van de kernel te zijn, is de kans dat een bètastuurprogramma een crash veroorzaakt daarom niet groter dan bij een bètawebbrowser. Dat wil zeggen, als een stuurprogramma fout gaat, kan het gewoon opnieuw worden opgestart door de kernel. Helaas is het maken van op microkernels gebaseerde besturingssystemen erg moeilijk en zijn er geen gangbare microkernel besturingssystemen. Minix en QNX zijn beide microkernel besturingssystemen.