Sistemas Operativos • Ingeniería de Sistemas

Guía Académica y Técnica: Sistemas Operativos

Evolución Cronológica, Taxonomía, Arquitecturas Comparadas (Windows vs. Linux), Virtualización e Inicialización del Sistema (Init vs. Systemd)

⏳ 1. Evolución Histórica de los Sistemas Operativos

La evolución de los Sistemas Operativos refleja directamente el salto cualitativo del hardware y la necesidad progresiva de maximizar el rendimiento computacional, pasando desde máquinas electromecánicas manuales hasta infraestructuras hiperconectadas y distribuidas en la nube.

ENIAC Computadora 1ª Generación
1ª Generación: ENIAC y tecnología de tubos/válvulas al vacío sin SO.
IBM System 360
3ª Generación: IBM System/360, pionero de la multiprogramación y familias de SO.
IBM PC 5150
4ª Generación: IBM PC 5150 y la era de los microprocesadores VLSI.
1ª Generación (1945 - 1955) • Válvulas de Vacío y Tableros de Conexión

Hardware: Tubos al vacío, tarjetas perforadas, sin S.O. comercial.

Características: Acceso monousuario directo mediante consola física. Programación en lenguaje máquina absoluto (binario). Tiempos muertos extensos entre trabajos. Si un cálculo fallaba, el programador debía reiniciar todo el proceso.

2ª Generación (1955 - 1965) • Transistores y Procesamiento por Lotes (Batch)

Hardware: Transistores, cintas magnéticas, impresoras mecánicas.

Avances: Lenguajes ensambladores y de alto nivel (FORTRAN, COBOL). Introducción de los primeros monitores residentes e IOCS (Input/Output Control System). Aparece la distinción de privilegios: Modo Supervisor (Privilegiado) y Modo Usuario, gestionados por interrupciones hardware y software. Se introducen los primeros buffers para desacoplar velocidad de cómputo y periféricos.

3ª Generación (1965 - 1980) • Circuitos Integrados y Multiprogramación

Hardware: Circuitos integrados (ICs), discos magnéticos.

Hitos Clave: Nacimiento de las familias de ordenadores (IBM System/360). Implementación de la Multiprogramación (múltiples procesos residentes en memoria compitiendo por la CPU) y técnicas de SPOOLing (Simultaneous Peripheral Operations On-Line). Nacimiento de los sistemas de Tiempo Compartido (Time-Sharing), Unix (1969), y las primeras memorias virtuales.

4ª Generación (1980 - 1990) • Microprocesadores VLSI y Computación Personal

Hardware: Chips VLSI (Very Large Scale Integration), computadores personales (PC x86), estaciones de trabajo.

Avances: Auge de sistemas operativos orientados al usuario final (MS-DOS, MacOS clásico, Windows 1.0-3.x). Redes de área local (LAN), sistemas de archivos en red (NFS), bases de datos relacionales y surgimiento de las interfaces gráficas de usuario (GUI).

5ª Generación (1990 - Actualidad) • Redes Globales, Móviles, Cloud y Distribución

Hardware: Multiprocesadores multinúcleo, GPUs/TPUs masivas, centros de datos hyperscale, arquitectura ARM/RISC-V en dispositivos móviles e IoT.

Avances: Sistemas Operativos Distribuidos y de Red (transparencia de cómputo, tolerancia a fallos mediante consenso distribuido), microkernels, contenedores ligeros (cgroups/namespaces), virtualización total y sistemas móviles dominantes (Android, iOS).

1G 1945-1955 Válvulas / Sin SO 2G 1955-1965 Lotes / Transistor 3G 1965-1980 Multiprogramación 4G 1980-1990 VLSI / PC / GUI 5G 1990-Hoy Móvil / Cloud / Distr.
Figura 1: Línea cronológica evolutiva de las generaciones de sistemas computacionales.

🌐 2. Estándares Abiertos en Sistemas Operativos

