Ir al contenido

3. Historia de los sistemas operativos

Evolución de los sistemas operativos a través de cinco generaciones, desde los primeros mainframes de los años 40 hasta UNIX, MS-DOS, Windows y GNU/Linux.

31 min de lectura

La historia de los sistemas operativos se puede dividir en cinco grandes etapas o generaciones, obviamente conectadas con las generaciones de los ordenadores donde se ejecutaban.

En la primera generación de ordenadores no se utilizaban sistemas operativos. Las principales características de estos sistemas son:

  • Computadoras construidas con electrónica de válvulas de vacío.
  • Sin sistema operativo.
  • Sin lenguajes de programación. Se programaban directamente en lenguaje máquina.

Algunos ejemplos de ordenadores destacables de esta generación fueron:

  • ENIAC (1945). Se le considera el primer ordenador electrónico digital de propósito general, aunque existe cierta polémica sobre este punto. Lo cierto es que se construyeron otros ordenadores antes que este, pero o no eran de propósito general —como las famosas computadoras Colossus (1944), que fueron específicamente diseñadas para ayudar en criptoanálisis— o no eran electrónicos sino electromecánicos —como las computadoras Z3 (1941) y Z4 (1945), que usaban relés—.

    ENIAC no era un producto comercial sino un proyecto experimental de defensa que principalmente se diseñó y utilizó para calcular tablas de tiro de artillería destinadas al Laboratorio de Investigación Balística del Ejército de los Estados Unidos.

  • IBM 701 (1953) [@Wikipedia-IBM701]. Fue el primer ordenador comercial de IBM y el primer mainframe de la serie IBM 700, que a la larga se convertiría en un éxito de ventas. Utilizaba tubos de vacío y tarjetas perforadas.

La serie IBM 700 fue la primera serie comercial de ordenadores de IBM. Desarrollada entre 1952 y 1969, los modelos más destacados fueron el IBM 701 —la primera computadora científica comercial de IBM—, el IBM 704 —pionero en el uso de la aritmética en coma flotante—, y el IBM 709 —utilizado en la investigación aeronáutica y espacial—.

La serie 700 utilizaba válvulas de vacío, pero IBM desarrolló la serie 7000 para ofrecer modelos equivalentes que utilizaban transistores, lo que permitió una mayor fiabilidad y menor consumo de energía en comparación con los basados en válvulas de vacío. Modelos transistorizados como el IBM 7070, 7090 y 7094 marcaron la transición a la era de los transistores.

La serie IBM 700/7000 ha tenido un papel importante en diferentes momentos de la historia. Por ejemplo, el IBM 7090 —versión transistorizada del 709— y el posterior 7094 fueron usados por la NASA para los cálculos de control de las misiones de los programas espaciales Mercury y Gemini y durante la primera etapa del programa Apolo.

En la segunda generación de ordenadores los transistores reemplazaron a las válvulas de vacío, mientras que en lo que respecta a los sistemas operativos:

  • Aparecen los monitores del sistema, que se pueden considerar un predecesor de los sistemas operativos.
  • Sistema de procesamiento por lotes.
  • Se comienzan a utilizar lenguajes de programación, como: ensamblador, FORTRAN y COBOL.

GM-NAA I/O (General Motors and North American Aviation Input/Output system) es considerado como el primer sistema operativo. Fue desarrollado por General Motors Research Laboratory en 1956 para el mainframe IBM 704 con el fin de automatizar la carga y ejecución de un nuevo trabajo una vez había terminado el anterior. Para su desarrollo se basaron en un monitor del sistema creado en 1955 por programadores de General Motors para el IBM 701.

Instalación de un mainframe IBM 702, 1953.
Instalación de un IBM 702 en 1953, un mainframe de primera generación que funcionaba con tubos de vacío y cintas magnéticas. Solo se fabricaron 14 unidades en todo el mundo. Fotografía cortesía de Wikipedia, commons.wikimedia.org

En la tercera generación se comenzaron a utilizar los circuitos integrados, que fue una invención de finales de la década de 1950. En lo que respecta a los sistemas operativos:

  • Aparecen los sistemas operativos multiprogramados.
  • Aparecen más lenguajes de programación.

El ejemplo más destacado de esta época es el IBM OS/360. Fue un sistema operativo desarrollado por IBM para su mainframe IBM System/360 (S/360). Su versión DOS/360 (Disk Operating System/360) fue el primer sistema operativo en hacer los discos magnéticos un requisito para poder operar.

Instalación de un mainframe IBM System/360.
Instalación de un mainframe IBM System/360 (1064), la primera familia de mainframes con multiprogramación que popularizó el uso de discos magnéticos. Fotografía cortesía de IBM, ibm.com/history.

