Evolución Cronológica, Taxonomía, Arquitecturas Comparadas (Windows vs. Linux), Virtualización e Inicialización del Sistema (Init vs. Systemd)
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.
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.
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.
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.
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).
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).
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. |
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:
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.
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.
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.
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.
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.
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.
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:
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.
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.
Diseñados para brindar una interfaz amigable (GUI), soporte multimedia intensivo y multitarea interactiva a un usuario individual (ej. Windows 11, macOS, Fedora Desktop).
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).
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.
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.
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. |
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.
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. |
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.
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.
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.
| 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: 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.
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.
/etc/init.d/.targets (ej. multi-user.target, graphical.target).cgroup propio del kernel Linux, impidiendo procesos huérfanos.journald.Definiciones fundamentales para el estudiante de Ingeniería de Sistemas:
Instancia de un programa en ejecución que incluye su propio espacio de memoria virtual, registros de CPU, pila (stack) y descriptores de archivo.
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.
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).
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).
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).
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 ./).
División lógica e independiente dentro de una unidad de almacenamiento físico (organizada mediante esquemas MBR o GPT).
Módulo de software del kernel que interactúa directamente con los registros y puertos de control del hardware de un dispositivo específico.