Historia de los Sistemas Operativos: un repaso desde el primero

Historia de los Sistemas Operativos

La historia de los Sistemas Operativos se mide por los años de evolución que han surgido. Inicialmente, no era sencillo conseguir personas que manejaran estos equipos tan complejos. Sin embargo, cuando aparecieron las mejoras, ha sido un área que no se detuvo y, hasta ahora, siguen incrementando mejoras.

Primeras décadas de la historia de los Sistemas Operativos

En un comienzo, fue Charles Babbage quien creó una “máquina mecánica digital”; el término fue aplicado porque utilizaba dígitos. La llamó analytical engine o máquina de Babbage. Charles dejó un trabajo muy bien hecho de desarrollo. Este mantuvo un concepto novedoso: permitía la programación, utilizando tarjetas perforadas como en las máquinas en la industria textil.

Sin embargo, Ada Lovelace estudió y mejoró, creando el algoritmo y estableciendo un camino a la programación. Fue matemática y escritora. Con sus habilidades, realizó anotaciones sobre el procedimiento para calcular una secuencia de números en la máquina de Babbage. Fue aceptado como el primer programa para una máquina computacional, o “el primer algoritmo para una máquina de cómputo”. Esto llevó a que Ada fuera bautizada con el título de la primera programadora.

40 años atrás comienzan los grandes cambios

El trabajo de Babbage y Lovelace quedó como parte de las investigaciones científicas olvidadas, por un tiempo. No fue hasta la Segunda Guerra Mundial que se acordaron de los inventos previos y mostraron mayor interés. La diferencia es que, ahora, era apremiante ser el más veloz en crear una herramienta para defenderse. Desarrollaron entonces el Z3 de Konrad Zuse (1941) y la máquina de Atanasoff-Berry (1942) que utilizaban switch electrónicos (relay) con tubos de vacío (vacuum tube). Algunas resultaron programables y otras Turing-complete.

En 1994, el nombre Alan Turing fue clave, construyó con un equipo de científicos el computador Colossus, con 2400 tubos de vacío. Cumplía funciones criptográficas particulares, programable mediante cintas de papel y fue relevante en el proceso de decriptación del código Lorenz.

Historia de los Sistemas Operativos
Para todos los nacidos desde el 2000, los Sistemas Operativos han crecido con ellos. Pero, tienen una historia mucho más antigua.

Luego fueron William Mauchley y J. Presper Eckert, en 1946, quienes crearon computadores programables de propósito general: el ENIAC (Electronic Numerical Integrator and Computer) en la Universidad de Pensilvania. No tenía lenguaje de programación, la computación se incluía en tarjetas perforadas con el código de máquina. Si le incluyeron 20.000 tubos de vacío, su peso de 27 toneladas, ocupaba un espacio geográfico de 167m2 y consumía 150kW de electricidad. Su dispositivo de entrada era un lector de tarjetas perforadas y su salida era un perforador de tarjetas (IBM 405). Poseía un clock de 100kHz, y utilizaba 20 registros de 10 dígitos binarios.

Llega la segunda generación, entre 1955-1965. Una era que destacó por los transistores y Sistemas Batch. Estos transistores permitieron que se redujeran las fallas por los hardware y era más eficaz en la velocidad de respuesta. Las computadoras basadas en transistores las reconocieron en los 50 como mainframes y sólo eran accesibles para organizaciones, empresas e instituciones.

Estas mainframes ejecutaban trabajos en el código de un programa, o una secuencia de programas. Seguía el uso de tarjetas perforadas en lenguaje assembler. En 1953, un trabajador de IBM, John W. Backus, crea la alternativa al assembler con FORmula TRANslating system, el lenguaje FORTRAN. Incluía la herramienta de traducción hacia assembler llamada compilador, y fue tan exitoso que ganó el Turing Award en 1977.

Al tiempo surgió otra mejora: el sistema de procesamiento batch, procesamiento por lotes. En este, un programador entregaba sus tarjetas perforadas a un operador que ingresaba las tarjetas a una unidad lectora de tarjetas, la IBM 1402. El proceso no finaliza ahí; de hecho, era muy largo y, por lo tanto, aplicado en campos científicos y de ingeniería.

Cabe destacar que los programas FMS (FORTRAN Monitor System), y el sistema del IBM 7094, IBSYS fueron los primeros en cumplir como un sistema operativo, por la ejecución de jobs en cantidad y secuencialmente.