Se anunció en 1964, pero fue lanzado en 1966, con un año de retraso respecto a la fecha prevista originalmente. Los motivos fundamentales fueron ciertos problemas de organización interna de la compañía y la falta de experiencia en proyectos de esa envergadura. Las previsiones iniciales eran de 1 millón de líneas de código y miles de componentes de software.

La cuarta generación abarca desde mediados de los años 60 hasta finales de la década de los 70. Los computadores de esta generación son el resultado del desarrollo de los microprocesadores, mientras que en lo que respecta a los sistemas operativos:

  • Aparecen los sistemas operativos de tiempo compartido.
  • Aparecen los terminales, los programas interactivos y las máquinas virtuales.

A continuación veremos los ejemplos más representativos de esta época.

Multics (Multiplexed Information and Computing Service) fue anunciado en 1964, fruto de la colaboración entre el MIT, General Electric y Bell Labs, como el primer sistema operativo de propósito general.

Mainframe GE-6180 con sistema MULTICS y paneles de control abiertos.
Mainframe GE-6180 con sistema MULTICS, en torno a 1976 en el Cambridge Information Systems Laboratory (CISL). Normalmente, usaban la máquina con las puertas abiertas para que los operadores pudieran ver la pantalla del registro AQ, que indicaba la carga de trabajo, y para acceder fácilmente al botón EXECUTE, que el operador pulsaba para entrar en el sistema operativo de arranque (BOS) si la máquina fallaba. Los dos paneles de control visibles corresponden a un controlador de memoria a la izquierda y a una CPU en el centro. Fotografía cortesía de Tom Van Vleck, multicians.org

Fue el primer sistema operativo en proporcionar un sistema de archivos jerárquico, intérprete de comandos implementado como programa de usuario, listas de control de acceso individuales para cada archivo y enlazado dinámico, entre otras características novedosas.

Además, experimentó con eliminar la separación entre el espacio de direcciones de los procesos y los archivos. Es decir, como si los archivos estuvieran mapeados en memoria, permitiendo a los procesos acceder al contenido de los archivos directamente, sin tener que ordenar manualmente operaciones de lectura desde el disco a la memoria (ver el apartado «Archivos mapeados en memoria»).

VM/CMS es un sistema de IBM utilizado en los mainframes IBM System/360, System/370, System/390 y zSeries. VM es un hipervisor que se encarga de virtualizar el hardware para crear múltiples máquinas virtuales, dando la sensación de que cada una es un mainframe independiente.

Como sistema operativo de las máquinas virtuales, una opción común es CMS, un sistema interactivo y monousuario muy ligero, diseñado para operar fundamentalmente en una máquina virtual de VM. Gracias a VM/CMS, cada usuario tiene la sensación de trabajar en un sistema completamente independiente y seguro.

El desarrollo de VM/CMS comenzó en 1965 y la primera versión estuvo disponible a primeros de 1966. Las versiones actuales se denominan IBM z/VM.

UNIX fue desarrollado originalmente por Bell Labs en 1970 para los sistemas PDP-11/20. La autoría de este se le atribuye a un grupo de programadores, liderados por Ken Thompson, que decidieron rehacer el trabajo de Multics, pero a menor escala, después de que Bell Labs abandonara el proyecto Multics en 1969. Inicialmente se llamó UNICS y fue desarrollado para los sistemas PDP-7 —una minicomputadora de la serie PDP de Digital Equipment Corporation (DEC)—.

Dennis Ritchie y Ken Thompson operando una minicomputadora PDP-11.
Dennis Ritchie (de pie) y Ken Thompson (sentado) operando una minicomputadora PDP-11 en los Laboratorios Bell a principios de la década de 1970, durante las fases iniciales del desarrollo del sistema operativo UNIX. Frente a la minicomputadora se observan dos terminales Teletype 33 utilizados para interactuar con el sistema. Fotografía cortesía de Dennis Ritchie, nokia.com

Los sistemas UNIX se caracterizan por ofrecer un gran número de pequeñas herramientas especializadas diseñadas para trabajar unidas —a través de la línea de comandos usando tuberías— y por usar la E/S de archivos como modelo universal de E/S. Es decir, que los dispositivos, ciertos mecanismos de comunicación entre procesos y hasta algunos aspectos de la configuración e información del sistema son gestionados como archivos.

