¿Qué es un núcleo monolítico?
Un núcleo o kernel monolítico es un marco de software de sistema operativo que posee todos los privilegios para acceder a los dispositivos de entrada/salida (E/S), la memoria, las interrupciones de hardware y la pila de la CPU.
Los núcleos monolíticos tienden a ser más grandes que otros núcleos porque se ocupan de muchos aspectos del procesamiento informático en el nivel más bajo y, por lo tanto, tienen que incorporar código que interactúa con muchos dispositivos, canales de E/S e interrupciones y otros operadores de hardware.
Esta forma de núcleo es la base de Linux, Unix, MS-DOS y Mac OS. Los sistemas operativos más recientes suelen utilizar un núcleo híbrido para facilitar el mantenimiento y las mejoras del sistema operativo.
Significado de Kernel Monolítico
Los kernels monolíticos conservan todos los privilegios de acceso sobre los distintos componentes bajo su control. Entre ellos se incluyen:
- Sistemas de archivos
- Comunicación entre procesos
- E/S y gestión de dispositivos
- Gestión de procesos fundamentales
- Hardware
La razón por la que se prefieren las arquitecturas de kernel más recientes, como el microkernel o el diseño de kernel híbrido, es que cuanto más grande se hace el kernel, más funciones debe asumir.
Esto hace que el código sea engorroso y más lento de cargar. Otro inconveniente del diseño de núcleo monolítico es que el código del núcleo debe modificarse para añadir funciones o corregir errores.
Esto suele requerir la recompilación del código del núcleo y de los controladores de hardware; incluso puede suponer una actualización completa del sistema operativo, lo que resulta costoso y reduce la confianza del usuario.
Las arquitecturas de núcleo más recientes solo retienen el acceso a privilegios limitados y pasan los privilegios al espacio de usuario a través de servidores, que ofrecen una gestión de recursos independiente con privilegios propios.
Estos servidores se ejecutan fuera del espacio de memoria del núcleo, lo que permite tamaños de núcleo mucho más pequeños y una ruta de actualización mucho más eficiente.
La arquitectura monolítica del núcleo se sigue utilizando en sistemas como los basados en Linux, en los que un núcleo en evolución que se actualiza y sustituye constantemente forma parte de la cultura del sistema operativo. La naturaleza aerodinámica de Linux ha mantenido su núcleo monolítico en un tamaño aceptable, lo que facilita la adición de funciones.