
Un núcleo monolítico es una arquitectura de sistema operativo en la que todo el sistema operativo se ejecuta en el espacio del núcleo . El modelo monolítico se diferencia de otras arquitecturas como el micronúcleo [ 1 ] [ 2 ] en que define por sí solo una interfaz virtual de alto nivel sobre el hardware del ordenador . Un conjunto de primitivas o llamadas al sistema implementan todos los servicios del sistema operativo, como la gestión de procesos , la concurrencia y la gestión de memoria .
Los controladores de dispositivos se pueden agregar al núcleo como módulos de núcleo cargables .
Ejemplos
- La mayoría de los núcleos BSD
- núcleo de Linux
- Otros núcleos Unix / similares a Unix
- MS-DOS
- Windows Mobile
- Sistema operativo Mac OS clásico ( desde System 1.0 hasta Mac OS 8 ) en 68 KB
- OpenVMS
- Sistema operativo Palm (versión ≤ 5.0)
Módulos cargables
Los sistemas operativos modulares como OS-9 y la mayoría de los sistemas operativos modernos con núcleo monolítico, como OpenVMS , Linux , FreeBSD , NetBSD , Solaris y AIX, pueden cargar (y descargar) dinámicamente módulos ejecutables del núcleo en tiempo de ejecución.
Esta modularidad del sistema operativo se da a nivel binario (imagen) y no a nivel arquitectónico. Los sistemas operativos monolíticos modulares no deben confundirse con el nivel arquitectónico de modularidad inherente a los sistemas operativos cliente-servidor (y sus derivados, a veces comercializados como núcleos híbridos ), que utilizan micronúcleos y servidores (que no deben confundirse con módulos o demonios).
En la práctica, la carga dinámica de módulos es simplemente una forma más flexible de gestionar la imagen del sistema operativo en tiempo de ejecución, en comparación con reiniciar con una imagen de sistema operativo diferente. Los módulos permiten ampliar fácilmente las capacidades del sistema operativo según sea necesario. [ 3 ] Los módulos de carga dinámica generan una pequeña sobrecarga en comparación con la integración del módulo en la imagen del sistema operativo.
Sin embargo, en algunos casos, la carga dinámica de módulos (según sea necesario) ayuda a minimizar la cantidad de código que se ejecuta en el espacio del kernel ; por ejemplo, para minimizar el espacio que ocupa el sistema operativo en dispositivos integrados o con recursos de hardware limitados. Es decir, un módulo descargado no necesita almacenarse en la escasa memoria de acceso aleatorio .
Véase también
Referencias
- núcleos monolíticos
- núcleos de sistemas operativos