La primera versión de UNIX fue implementada en ensamblador, como era común en la época. Posteriormente, Dennis Ritchie diseñó el lenguaje de programación «C», especialmente pensado para que UNIX fuera escrito con él. Eso facilitó que UNIX pudiera ser portado a ordenadores diferentes. Además, gracias al lenguaje C, el código era más conciso y compacto, lo que se tradujo en que se pudieron desarrollar nuevas funcionalidades más rápidamente.

AT&T, la compañía matriz de Bell Labs, no podía competir en la industria de los ordenadores, por lo que puso el código fuente de UNIX a disposición de universidades, compañías privadas y del gobierno de los Estados Unidos. Eso aumentó su difusión y dio resultados inesperados. Por ejemplo, una de las variantes más importantes de UNIX fue BSD (Berkeley Software Distribution), desarrollada por la Universidad de California en Berkeley. La primera versión, 1BSD, fue lanzada en 1977 y la última versión, 4.4BSD-Lite Release 2, en 1995.

La versión 4.2BSD fue la primera que incluyó la interfaz sockets para facilitar la comunicación entre procesos a través de Internet y otras redes. Esta interfaz se ha convertido en un estándar en prácticamente cualquier sistema operativo. También implementó y ayudó a difundir el estándar de comunicaciones TCP/IP, base de la actual Internet. Muchos sistemas operativos actuales, tanto libres como privativos, utilizan código de UNIX BSD en sus implementaciones de los protocolos TCP/IP y de diversas utilidades de red.

Los sistemas UNIX siguieron evolucionando hasta adaptarse a la 5ª generación de sistemas, la de los sistemas de escritorio y los ordenadores personales. En la actualidad se considera que hay dos grandes familias de UNIX y las distintas variantes pertenecen a una u otra en función del UNIX del que derivaron originalmente:

  • La familia derivada de AT&T UNIX System V, en la que se incluyen sistemas operativos no libres, tales como: SCO OpenServer, Oracle/Sun Microsystems Solaris Operating Environment y SCO UnixWare. Todos estos sistemas fueron muy populares en los años 80 y 90, especialmente en entornos empresariales, pero actualmente han perdido relevancia frente a sistemas libres como GNU/Linux y FreeBSD.

  • La familia derivada de UNIX BSD, en la que se incluyen sistemas libres como: FreeBSD —probablemente la versión más popular—, NetBSD, OpenBSD —centrada en la seguridad—, Darwin —base de macOS— y DragonFly BSD, entre muchos otros.

En 1988 el IEEE publicó el primer estándar POSIX, un intento de estandarizar la interfaz de programación de aplicaciones (API, del inglés Application Programming Interface) —el conjunto de funciones y servicios que el sistema operativo expone a las aplicaciones— con el fin de que los programas fueran portables entre las distintas variantes de UNIX. Este estándar se basó en las características de las principales variantes de UNIX en el momento.

A principios de los 90, como las distintas variantes de UNIX estaban divergiendo —haciendo muy difícil desarrollar programas compatibles con todas ellas— se inició un esfuerzo para desarrollar una especificación común; de tal forma que solo aquellas variantes que la cumplieran pudieran denominarse como «UNIX». En 1994 se publicó la Single UNIX Specification (SUR), gestionada por The Open Group.

En 1998, las organizaciones IEEE, The Open Group y la International Organization for Standardization (ISO) comenzaron a trabajar en una nueva especificación que integrara POSIX y SUR. En 2002 se publicó como la «Single UNIX Specification, Version 3», cuya base es idéntica al estándar POSIX.1-2001 IEEE. Los sistemas operativos certificados por su cumplimiento reciben la marca «UNIX 03», como es el caso de macOS. Pero hay que tener en cuenta que la mayoría de los sistemas basados en UNIX BSD y Linux no han pasado nunca por el proceso de certificación, por lo que no pueden usar la marca UNIX, aunque cumplan con el estándar POSIX, que es la base de la especificación SUR.

Desde 2002 se han publicado otras versiones de SUR, siempre sobre la base de nuevas versiones de la especificación POSIX.

Sistemas tipo UNIX hay muchos, pero Plan 9 —también de Bell Labs— fue desarrollado para llevar los conceptos de UNIX un poco más lejos, sustituyendo a UNIX en Bell Labs como plataforma principal de investigación en sistemas operativos.

Plan 9 es un sistema operativo distribuido, diseñado para que una red heterogénea de ordenadores separados geográficamente funcionara como un único sistema informático. En Plan 9, cada proceso tiene su propia vista del sistema de archivos, a través de la cual los procesos pueden acceder a distintos recursos o comunicarse con otros procesos. Es decir, Plan 9 generalizó el modelo universal de E/S de UNIX —basado en la E/S de archivos— porque todo a lo que puede tener acceso un proceso —incluidos los canales de comunicación con otras aplicaciones y servicios— son archivos en la vista privada que del sistema de archivos tiene cada proceso.

