Una mejora extraordinaria al núcleo fue la modularización del mismo. En un principio el núcleo era monolítico, es decir, un gran archivo que contenía todos los controladores para los dispositivos.
Un núcleo monolítico es más eficiente que uno modularizado, en parte porque toda referencia se conoce en tiempo de compilación y por otro lado el sistema entero está en memoria siempre. Como desventaja tiene su gran tamaño, poca flexibilidad de incorporar nuevos controladores y no acepta cambios en el código existente.
Los módulos como contrapartida, se pueden cargar y descargar de memoria en cualquier momento. Dando la libertad de poder utilizar sólo lo necesario. Y si estamos programando un controlador para cualquier periférico, compilamos el controlador, lo cargamos a memoria, lo probamos y luego se puede sacar de memoria, recompilar y seguir probando. Todo esto sin rearrancar el sistema, ni cerrar los programas que estamos usando.