La proliferación de fabricantes en los años 70 y 80 provocó una severa fragmentación técnica. Para evitar el monopolio del hardware y garantizar la portabilidad del código fuente, surgieron los consorcios y normas estandarizadas:

Categoría de Estándar Estándar / Organización Propósito e Impacto en la Industria
Comunicaciones en Red Modelo OSI (ISO/IEC 7498-1) Modelo de 7 capas que definió la arquitectura de interoperabilidad entre protocolos de red heterogéneos.
Interfaces de Sistema Operativo POSIX (IEEE 1003.1 / ISO/IEC 9945) Portable Operating System Interface: conjunto de APIs estándar en lenguaje C para garantizar portabilidad entre Unix, Linux, macOS y subsistemas compatibles.
Definición de Interfaces UNIX SVID (System V Interface Definition) Publicado por AT&T para estandarizar el comportamiento del sistema operativo UNIX System V.
Interfaces Gráficas de Usuario X Window System (X11 - MIT) Protocolo de visualización de ventanas con arquitectura cliente-servidor para entornos gráficos en red.
Consorcios y Software Abierto X/Open & OSF (The Open Group) Establecieron la Single UNIX Specification y especificaciones abiertas que rigen la compatibilidad moderna.

⚙️ 3. Clasificación de los Modos de Procesamiento

Los sistemas operativos se diferencian fundamentalmente en cómo gestionan las colas de ejecución, el almacenamiento en memoria principal y la asignación del procesador:

1. Procesamiento en Serie

Secuencial estricto. El procesador atiende un único programa desde su inicio hasta su culminación. Si el programa realiza operaciones lentas de E/S, la CPU permanece ociosa.

2. Procesamiento por Lotes (Batch)

Los trabajos con necesidades operativas similares (mismo compilador o datos) se agrupan en un "lote" (batch). No existe interactividad en tiempo de ejecución; el lote entra, se procesa y genera un informe de salida.

3. Multiprogramación

Varios procesos residen concurrentemente en la memoria principal. Cuando el proceso activo se bloquea esperando una E/S, el planificador (scheduler) conmuta el contexto hacia otro proceso listo, maximizando la utilización de CPU.

4. Sistemas Interactivos (Tiempo Compartido)

Diseñados para interactuar dinámicamente con usuarios en terminales. Utilizan algoritmos de reparto de tiempo (time-slicing / Round Robin), asignando ráfagas mínimas de CPU para crear la ilusión de paralelismo simultáneo dedicado.

5. Sistemas de Tiempo Real (RTOS)

El parámetro crítico es el tiempo de respuesta determinista. Las interrupciones activan de inmediato Rutinas de Servicio de Interrupción (ISR). Se dividen en Hard Real-Time (un fallo de plazo es catastrófico) y Soft Real-Time.

6. Sistemas Distribuidos

Múltiples procesadores autónomos interconectados mediante red local o amplia que operan coordinadamente bajo un modelo común. Proporcionan transparencia de ubicación y alta tolerancia a fallos.

A) Monoprogramación (Baja utilización de CPU): CPU: Proc A Espera E/S (Ocioso) CPU: Proc A CPU: Proc B B) Multiprogramación (Alta utilización - Cambio de Contexto): CPU: Proc A Proc A en E/S CPU: Proc A CPU: Proc B (Activo)
Figura 2: Comparación entre la ejecución secuencial ociosa y el solapamiento en multiprogramación.

📚 4. Variedad de Sistemas Operativos (Taxonomía de Tanenbaum)

Según el profesor Andrew S. Tanenbaum, los sistemas operativos se adaptan estrictamente a los requerimientos de escala física, potencia de cálculo, arquitectura de memoria y restricciones de energía del hardware anfitrión:

IBM Mainframe
Mainframes Modernos: IBM z Systems para millones de transacciones bancarias concurrentes.
Servidores en Data Center
Sistemas Operativos de Servidor: Racks ejecutando Linux y Windows Server en Cloud.
Microchip Smart Card
Tarjetas Inteligentes: Java Card y MULTOS ejecutados en silicio seguro de escasos KB.