Los procesos en equipos diferentes pueden comunicarse de forma transparente. Solo hace falta que un proceso exponga parte de su sistema de archivos en la vista de los procesos que quieren comunicarse con él. Esto ocurre de forma transparente, gracias al protocolo de comunicación 9P de Plan 9. Este protocolo es el que usan actualmente Windows Subsystem for Linux (WSL), QEMU y otras herramientas de virtualización, para ofrecer acceso a los archivos de una máquina virtual desde el sistema operativo anfitrión.

Además, el desarrollo de Plan 9 también dejó otras aportaciones. Por ejemplo, el estándar de codificación Unicode UTF-8 nació para ser usado en Plan 9 como formato nativo de cadenas de caracteres.

En 1996, el desarrollo de Plan 9 pasó a un segundo plano para dar prioridad a Inferno, con el que Bell Labs intentó usar su experiencia con Plan 9 para desarrollar un sistema operativo distribuido que al mismo tiempo fuera una plataforma con la que competir con Java. Las aplicaciones se desarrollaban en un lenguaje llamado Limbo y se ejecutaban en una máquina virtual —similar a la de Java— que venía incluida con Inferno. De esta manera las aplicaciones podían ejecutarse independientemente de la arquitectura del hardware.

VMS es un sistema operativo de 32 bits diseñado originalmente por Digital Equipment Corporation (DEC) —ahora propiedad de HP— en 1978 para usarlo en minicomputadoras VAX. Posteriormente fue portado a sistemas DEC Alpha e Intel Itanium.

Instalación de una minicomputadora VAX-11/780.
Instalación de la minicomputadora VAX-11/780 en 1980. Ingenieros probablemente operando el sistema de procesamiento de datos astronómicos Starlink en el Centro Atlas (Chilton, Reino Unido), equipado con el sistema operativo VMS y unidades de almacenamiento en cinta magnética. Fotografía cortesía de Science and Technology Facilities Council, chilton-computing.org.uk

Las siglas VMS vienen de Virtual Memory System, ya que una de sus principales características era explotar el concepto de memoria virtual. Este concepto también es muy utilizado en los sistemas operativos modernos. Permite que los procesos se ejecuten aislados, unos de otros, en la memoria principal y sin tener que ser cargados completamente, lo que permite que cada uno consuma menos memoria.

VMS era un sistema multiusuario y multiprocesador que podía distribuir el trabajo entre varias máquinas, lo que le permitía ser tolerante a fallos.

El IBM OS/400 es un sistema utilizado en la familia de minicomputadoras IBM AS/400 —llamada iSeries desde 2006—. Fueron introducidos en el mercado en 1988, pero aún es posible encontrarlos en algunas organizaciones. En 2008 el sistema operativo IBM OS/400 pasó a llamarse IBM i y siguen publicándose nuevas versiones en la actualidad.

Esta última generación abarca desde la década de 1980 hasta la actualidad y se caracteriza por el aumento del nivel de integración de los circuitos integrados —con el consiguiente aumento de prestaciones— y la popularización de los computadores personales. En lo que respecta a los sistemas operativos de esta generación:

  • Aparecen los sistemas operativos de escritorio, para ser usados en los computadores personales (PC).
  • Se popularizan las interfaces gráficas de usuario (GUI).
  • Aparecen al mismo tiempo múltiples conceptos nuevos: monousuario, multitarea, distribuidos, paralelos, tiempo real, etc.

La popularización de las interfaces gráficas de usuario permitió a los usuarios interactuar con el sistema operativo de una manera más intuitiva y visual, utilizando iconos, ventanas y menús. Se pueden ver ejemplos de estas interfaces gráficas en el artículo «Operating System Interface Design Between 1981-2009».

CP/M (1974) fue el sistema operativo estándar en la primera generación de microcomputadoras. Fue creado por Digital Research, Inc. —fundada por Gary Kildall— para ser el sistema operativo de los microordenadores basados en Intel 8080/85 y Zilog Z80.

Con la elección de MS-DOS por parte de IBM para su IBM PC, CP/M fue perdiendo mercado paulatinamente hasta desaparecer. Sin embargo, la influencia de CP/M en MS-DOS es indudable, en tanto en cuanto 86-DOS, el predecesor de MS-DOS, estaba basado en las ideas de CP/M.