Para la tercera generación, entre 1965-1980, destacaron los circuitos Integrados y multiprogramación. IBM decide unificar su hardware bajo una familia llamada System/360, lo que incluía tecnología de circuitos integrados con pequeños transistores, que daba beneficios en precio/rendimiento frente a los transistores tradicionales.

Surgió también la línea de hardware mutuamente compatible, por lo que crearon el sistema OS/360. Sin embargo, el resultado no fue el esperado. Utilizaba millones de líneas de assembler y era complejo de desarrollar, con numerosos bugs. Aunque tenía sus fallas, fue muy utilizado y, por supuesto, aportó ideas para los sistemas computacionales. 

Así también surgió la multiprogramación, que permitía a cada trabajo realizarse de manera aislada entre cada uno. Explican:

La solución fue dividir el espacio de memoria en regiones, y asignar un espacio distinto a cada job. Se introdujo un mecanismo que permitiera que, cada vez que un job estuviese esperando una operación de I/O, el sistema permitiera que otro job pudiese ocupar la CPU. De esta manera, si hay suficientes jobs en la memoria, sería posible mantener a la CPU trabajando casi el 100 % del tiempo. Este mecanismo fue un enorme avance que ocupamos hasta el día de hoy, y se llama multiprogramación.

De este mismo proceso, se desarrolló el spooling (Simultaneous Peripheral Operation On Line). Cada vez que finaliza un trabajo, leía el siguiente disponible y lo cargaba a la partición libre.

Luego, surgió el timesharing (la “compartición” de tiempo), en el que cada usuario tenía un terminal, y mientras un usuario no interactuara con el computador, el procesador podía atender a otro. Aquí entraba el context switch o cambio de contexto, almacenar lo que un usuario realizaba, para no perderlo, mientras otro ejecutaba su tarea. Pero, se complicaba si algún usuario necesitaba enviar un CPU-bound (una compilación, un cálculo matricial, ordenar miles de registros…). Esto detenía a los demás y debían esperar. Así surgió el multitasking expropiativo (preemptive multitasking) en el que utilizaba tiempo definido antes de entregar el turno a otro.

Entonces, surgió el MULTICS, creado por Bell Labs y General Electric. Era un sistema que soportaba a cientos de usuarios, guiándose con el funcionamiento del sistema eléctrico. Posteriormente, surgió una simplificación de MULTICS: UNIX. Fue conocida como una minicomputadora con transistores en circuitos integrados más pequeños y confiables. Este marcó significativamente la evolución de los cómputos. UNIX se convirtió en el primer Sistema Operativo masivo en ser implementado en un lenguaje de mayor nivel que el assembler. Además, estuvo disponible públicamente.

En 1983, las versiones UNIX utilizan licencias comerciales, por lo que aparece Richard Stallman desarrollando una versión gratuita y de código abierto de un sistema “UNIX-like”, la que llamaron GNU General Public License, con múltiples herramientas. Luego, Andrew S. Tanenbaum desarrolló un clon de UNIX llamado MINIX en 1987. Y para 1991, Linus Torvalds muestra su desarrolló del clon monolítico “just for fun”, Linux. Este incluyó herramientas del proyecto GNU. Hasta ahora, hay millones de distribuciones de Linux. De hecho, hablamos sobre las distribuciones más seguras de Linux en una edición pasada.

Finalmente llegamos a la cuarta generación, desde 1980: la era de las computadoras personales con los microcomputadores. Gary Kildall construyó un Sistema Operativo basado en disco para el Sistema Operativo propio para el Intel 8080. Por su parte, IBM trabajaba en el IBM Personal Computer (IBM PC) basado en el Intel 8088 de 16-bit, 4.77MHz de clock, y hasta 256 kB de RAM. Así que IBM regresó con Microsoft para desarrollar un Sistema Operativo para su IBM PC, el que resultó ser un éxito.

Para 1983, IBM lanzaba al mercado la IBM PC/AT. Entre sus beneficios, estaba el  multitasking. Sin embargo, el MS-DOS siguió entre los favoritos, incorporando características de UNIX como multitasking y soporte de nombres largos de archivos. Doug Engelbart trajo mejoras y cambios, las GUI (Graphical User Interface) para interactuar con el computador mediante un conjunto de abstracciones gráficas como ventanas, íconos, menús, hipertexto. También hizo un trabajo en los sistemas NLS, que fueron reconocidos como The Mother of All Demos, lo que le permitió recibir el Turing Award 1997 “por su visión del futuro de la computación interactiva”.