🏢 SO para Mainframes

Orientados a centros de datos empresariales con inmensa capacidad de E/S y virtualización masiva (ej. IBM z/OS). Gestionan cargas de lotes masivos, miles de transacciones concurrentes (Bases de Datos, pasarelas bancarias) y tiempo compartido simultáneo.

🖥️ SO para Servidores

Optimizados para atender múltiples peticiones concurrentes de clientes en red. Proveen servicios de impresión, ficheros, bases de datos y web (ej. Linux Enterprise, Windows Server, FreeBSD). Máxima estabilidad y rendimiento en multihilo.

💻 SO para Computadores Personales

Diseñados para brindar una interfaz amigable (GUI), soporte multimedia intensivo y multitarea interactiva a un usuario individual (ej. Windows 11, macOS, Fedora Desktop).

⚡ SO de Tiempo Real (RTOS)

El factor crítico no es la velocidad media, sino la certeza temporal determinista y el cumplimiento de plazos inflexibles (deadlines) en robótica, aviación o medicina (ej. QNX, VxWorks, FreeRTOS).

📱 SO Integrados / Embebidos

Operan en dispositivos que no son computadores convencionales: microondas, Smart TVs, automóviles o teléfonos (ej. Android, iOS, HarmonyOS, Linux Embebido). Poseen recursos limitados de RAM y consumo eléctrico.

💳 SO de Tarjeta Inteligente (Smart Cards)

Los SO más reducidos y restrictivos del mercado (corren en microchips del tamaño de una uña con escasos KB de RAM). Empleados en tarjetas de crédito (Java Card, MULTOS), pasaportes biométricos, eSIM y hardware wallets criptográficos.

📊 5. Modos de Explotación de los Sistemas Operativos

Los sistemas operativos se parametrizan técnicamente de acuerdo con cuatro ejes dimensionales fundamentales:

Criterio de Clasificación Modalidad Definición y Características Técnicas
Número de Usuarios Monousuario Un único usuario tiene el control total y exclusivo de todos los recursos (ej. MS-DOS).
Multiusuario Varios usuarios acceden y ejecutan procesos concurrentemente con aislamiento de sesiones y permisos (ej. Linux, Windows Server).
Número de Procesos Monotarea (Monoprogramación) Solo puede ejecutarse un proceso a la vez; el procesador queda retenido hasta el fin de la instrucción/programa.
Multitarea (Multiprogramación) Varios programas comparten dinámicamente memoria y ciclos de CPU mediante multiplexación temporal.
Número de Procesadores Monoproceso (Uniprocesador) El sistema dispone físicamente de una única CPU / núcleo para ejecutar instrucciones.
Multiproceso (SMP / NUMA) Dispone de dos o más procesadores/núcleos reales coordinados por el mismo SO para ejecutar hilos en auténtico paralelismo físico.
Requerimientos de Tiempo Interactivos Priorizan la satisfacción subjetiva y la baja latencia de respuesta para el usuario humano.
Tiempo Real Priorizan el cumplimiento estricto y predecible de plazos temporales absolutos por encima de la comodidad del usuario.

⚔️ 6. Análisis Arquitectónico: Microsoft Windows vs. Linux

El mercado moderno se sostiene sobre dos filosofías arquitectónicas profundamente divergentes: el modelo comercial integrado y cerrado frente al modelo abierto, modular y POSIX estándar.

Windows Logo
Microsoft Windows: Ecosistema comercial con Kernel híbrido NT y Win32/WinRT API.
Linux Tux Logo
GNU/Linux: Kernel monolítico modular de código abierto bajo licencia GPL v2.

Cronología de la Familia Windows

Desde sus orígenes como extensión gráfica sobre DOS hasta el kernel híbrido de NT (New Technology):