MS-DOS fue el sistema operativo estándar en la segunda generación de microcomputadoras. No era ni multitarea ni multiusuario, ni ofrecía operación en modo dual —es decir, separación entre el modo privilegiado donde corre el sistema operativo y el modo usuario donde corren las aplicaciones—, lo que hacía que cualquier error en una aplicación pudiera comprometer la estabilidad de todo el sistema. Fue el primer sistema operativo del IBM PC —lanzado en 1981— y durante mucho tiempo fue ampliamente utilizado en toda la plataforma «PC compatible».

MS-DOS fue creado por Seattle Computer Products (SCP) con el nombre de 86-DOS en 1979. Se basaron en ideas de CP/M, pues pretendían ofrecer una versión de CP/M para procesadores Intel 8086. Inicialmente era conocido como QDOS (Quick and Dirty Operating System 🙃) pero SCP le cambió el nombre en 1980, cuando comenzaron a licenciarlo. Posteriormente, Microsoft adquirió el sistema y lo vendió a IBM en 1981 con el nombre de MS-DOS.

Tanto IBM como Microsoft lanzaron versiones de DOS, aunque originalmente IBM solamente validaba y empaquetaba el software de Microsoft. Microsoft lanzaba sus versiones bajo el nombre de MS-DOS, mientras IBM las publicaba bajo el nombre de IBM PC-DOS. Además, la empresa desarolladora de CP/M —Digital Research, Inc.— también lanzó su propia versión de DOS para el IBM PC, llamada DR-DOS, que fue un competidor directo de MS-DOS.

OS/2 fue un sistema operativo creado por Microsoft e IBM para aprovechar las nuevas características de la segunda generación de ordenadores personales de IBM, equipados con procesador Intel 80286. Pero al final terminó siendo desarrollado en exclusiva por IBM.

OS/2 fue pensado como un sucesor con operación en modo dual de MS-DOS y de Microsoft Windows 2.0. Fue anunciado en abril y lanzado en diciembre de 1987 como un sistema operativo en modo texto. En la versión 1.1, lanzada en noviembre de 1988, se le añadió una interfaz gráfica.

Panel de control de OS/2 1.1 con el diálogo de selección de color.
Panel de control de Microsoft/IBM OS/2 1.1 con el diálogo de selección de color abierto. El icono inferior DOS representa la ventana minimizada del entorno de compatibilidad para utilizar la línea de comandos y ejecutar programas de MS-DOS. Imagen cortesía de Michal Necasek, os2museum.com

La colaboración entre IBM y Microsoft terminó en 1990, entre el lanzamiento de Windows 3.0 y el de OS/2 1.3. El aumento de popularidad de Windows llevó a Microsoft a dejar de centrarse en el desarrollo de OS/2, lo que hizo que IBM se preocupara por los continuos retrasos en el desarrollo de OS/2 2.0. Inicialmente ambas compañías acordaron que IBM tomaría el mantenimiento de OS/2 1.0 y el desarrollo de OS/2 2.0, mientras Microsoft continuaría desarrollando OS/2 3.0, que entonces era conocido como «NT OS/2». Sin embargo, Microsoft finalmente decidió renombrar NT OS/2 como Windows NT, dejando el futuro desarrollo de OS/2 en manos de IBM. OS/2 Warp 3 fue un sistema completo de 32 bits lanzado en 1994. Le seguiría OS/2 Warp 4, en 1996, y poco después IBM anunció la desaparición de OS/2.

Entorno de desarrollo Java en OS/2 Warp 4.
Entorno de desarrollo del lenguaje Java en OS/2 Warp 4. Imagen cortesía de Michal Necasek, os2museum.com

Macintosh fue presentado por Apple en enero de 1984 y fue el primer ordenador personal con una interfaz gráfica de usuario (GUI) basada en escritorio, ventanas, iconos y ratón que tuvo éxito comercial. Aunque las ideas de este paradigma de interacción procedían del Xerox PARC, fue Apple quien las llevó al público en general con éxito, estableciendo los estándares visuales e interactivos que inspirarían sistemas operativos gráficos posteriores.

El sistema operativo original del Macintosh, inicialmente sin nombre propio —denominado simplemente System—, fue evolucionando hasta adoptar el nombre oficial de Mac OS en su versión 7.6, en 1997. La última versión del Mac OS Clásico fue la 9.2.2, lanzada en 2002.

Pese a su éxito, el Mac OS Clásico presentaba importantes limitaciones técnicas:

  • Usaba multitarea cooperativa en lugar de expropiativa. Es decir, las aplicaciones cedían voluntariamente el control de la CPU, por lo que una aplicación bloqueada podía dejar el sistema completamente inoperativo.
  • Carecía de protección de memoria. Todos los procesos compartían el mismo espacio de memoria, de modo que un error en una aplicación podía corromper la memoria de las otras o del propio sistema operativo, ocasionando el bloqueo de todo el sistema.

