-
Prehistoria de sistema operativos
La primera máquina a la que se puede llamar un computador digital de propósito general fue diseñada por el matemático inglés Charles Babbage (1791-1871), quien diseñó una máquina mecánica digital (digital: capaz de trabajar con dígitos), conocida como la analytical engine, o máquina de Babbage. -
Period: to
Primera Generación (1940-54): Tubos de vacío
Se empezaron a desarrollar las primeras máquinas electrónicas, como el Z3 de Konrad Zuse (1941), y la máquina de Atanasoff-Berry (1942). El flujo de cómputo de estas máquinas era controlado por switch electrónicos (relay), construidos mediante tubos de vacío (vacuum tube). Al estar compuestas por cientos o miles de estos tubos, no era extraño que uno o varios fallaran durante la operación. Algunas de estas máquinas eran programables, si bien no todas eran de "propósito general" ó Turing-complete -
Colossus Mark 2
En 1944, un grupo de científicos en Bletchley Park, Inglaterra, entre los que se encontraba Alan Turing, construyó el computador Colossus, cuyo modelo más conocido, el Colossus Mark 2, utilizaba 2400 tubos de vacío. Este computador, si bien, tampoco era Turing-complete ya que fue diseñado para una tarea criptográfica particular, sí era programable mediante cintas de papel. Fue importante en el proceso de decriptación del criptosistema alemán Lorenz. -
ENIAC
En 1946, William Mauchley y J. Presper Eckert construyeron uno de los primeros computadores programables de propósito general: el ENIAC (Electronic Numerical Integrator and Computer). Poseía 20000 tubos de vacío, pesaba 27 toneladas, ocupaba 167m2 y consumía 150kW de electricidad. No existía un lenguaje de programación, ni siquiera assembler, de manera que toda la computación era descrita en las tarjetas perforadas mediante código de máquina. -
Period: to
Segunda Generación (1955-63): Transistores y Sistemas Batch
La creación de los transistores en los años 1950 revolucionó la construcción de los dispositivos electrónicos reduciendo drásticamente las tasas de falla respecto al hardware construido con tubos de vacío y aumentando la velocidad de respuesta. Se empezaron a construir grandes computadores basados en transistores, conocidas como mainframes. Debido a su costo de construcción, un computador de este tipo era solamente accesible para grandes corporaciones, gobiernos y universidades. -
IBM 1620
Un IBM 1620 utiliza words codificados en BCD, y era capaz de almacenar hasta 20000 digitos. No poseía ALU. Utilizaba tablas de 100 dígitos para efectuar sumas y restas, y una tabla de 200 dígitos para multiplicaciones. La división se efectuaba mediante subrutinas de software. Tenía un clock 1MHz, y tiempo de acceso a memoria de 20usec. -
Period: to
Tercera Generación (1963-1980): Circuitos Integrados y Multiprogramación
En los años 1960s, los mainframes de IBM requerían cada uno un software y periféricos distintos para funcionar, ya que las instrucciones no eran compatibles. Un programa hecho para un modelo debía ser reescrito ante la introducción de un nuevo modelo de hardware. La compañía decide unificar el hardware bajo una familia llamada System/360. -
OS/360, y la multiprogramación
La idea de tener una línea de hardware mutuamente compatible y de propósito general requería un sistema capaz de funcionar en todos los modelos. Este sistema fue el OS/360. El software resultante resultó enormemente grande (millones de líneas de assembler) y complejo de desarrollar, con numerosos bugs, en tiempos en que la ingeniería de software no se desarrollaba como disciplina aún. -
UNIX
Ken Thompson y Dennis Ritchie dos de los científicos que habían trabajado en MULTICS decidieron desarrollar una versión "reducida" de MULTICS para un PDP-7 que no estaba siendo usado. Esta versión tendría un diseño mucho más simple y en sus inicios soportaba solamente a un usuario en contraposición a MULTICS que era multi-task. Este trabajo fue bautizado como UNICS por UNIplexed Information and Computing Service como un juego de palabras respecto a MULTICS, y finalmente simplificado como UNIX. -
MULTICS
Bell Labs, y General Electric, deciden crear un sistema que soporte cientos de usuarios. De la misma manera que múltiples casas podían tener acceso a la red eléctrica, en este sistema múltiples usuarios tendrían acceso a tiempo de cómputo (en la actualidad esto se llamaría "Computing Time as a Service") con tan solo conectarse a este mainframe (una nube de cómputo). El sistema fue bautizado como MULTICS (MULTiplexed Information and Computing Service). -
Cuarta Generación (1980-Presente): Computadores personales
El desarrollo tecnológico de los circuitos integrados llegó al nivel conocido como VLSI (Very Large Scale Integration), capaz de integrar hasta 1 millón de transistores en un chip de 1cm2, lo que permitía hasta 100000 celdas lógicas. Surgieron sistemas computacionales de uso personal denominados microcomputadores, que en principio no eran tecnológicamente muy superiores al PDP-11, pero a un precio notablemente inferior. -
Apple y la evolución de MacOS
Apple Lisa (1983) y el Apple Macintosh (1984), los primeros computadores personales en incluir una interfaz gráfica, que las GUIs se harían populares al acercar el uso del computador al público general e incorporar el concepto de user friendliness. -
Microsoft y la evolución de Windows
Fuertemente influenciado por el éxito del Apple Macintosh, a inicios de 1980s Microsoft planeaba un sucesor para MS-DOS que tuviera su propia GUI. Su primer intento fue un sistema administrador de ventanas llamado Windows 1.0 (1985) que funcionaba como una aplicación sobre MS-DOS. La versión que consiguió mayor adopción fue Windows 3.11, para sistemas de 16-bit. -
MINIX
En 1987, Andrew S. Tanenbaum desarrolló un clon de UNIX llamado MINIX con fines educacionales (POSIX-compliant), un microkernel modular de código abierto con la capacidad de detectar y reemplazar dinámicamente módulos defectuosos. Todo en 13000 líneas de código. -
Quinta Generación (1990-Presente): Computadores Móviles
Hasta 1993, los dispositivos telefónicos móviles no era más que dispositivos de comunicación que usaban sistemas embebidos, dedicados, para administrar su hardware. El concepto de utilizar estos dispositivos para realizar actividades más allá de la telefonía surgió con los dispositivos conocidos como PDA (Personal Digital Assistant), entre los cuales se encuentra el Apple Newton que incluía un sistema operativo Newton OS escrito en C++, y con un pionero uso de reconocimiento de escritura manual. -
Linux
En 1991, ante la ausencia de un kernel gratuito de UNIX, y bajo la inspiración de MINIX, Linus Torvalds desarrolla un clon monolítico "just for fun", al cual llama Linux e incluye gran parte de las herramientas desarrolladas por el proyecto GNU. Los puristas suelen denominar al sistema operativo GNU/Linux, pues se trata de un "kernel Linux con herramientas GNU", de la misma manera que GNU/Hurd sería un kernel Hurd con herramientas GNU". -
Windows NT
Windows NT fue desarrollado bajo el concepto de portabilidad. La línea de Windows NT continuó con Windows XP, Windows Vista, Windows 7, Windows 8, y Windows 10. Paralelamente se introdujo una línea para servidores con Windows 2000, Windows Server 2003, Windows Server 2008, Windows Server 2012, y Windows Server 2016 -
Windows 95 y Windows 98
Fue en 1995, con el lanzamiento de Windows 95 y luego Windows 98, que se incorporó código para aprovechar las nuevas CPU de 32-bit, aun cuando parte del sistema operativo debía soportar aún aplicaciones de 16-bit por retrocompatibilidad. MS-DOS seguía siendo usado para iniciar el sistema y como soporte subyacente para aplicaciones antiguas. -
Apple
Hasta 1999, el sistema operativo de los computadores de Apple (llamado ahora "classic mac OS") se trataba de un kernel monolítico desarrollado para chips Motorola 68k. Su última versión fue el Mac OS 9. El próximo kernel toma como punto de origen a Mach, una reimplementación de BSD Unix con arquitectura de microkernel desarrollado en Carnegie Mellon University. -
Apple: el iPhone y iOS
El año 2007 ocurrió la entrada de uno de los principales competidores cuando Apple presentó su iPhone junto con su sistema operativo iOS (originalmente iPhone OS). iOS, al igual que MacOSX se basa en el kernel híbrido XNU y el sistema operativo (UNIX-like) Darwin. Desde el año 2010, con iOS 4, el sistema añadió soporte de APIs para multitasking por parte de aplicaciones de usuario. Previamente el multitasking estaba restringido solo a ciertos servicios del sistema. -
Android, la entrada de Google
Google lanza en 2008 la primera versión de Android, un sistema operativo monolítico (UNIX-like) de código abierto basado en el kernel Linux. Android inició su desarrollo bajo la compañía Android, Inc. fundada en 2003. El año 2005 Google adquirió Android, Inc. De manera similar a App Store, Android lanzó el Android Market (más tarde Google Play Store), y el Android SDK para el desarrollo de aplicaciones para terceros.