Versión Año Arquitectura e Hito Técnico
Windows 3.x 1990-1994 Entorno gráfico sobre MS-DOS. Windows 3.11 introdujo capacidades de red en grupos de trabajo.
Windows NT (3.1 - 4.0) 1993-1996 Nuevo microkernel híbrido de 32 bits con modelo cliente-servidor para entornos empresariales robustos.
Windows 95 / 98 / Me 1995-2000 Línea de consumo: arquitectura híbrida 16/32 bits, API Win32, Plug & Play, FAT32 y soporte de conexión a Internet.
Windows 2000 / XP 2000-2001 Unificación definitiva de las líneas de consumo y corporativa sobre el kernel NT 5.x. Estabilidad, NTFS y Active Directory.
Windows 7 / 8 / 8.1 2009-2013 Optimización del kernel NT 6.x. Soporte para microprocesadores ARM (Windows RT) e interfaces táctiles con mosaicos (Metro).
Windows 10 / 11 2015-Actual Modelo de servicio continuo (WaaS). Seguridad estricta por hardware (TPM 2.0, Secure Boot), integración con Azure y virtualización WSL 2.
Windows Server (2016-2025) 2016-2024 Contenedores Windows, virtualización anidada en Hyper-V, Nano Server y soporte para cargas híbridas de Inteligencia Artificial.

🏢 Filosofía Windows

Ventajas: Máxima compatibilidad comercial con hardware y software de consumo/ofimática; soporte corporativo centralizado; potente interfaz gráfica integrada.

Desventajas: Código propietario cerrado con coste de licenciamiento; alta demanda de recursos de hardware; ecosistema ampliamente atacado por malware.

🐧 Filosofía GNU/Linux

Ventajas: Código abierto (Licencia GPL) y distribución libre; arquitectura modular y sumamente robusta; alto rendimiento en servidores y embebidos; seguridad nativa multiusuario basada en permisos POSIX.

Desventajas: Menor disponibilidad de suites propietarias de diseño/ofimática especializadas; curva de aprendizaje más pronunciada en entornos de terminal.

🛡️ 7. Aislamiento de Ejecución: Sandboxing y Virtualización

Un Sandbox es un entorno restringido que confina la ejecución de programas para evitar que código malicioso o defectuoso comprometa la memoria, el sistema de ficheros o la red del sistema anfitrión.

VirtualBox Logo
Virtualización Completa: Hipervisores de Tipo 2 (VirtualBox, VMware Workstation) ejecutando SO invitados sobre hardware simulado.
Docker Containers
Contenedores y Aislamiento en Kernel: Docker aprovecha Namespaces y Cgroups para aislamiento ultra ligero.
SISTEMA OPERATIVO ANFITRIÓN (HOST) ENTORNO SANDBOX (AISLADO) Proceso No Confiable / App • Memoria virtual limitada • Sin acceso a FS / Red filtrada • Llamadas al sistema interceptadas Monitor / Guardián • Inspección de Syscalls • Seccomp / Namespaces / Cgroups • Validación de permisos
Figura 3: Principio estructural del confinamiento mediante Sandbox en un sistema operativo.

Taxonomía de Sandboxes según su Nivel de Implementación

Nivel de Aislamiento Mecanismo Técnico de Confinamiento Ejemplos Tecnológicos
Nivel de Kernel El núcleo impone barreras de espacio de nombres (namespaces) y cuotas de recursos (cgroups). Docker, LXC, aislamiento de apps Android (UIDs únicos y SELinux).
Nivel de Usuario Bibliotecas intermedias o motores de ejecución interceptan y filtran las llamadas a la API. Java Virtual Machine (Security Manager), Sandboxes de JavaScript en navegadores web.
Nivel de Hardware Virtualización total mediante extensiones de CPU (Intel VT-x / AMD-V) e hipervisores Type-1 o Type-2. Máquinas Virtuales completas (VMware, VirtualBox, KVM, Hyper-V).
Híbrido Combina aislamiento por hardware o micro-VMs con políticas internas del kernel. WSL 2 (Hyper-V ligero + Linux Kernel real), Chrome Sandbox, microVMs Firecracker.
💡 WSL 1 vs. WSL 2: Dos Filosofías de Arquitectura