A mediados de los 90, estas limitaciones presentaban una seria desventaja a la hora de competir con Windows NT y las distintas variantes de UNIX. Ante la imposibilidad de modernizar su sistema operativo internamente, Apple adquirió en diciembre de 1996 la empresa NeXT —fundada por Steve Jobs tras su salida de Apple en 1985—. Con esta adquisición obtuvo el sistema operativo NeXTSTEP, que se convertiría en la base tecnológica del nuevo sistema operativo de Apple.

NeXTSTEP estaba basado en UNIX BSD pero construido sobre Mach, un núcleo de sistema operativo desarrollado en la Universidad Carnegie-Mellon (CMU) entre 1985 y 1994. Mach explora el concepto de microkernel: un tipo de núcleo de sistema operativo que implementa solo las funciones más básicas, como la gestión de la memoria y la comunicación entre procesos, dejando el resto de las funciones del sistema operativo a procesos con menos privilegios. Esto ofrece ventajas en cuanto a seguridad, fiabilidad y portabilidad, aunque también puede presentar inconvenientes en cuanto al rendimiento.

Entorno gráfico de OpenStep 4.2.
Entorno gráfico de OpenStep 4.2. Imagen cortesía de Marcin Wichary, guidebookgallery.org

Mac OS X fue lanzado en marzo de 2001 como una renovación completa del sistema operativo de Apple, construido sobre OpenStep —una versión actualizada de NeXTSTEP—. OpenStep combinaba el núcleo Mach 2.5 con porciones del sistema UNIX BSD de la Universidad de Berkeley, lo que aportó al ecosistema Mac características de las que el Mac OS Clásico carecía:

  • Memoria protegida. Cada proceso tiene su propio espacio de memoria, lo que evita que un fallo en una aplicación afecte al resto del sistema.
  • Multitarea expropiativa. El sistema operativo puede interrumpir un proceso para ceder tiempo de CPU a otro.
  • Base UNIX. Heredaba su robustez y las herramientas de los sistemas UNIX, atrayendo a desarrolladores y usuarios profesionales que hasta entonces rechazaban la plataforma Mac.
  • Una nueva interfaz gráfica denominada Aqua, con translucencia, sombras y animaciones que rompía radicalmente con la apariencia del Mac OS Clásico.

Actualmente, la base del sistema operativo macOS —como se denomina Mac OS X desde 2016— es un sistema operativo libre denominado Darwin y desarrollado por Apple. Darwin es un sistema basado en gran medida en FreeBSD pero adaptado para correr sobre el núcleo XNU de Apple, que combina el microkernel Mach con componentes del núcleo de FreeBSD. Darwin/XNU proporciona la base para macOS, iOS, watchOS, tvOS, visionOS y otros sistemas operativos de Apple.

La familia Windows 3.x de Microsoft Windows fue desarrollada desde 1990 hasta 1994. Windows 3.0 fue la primera versión de éxito de Windows, permitiendo a Microsoft competir con el Macintosh de Apple Computer y el Commodore Amiga.

Administrador de programas de Microsoft Windows 3.0.
Administrador de programas de Microsoft Windows 3.0, utilizado para organizar y ejecutar aplicaciones, representadas por iconos. Detrás se pueden observar las ventanas del editor «Notepad» y la calculadora y en el lado inferior los iconos de las aplicaciones minimizadas: el procesador de textos «Write» y el reloj. Imagen cortesía de Marcin Wichary, guidebookgallery.org

En 1983, Microsoft anunció el desarrollo de Windows, una interfaz gráfica de usuario para su sistema MS-DOS, que se usaba en los IBM PC y compatibles desde 1981. Windows requería una instalación previa de MS-DOS y era iniciado como un programa más, que podía ser terminado en cualquier momento, devolviendo al usuario a la línea de comandos de MS-DOS.

MS-DOS le proporcionaba a Windows controladores de dispositivo para ciertas tareas, como el acceso al CD-ROM o a la interfaz de red. Sin embargo Microsoft Windows ejecutaba aplicaciones específicas de Windows, almacenadas en un formato ejecutable mucho más complejo que el de los programas de MS-DOS. Además, debido a que MS-DOS no aislaba a las aplicaciones del hardware y no se protegía a sí mismo de los errores en dichas aplicaciones, Windows disponía de controladores de dispositivo propios, así como sus propios sistemas de gestión de procesos y de memoria. En realidad Microsoft Windows no se ejecutaba sobre MS-DOS, sino que hacía uso de él. Por ello puede ser considerado como un sistema operativo por sí mismo, en lugar de como una aplicación avanzada de MS-DOS.