Apple evolucionó con la MacOS, especialmente las Apple Lisa (1983) y el Apple Macintosh (1984) con interfaz gráfica, GUIs y el usuario friendliness. De hecho, la Macintosh fue muy popular entre el campo del diseño gráfico. A partir de 1999 cambió el Sistema Operativo de Apple, que hasta el momento utilizaba el Classic mac OS, lo que fue recibiendo mejoras hasta el Mac OS X.

Por su parte, Microsoft y Windows también evolucionaron. Apple Macintosh motivó a Microsoft a desarrollar Windows 1.0 en 1985, un sistema administrador de ventanas funcionaba sobre MS-DOS. Sin embargo, se adaptaron más a la 3.11, hasta 1995 con Windows 95, y posteriormente el 98. Finalmente, con Windows NT aplicaron el concepto de portabilidad y preemptive multitasking. De este Windows NT surgió el XP, Vista, Windows 7, 8 y hasta el 10. Paralelamente, se introducía una línea de servidores con Windows 2000, Server 2003, Server 2008, Server 2012 y Server 2016.

Hasta llegar a la quinta generación, desde 1990 hasta el presente, las computadoras móviles. Fue hasta 1993 que los equipos telefónicos móviles se consideraban como dispositivos de comunicación que usaban sistemas embebidos, dedicados, para administrar su hardware.

La idea de las computadoras móviles surgió de los modelos PDA (Personal Digital Assistant), como el Apple Newton, cuyo Sistema Operativo es el Newton OS escrito en C++, y con un pionero uso de reconocimiento de escritura manual. Poseía una API para aplicaciones desarrolladas por terceros. Pese a todas esas novedades, no fue muy popular. El IBM Simon fue otro modelo similar, desarrollado por la empresa Datalight con una interfaz de pantalla touch y Sistema Operativo ROM-DOS, que era compatible con el MS-DOS. Sin embargo, su batería de 1 hora de duración no lo hizo muy factible.

Fue con Palm, Inc. y el Palm OS en 1997 quienes destacaron por el PDA mediante su PalmPilot, y el Sistema Operativo Palm OS 2.0; el primero para equipos móviles con resultados exitosos. Palm siguió avanzando, incluyendo mejoras como Bluetooth, kernel con multitasking y protección de memoria. Hasta que HP adquirió a la empresa, y años después utilizó su WebOS en LG en los smartTV.

Nokia fue quien, posteriormente, comenzó a realizar sus propios modelos y desarrollar ideas para dispositivos móviles, que también adquirieron Symbian Ltd. Nokia intentó su propio SO con Maemo, “un kernel monolítico basado en Debian GNU/Linux y con interfaz basada en GNOME para arquitecturas ARM”. Antes de la adopción de Windows Phone, Nokia dejó su proyecto con Maemo y en alianza con Linux Foundation e Intel creó la distribución MeeGo con la intención de servir de plataforma para dispositivos como smartphones, tablets, smartTVs y netbooks. Symbian se volvió Symbian OS, un Sistema Operativo muy popular entre Samsung, Motorola, Sony Ericsson, y claramente, Nokia. Ellos dominaron el mercado por mucho tiempo, hasta la llegada de Windows, iPhone iOS y Android. De hecho, entre 2005 y 2010, estuvieron fuertemente trabajando en crear una plataforma open source basada en el kernel de Linux.

Eventualmente, llegó el Windows Phone con Windows CE, con un kernel híbrido escrito en C y soportaba arquitecturas x86, ARM, MIPS y PowerPC. Pero este Windows Phone recibió poco interés en el 2017, además de generar aplicaciones para esta plataforma, ya que dominaban iOS y Android.

Research In Motion (RIM) hizo maravillas en el 2002 con su propia línea de dispositivos móviles conocidos como BlackBerry y su Sistema Operativo BlackBerry OS. Fue un sistema multitasking con Java Micro Edition (JavaME). Pero todo el éxito descendió hasta el 2006 cuando cambiaron a Android.

Hasta llegar a lo más conocido por todos, y los que siguen dominando: Apple con el iPhone y el Sistema Operativo iOS. Además de Android, con la entrada de Google y todas sus funciones en la mayoría de los dispositivos móviles alrededor del mundo.

Esta información ha sido tomada de Sistemas Operativos y Redes 2020-1.

 

Facebook: Eagle Tech Corp

Instagram: @eagletech_corp

Twitter: @eagletechcorp

LinkedIn: Eagle Tech

Al Día

Articulos Relacionados