WSL 1: Traducía dinámicamente las llamadas al sistema (syscalls) de Linux hacia la API del núcleo NT de Windows en tiempo real. No existía un kernel Linux real.

WSL 2: Ejecuta un Kernel Linux completo y optimizado dentro de una máquina virtual hiperligera gestionada por Hyper-V, ofreciendo 100% de compatibilidad con llamadas al sistema y rendimiento nativo de archivos.

🚀 8. Inicialización del Sistema en Linux: SysVinit vs. Systemd

Al completarse la secuencia de arranque del BIOS/UEFI y cargarse el Kernel en la memoria RAM, este inicia el primer proceso en espacio de usuario con PID = 1, el cual actúa como ancestro de todos los procesos del sistema.

📜 SysVinit (El Sistema Tradicional)

  • Secuencial y síncrono: Los demonios se arrancan uno tras otro siguiendo el orden de scripts en /etc/init.d/.
  • Niveles de ejecución: Utiliza los tradicionales runlevels (0 a 6).
  • Sin supervisión activa: Si un demonio muere en tiempo de ejecución, SysVinit no lo reinicia automáticamente.
  • Desventaja: Arranque notablemente lento y complejidad extrema al gestionar dependencias complejas entre servicios.

⚡ Systemd (El Estándar Moderno)

  • Paralelización masiva: Utiliza activación por sockets y D-Bus para levantar dependencias simultáneamente.
  • Gestión por Unidades: Reemplaza runlevels por targets (ej. multi-user.target, graphical.target).
  • Control de Recursos Integrado: Asocia cada servicio a un cgroup propio del kernel Linux, impidiendo procesos huérfanos.
  • Supervisión continua y Journaling: Reinicia automáticamente servicios fallidos y centraliza los logs en journald.
A) SysVinit (Arranque Secuencial Lento): Red (Espera...) Syslog (Espera...) Apache (Espera...) Login Prompt B) Systemd (Arranque Concurrente Paralelo con Activación de Sockets): NetworkManager.service systemd-journald.service httpd.service (Socket Activo) Login Disponible ⚡ Tiempo total de arranque reducido drásticamente
Figura 4: Comparación del flujo temporal entre la inicialización SysVinit y la arquitectura Systemd.

📖 9. Glosario Técnico de Conceptos Vitales

Definiciones fundamentales para el estudiante de Ingeniería de Sistemas:

⚙️ Proceso (Process)

Instancia de un programa en ejecución que incluye su propio espacio de memoria virtual, registros de CPU, pila (stack) y descriptores de archivo.

🔄 Contexto de un Proceso

Conjunto de información de estado (contador de programa, registros, puntero de pila, tablas de páginas) que la CPU guarda para reanudar el proceso más tarde.

⚡ Interrupción (Interrupt)

Señal hardware o software que suspende el flujo secuencial de la CPU para transferir el control a una Rutina de Servicio de Interrupción (ISR).

🔀 Desvío (Trap / Excepción)

Interrupción generada de forma síncrona por el software cuando ocurre una condición excepcional (ej. división por cero, violación de página o llamada syscall).

📁 Archivo / Directorio

Unidad lógica de almacenamiento persistente abstraída por el sistema de archivos. Un directorio es un archivo especial que asocia nombres con identificadores (inodes).

🗺️ Ruta (Path)

Secuencia de directorios que define la localización exacta de un archivo en el árbol jerárquico del sistema (Absoluta: desde la raíz /; Relativa: desde el directorio actual ./).

💾 Partición

División lógica e independiente dentro de una unidad de almacenamiento físico (organizada mediante esquemas MBR o GPT).

🔌 Driver (Controlador)

Módulo de software del kernel que interactúa directamente con los registros y puertos de control del hardware de un dispositivo específico.