La familia Windows 3.x fue sustituida por una serie de sistemas operativos gráficos híbridos de 16/32 bits.

Escritorio de Microsoft Windows 95 con la barra de tareas.
Escritorio con aplicaciones en Microsoft Windows 95. Se puede observar varias aplicaciones abiertas, como el «Panel de control» y la utilidad para configurar la conexión mediante líneas telefónicas. En la parte inferior se puede ver la barra de tareas con el menú de inicio abierto y el reloj en la esquina inferior derecha. Imagen cortesía de Marcin Wichary, guidebookgallery.org

Windows 95 fue lanzado en 1995 y fue el primer Windows unido a una versión de MS-DOS específica, aunque este hecho se intentaba mantener oculto. Entre las características de Windows 95 destacan: mejoras significativas en la interfaz de usuario, nombres de archivo de hasta 256 caracteres con conservación de mayúsculas y minúsculas —en MS-DOS el límite era de 8 caracteres para el nombre más 3 de extensión— y multitarea expropiativa para las aplicaciones de 32 bits.

Windows 98 fue lanzado el 25 de junio de 1998. Le siguió Windows Me, el 14 de septiembre de 2000. Esta fue la última versión de la familia de sistemas operativos híbridos de 16/32 bits que sucedió a la familia Windows 3.x.

Microsoft Windows NT (de NT 3.1 a Windows 11)

Sección titulada «Microsoft Windows NT (de NT 3.1 a Windows 11)»

Windows NT fue un sistema operativo de 32 bits. El primero de la familia de sistemas operativos Microsoft Windows actuales. Su desarrollo empezó en 1988 con el nombre de «NT OS/2», con la idea de que se convirtiera en el futuro OS/2 3.0. Para ello Microsoft contrató a un grupo de desarrolladores de Digital Equipment Corporation para crear Windows NT, por lo que muchos de sus elementos reflejan la experiencia anterior de DEC en VMS, como hemos comentado anteriormente.

Desde sus inicios, Windows NT pretendía soportar varias API de distintos sistemas operativos —por ejemplo Win32, POSIX y OS/2 2.1— que eran implementadas como subsistemas encima de una API nativa no documentada públicamente. Esta estructura en subsistemas, fue lo que permitió la adopción tardía de la API de Windows 3.0 como API principal, en lugar de la de OS/2.

Cuando Windows 3.0 fue lanzado en mayo de 1990, tuvo tanto éxito que Microsoft decidió cambiar la API principal del aún en desarrollo NT OS/2 pasando de ser una versión extendida de la API de OS/2 a una versión extendida de la API de Windows 3.0. Esta decisión causó tensión entre Microsoft e IBM y provocó que finalmente terminara la colaboración. IBM continuó desarrollando OS/2 3.0, mientras que Microsoft cambió el nombre de NT OS/2 a Windows NT y continuó su desarrollo en solitario.

La primera versión —Windows NT 3.1— lanzada el 27 de julio de 1993, era un sistema operativo microkernel multiplataforma que corría sobre procesadores Intel x86-32, DEC Alpha, MIPS 4000. En la versión 3.51 (1995) se incluyó el soporte para procesadores PowerPC.

Pantalla de inicio de Windows NT 3.1.
Pantalla de inicio de Windows NT 3.1.

Desde sus inicios, Windows NT se distribuyó en dos ediciones paralelas: una para sistemas de escritorio —NT Workstation— y otra para servidores —NT Server—. Ambas compartían el mismo núcleo, pero la edición de servidor añadía servicios de red orientados a la administración centralizada —como la compartición de archivos e impresoras a gran escala o, más adelante, el Active Directory—, eliminaba el límite de conexiones entrantes simultáneas presente en la edición para sistemas de escritorio y ajustaba el planificador de la CPU para priorizar el rendimiento de los servicios en segundo plano frente a la capacidad de respuesta de las aplicaciones en primer plano. Esta separación entre Windows de escritorio y Windows Server —con variantes adicionales como Advanced Server o Datacenter Server— se ha mantenido hasta hoy en toda la familia NT.

