Núcleo monolítico
# Núcleo monolítico

En computación, un núcleo monolítico es una arquitectura de sistema operativo donde este en su totalidad trabaja en espacio del núcleo, estando él solo en modo supervisor. A diferencia de otras arquitecturas (como la de micronúcleo), solo define una interfaz virtual de alto nivel sobre el hardware del ordenador. Un conjunto primitivo de llamadas al sistema implementa todos los servicios propios del sistema operativo tales como la planificación de procesos, concurrencia, sistema de archivos, gestión de memoria, etc.

En esta arquitectura hay una correspondencia entre el programa que conforma el sistema operativo y el núcleo en sí.

Este núcleo está programado de forma no modular y puede tener un tamaño considerable. A su vez, cada vez que se añada una nueva funcionalidad, deberá ser recompilado en su totalidad y luego reiniciado. Todos los componentes funcionales del núcleo tienen acceso a todas sus estructuras de datos internas y a sus rutinas. Por ende, un error en una rutina podría propagarse a todo el sistema.

Hay diversas ramificaciones de este diseño, que se han ido amoldando a nuevas necesidades. Existen sistemas que, en tiempo de ejecución, permiten la carga dinámica de módulos ejecutables, lo cual le brinda al modelo de núcleo monolítico algunas de las ventajas de un micronúcleo. Dichos módulos pueden ser compilados, modificados, cargados y descargados en tiempo de ejecución, de manera similar a los servicios de un micronúcleo, pero con la diferencia de que se ejecutan en el espacio de memoria del núcleo mismo (anillo 0). De esta forma, es probable que un bloqueo del módulo bloquee todo el núcleo. Además, el módulo pasa a formar un todo con el núcleo, usando la API del mismo, y no se emplea un sistema de mensajes como en los micronúcleos. Este es el esquema usado por, entre otros, Linux, FreeBSD y varios derivados de UNIX.

La alternativa es tener una estructura de micronúcleo, donde las partes funcionales están divididas en unidades separadas con mecanismos de comunicación estrictos entre ellos. Cabe resaltar que el paso constante de mensajes entre los servicios del micronúcleo, es en parte responsable del pobre rendimiento de esta estructura.

## Sistemas operativos con núcleos monolíticos

Entre los sistemas operativos que cuentan con núcleos monolíticos se encuentran:

* Núcleos tipo Unix
   * Linux
   * Syllable
   * Unix
      * BSD (FreeBSD, NetBSD, OpenBSD)
      * Solaris
* Núcleos tipo DOS
   * DR-DOS
   * MS-DOS
   * Familia Microsoft Windows 9x (95, 98, 98SE, Me)
* Núcleos del Mac OS hasta Mac OS 8.6
* OpenVMS
* XTS-400
