Estructura de un Sistema Operativo
Introducción
Un sistema operativo (SO) no es un programa único, sino un conjunto organizado de módulos que trabajan en conjunto para gestionar recursos y ofrecer servicios a los usuarios y aplicaciones.
La estructura de un SO determina cómo se organizan, interactúan y comunican esos módulos. Esta organización es fundamental porque afecta al rendimiento, la seguridad y la facilidad de mantenimiento.
Componentes Principales de un SO
- Núcleo (Kernel): parte central que controla CPU, memoria, dispositivos de E/S y llamadas al sistema.
- Gestión de procesos: administra la ejecución, planificación y sincronización de procesos.
- Gestión de memoria: controla la asignación, liberación y protección de la memoria principal.
- Gestión de archivos: organiza y proporciona acceso seguro a los datos en almacenamiento secundario.
- Gestión de dispositivos de entrada/salida (E/S): comunica hardware con aplicaciones.
- Sistema de protección y seguridad: garantiza acceso seguro y controlado a recursos.
Modelos de Estructura de un SO
• Estructura Monolítica:
- Todo el sistema operativo corre como un único programa en modo kernel.
- Ejemplo: MS-DOS, primeras versiones de UNIX.
- Ventajas: rápido, menos capas de comunicación.
- Desventajas: difícil de mantener, un fallo puede tumbar todo el sistema.
• Estructura en Capas:
- Organizado en niveles jerárquicos. Cada capa interactúa con la inferior y superior.
- Ejemplo: THE (Dijkstra), OS/2.
- Ventajas: modularidad, facilita depuración.
- Desventajas: sobrecarga y complejidad.
• Microkernel:
- El kernel es mínimo, gestiona solo lo esencial (procesos, memoria, comunicación entre procesos).
- Ejemplo: Mach, Minix, QNX.
- Ventajas: mayor seguridad y estabilidad.
- Desventajas: menor rendimiento por comunicación entre procesos.
• Estructura Híbrida:
- Combina microkernel y monolítico.
- Ejemplo: Windows NT/10/11, Linux, macOS.
- Ventajas: equilibrio entre rendimiento y modularidad.
- Desventajas: complejidad en el diseño.
• Estructura Modular:
- Usa módulos cargables dinámicamente, facilitando extensibilidad.
- Ejemplo: Linux, Solaris.
- Ventajas: flexibilidad, personalización.
- Desventajas: requiere gestión cuidadosa de dependencias.
Ejemplos Reales
- Linux (Modular/Híbrido): se pueden cargar y descargar módulos como drivers con
modprobe. - Windows (Híbrido): combina microkernel con servicios en modo usuario para mejorar rendimiento.
- Android: basado en Linux modular, con servicios propios (HAL, ART, Binder).
- MacOS: basado en XNU, que mezcla Mach (microkernel) y BSD (monolítico).
Ejemplo Práctico
Linux (Ubuntu):
Comando:
lsmod
→ Lista los módulos del kernel cargados en memoria.
Windows:
Uso del Administrador de tareas → ver procesos y servicios en ejecución.
Glosario
- Kernel: núcleo central del SO.
- Proceso: programa en ejecución que requiere recursos.
- Módulo: componente independiente que se integra al SO.
- Microkernel: diseño de núcleo reducido que delega servicios al espacio de usuario.
- Híbrido: estructura que mezcla características de kernel monolítico y microkernel.
- E/S (Entrada/Salida): comunicación entre hardware y sistema.
- Driver: software que permite la comunicación entre el SO y un dispositivo físico.