Otras versiones destacadas de Windows NT fueron:

  • Windows NT 4.0 —lanzado en 1996— adaptó su interfaz gráfica de usuario al estilo de la de Windows 95, para ofrecer una experiencia más familiar a los usuarios. También integró en el núcleo más funciones —por ejemplo, parte del subsistema gráfico— para obtener un rendimiento más próximo al de Windows 95 en ese apartado. Con ello se alejó del diseño microkernel original y acercó NT a un modelo de núcleo híbrido, término con el que suele describirse desde entonces.

    Windows NT 4.0 fue la última versión en soportar plataformas distintas a x86-32 —aunque el desarrollo de Windows 2000 para procesador Alpha continuó un poco más, hasta 1999, cuando Compaq dejó de soportar Windows NT en esa arquitectura—.

  • Windows 2000 (Windows NT 5.0) fue lanzado el 17 de febrero de 2000 y fue el primer sistema operativo de la familia NT al que se le eliminaron las siglas del nombre. Fue por motivos de marketing, para favorecer la unificación de las dos familias de sistemas operativos Microsoft Windows de entonces —Windows 9x y Windows NT— alrededor de la tecnología NT.

  • Windows XP (Windows NT 5.1) fue lanzado en 2001 y completó el proceso de unificación de las dos familias de sistemas operativos Windows. Con su aparición forzó la extinción de la familia Windows 9x, al sustituirla con una versión de Windows XP denominada Windows XP Home Edition, específica para la informática doméstica.

  • Windows 7 (Windows NT 6.1) fue lanzado en 2009 y se convirtió en uno de los sistemas operativos más populares y longevos de la familia. Conservaba la base de su antecesor, Windows Vista, pero mejorada para ofrecer un sistema más rápido, ligero y estable, lo que le permitió superar el tropiezo de su antecesor. Su soporte extendido se mantuvo hasta enero de 2020, señal de su popularidad.

  • Windows 10 (Windows NT 10.0) fue lanzado en 2015 y marcó un cambio significativo en la estrategia de Microsoft, al adoptar un modelo de actualización continua en lugar de lanzar nuevas versiones completas del sistema operativo. Este cambio se debió a la introducción del concepto de «Windows como servicio», que permite a los usuarios recibir actualizaciones periódicas y nuevas características de forma fluida, sin necesidad de reinstalar nuevas versiones del sistema operativo.

    También supuso un importante cambio de rumbo respecto a Windows 8, cuya interfaz a pantalla completa orientada a tabletas había sido mal recibida por los usuarios de equipos de escritorio. Windows 10 recuperó el menú de inicio tradicional y añadió elementos como los escritorios virtuales, el «Centro de actividades» y el navegador Microsoft Edge. Tras una década en el mercado, su soporte finalizó el 14 de octubre de 2025.

  • Windows 11 (Windows NT 10.0) fue lanzado en 2021 y, a día de hoy, sigue siendo la versión más reciente de la familia Windows NT. Pese a compartir número de núcleo con Windows 10, introdujo un rediseño visual notable —barra de tareas y menú de inicio centrados, esquinas redondeadas, nuevos diseños de acoplamiento de ventanas— y, posteriormente, mayor integración de la inteligencia artificial a través de Copilot. Fiel al modelo de «Windows como servicio», no recibe nuevas versiones numeradas, sino actualizaciones anuales de características (24H2, 25H2, etc.).

GNU/Linux es un sistema operativo libre y, tal vez, el más famoso proyecto de software libre.

El proyecto GNU se inició en 1983, con el fin de desarrollar un sistema operativo tipo UNIX enteramente libre. El proyecto incluía la creación de herramientas de desarrollo de software y aplicaciones de usuario. Tiempo después, el estudiante universitario finés Linus Torvalds comenzó a desarrollar el núcleo Linux como hobby, mientras estudiaba en la Universidad de Helsinki. Torvalds originalmente usaba MINIX, un sistema operativo simplificado escrito por Andrew Tanenbaum para enseñar diseño de sistemas operativos. Sin embargo, el hecho de que Tanenbaum no diera soporte a las mejoras del sistema operativo que eran propuestas por otros desarrolladores, llevó a Torvalds a escribir un sustituto de MINIX.

En 1991, cuando se liberó la primera versión del núcleo Linux, el proyecto GNU había desarrollado todos los componentes necesarios del sistema operativo excepto el núcleo. Torvalds y otros desarrolladores rápidamente adaptaron Linux para que funcionara con los componentes de GNU, creando un sistema operativo completamente funcional que se denomina GNU/Linux.

El núcleo Linux fue licenciado bajo la GNU General Public License (GPL), como el resto del proyecto GNU. Pero Linux no es parte de dicho proyecto. El proyecto GNU tiene su propio núcleo, denominado GNU/Hurd, que lleva más de 30 años en desarrollo y la última versión estable se publicó hace más de 10 años.

Cronología de la historia de los sistemas operativos.