stringtranslate.com

Núcleo monolítico

Estructura de sistemas operativos basados ​​en núcleo monolítico, micronúcleo y núcleo híbrido

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 de la computadora . 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 kernel como módulos .

Ejemplos de kernel de arquitectura monolítica: Unix (incluido Linux ), MS-DOS , Windows 9x .

Módulos cargables

Los sistemas operativos modulares como OS-9 y la mayoría de los sistemas operativos monolíticos modernos como OpenVMS , Linux , BSD , SunOS , AIX y MULTICS pueden cargar (y descargar) dinámicamente módulos ejecutables en tiempo de ejecución.

Esta modularidad del sistema operativo se da a nivel binario (imagen) y no a nivel de arquitectura. 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úcleo híbrido ) que utilizan micronúcleos y servidores (que no deben confundirse con módulos o daemons).

En términos prácticos, la carga dinámica de módulos es simplemente una forma más flexible de manejar la imagen del sistema operativo en tiempo de ejecución, en lugar de reiniciar con una imagen de sistema operativo diferente. Los módulos permiten una fácil extensión de las capacidades de los sistemas operativos según sea necesario. [3] Los módulos cargables dinámicamente implican una pequeña sobrecarga en comparación con la incorporación del módulo a la imagen del sistema operativo.

Sin embargo, en algunos casos, cargar módulos de forma dinámica (según sea necesario) ayuda a mantener al mínimo la cantidad de código que se ejecuta en el espacio del núcleo ; por ejemplo, para minimizar el espacio ocupado por el sistema operativo en el caso de dispositivos integrados o aquellos con recursos de hardware limitados. Es decir, no es necesario almacenar un módulo descargado en una memoria de acceso aleatorio escasa .

Véase también

Referencias

  1. ^ "Programación de sistemas modulares en Minix3" (PDF) .
  2. ^ "Servidor-Cliente, o estructura en capas" (PDF) . El diseño del microkernel PARAS. Archivado desde el original (PDF) el 17 de julio de 2010 . Consultado el 15 de julio de 2009 .
  3. ^ "Definición de núcleo".