Sistema monolítico

Los sistemas monolíticos son aquellos en los que su centro es un grupo de estructuras fijas, las cuales funcionan entre sí.

En los sistemas monolíticos existen módulos grandes en el núcleo, los cuales interactúan entre sí, para poder tener esta estructura, las diferentes partes del kernel son compiladas por capas.

Los sistemas monolíticos se describen en tres procesos principales:

1. Un programa principal que invoca el procedimiento de servicio solicitado.

2. Un conjunto de procedimientos de servicio que llevan a cabo las llamadas del sistema.

3. Un conjunto de procedimientos de utilería que ayudan a los procedimientos del servicio.

En teoría un procedimiento dado puede invocar a ciertos servicios los cuales a su vez se verán ayudados por programas de utilería los cuales extraerán información importante para este.

¿Cómo funciona un sistema monolítico?

Los sistemas operativos monolíticos se caracterizan por implementar en el núcleo los cuatro componentes fundamentales del sistema operativo, que son la planificación de procesos, la administración de la memoria principal, la administración de ficheros y la gestión de los dispositivos de entrada/salida.

Esquema de un sistema monolítico
Esquema de un sistema monolítico

Los sistemas operativos de propósito general son predominantemente monolíticos hoy día, algunos ejemplos son:

Sistemas operativos UNIX, tales como FreeBSD, NetBSD y OpenBSD.

- Sistemas operativos GNU/Linux y, por tanto, Android también.

- DOS, tales como MS-DOS y DR-DOS.

Como inconveniente, este tipo de sistemas operativo dispone de un alto número de líneas de código ejecutándose en modo privilegiado. Por ello, un error de programación en el núcleo puede provocar un kernel panic. Además, el hecho de añadir nuevas funcionalidades provocaría una nueva recopilación del núcleo llevando a reiniciar el sistema para que se apliquen los nuevos cambios. Por ejemplo, un bug en el núcleo de un sistema operativo monolítico obliga a tener que reiniciar el sistema. 

En un sistema operativo monolítico, el código del núcleo se incluye en un único fichero binario que se carga en memoria principal en tiempo de arranque, por tanto, si se instala una nueva imagen, es necesario reiniciar el sistema operativo para que se inicie con la nueva versión que incluye la imagen actualizada.

Como principal ventaja, los sistemas operativos monolíticos ofrecen un alto rendimiento puesto que las peticiones entre los diferentes componentes se reducen a invocaciones de funciones.