lunes, 26 de octubre de 2009

Historia de la informática: Los Sistemas Operativos

Este es el segundo de una serie de artículos sobre la historia de la informática que estoy escribiendo como colaborador para la revista de la Agencia de Informática de la Comunidad de Madrid (ICM).
La serie está compuesta en principio por los artículos:
  1. Historia de los lenguajes de programación
  2. Historia de los sistemas operativos
  3. Historia de los virus informáticos



HISTORIA DE LA INFORMÁTICA: LOS SISTEMAS OPERATIVOS

¿Qué es un sistema operativo?



Imagina que eres un programador de ordenadores, y quieres realizar un programa muy simple que muestre “Hola” por la pantalla del ordenador. Imagina entonces que para hacerlo tuvieses que conocer todos los modelos de monitor que existen en el mercado, y escribir tu programa teniendo en cuenta los detalles de cada uno de ellos (las pantallas que tienen más o menos resolución, los colores, etc.). Tendrías entonces que escribir punto a punto (píxel a píxel) las letras que componen la palabra “Hola” en la pantalla. A simple vista parece bastante ineficiente el que cada programa tenga que encargarse de los detalles de cómo utilizar un determinado dispositivo (el monitor, una impresora, el disco duro, etc.). Para aislar a los programas que se ejecutan en un ordenador de todos esos detalles, existe un programa encargado de gestionar los recursos de la máquina, se trata del sistema operativo. Gestionando los recursos ofrece un entorno en el que los programas puedan ejecutarse, y permite ponerlos de acuerdo en el uso de estos recursos: ¿qué pasa si varios programas quieren imprimir por una impresora a la vez? ¿quién decide el que lo hace primero y obliga a los demás a esperar su turno? Este papel de mediador también es desempeñado por el sistema operativo.

Desde la invención de los primeros ordenadores - en los que los programas tenían que lidiar directamente con el hardware - hasta la actualidad, los sistemas operativos han evolucionado hasta proporcionar mucho más que la mera gestión de los recursos de la máquina. La historia de los sistemas operativos está  muy ligada a la evolución del hardware, ya que la inclusión de nuevas tecnologías en la fabricación del hardware y el consiguiente el incremento en la capacidad de cómputo han generado la necesidad de un software más potente que sea capaz de controlar las máquinas y administrar de manera óptima las capacidades que ofrecen. 

No pretendo que este artículo sea una guía de referencia sobre sistemas operativos (hay muchos de ellos que no menciono), sino una lectura amena para cualquiera sin necesidad de conocimientos técnicos.

Los comienzos: la década de 1940

En 1946 se presentó en público el ENIAC, la primera computadora de propósito general utilizada por el ejército de los Estados Unidos, que utilizaba la tecnología de válvulas electrónicas o tubos de vacío. En esta época los ordenadores no disponían de sistema operativo. Todas las instrucciones de los programas eran codificados a mano a través de interruptores, y más tarde utilizando tarjetas perforadas de forma totalmente manual.


Tarjeta perforada para FORTRAN
Fuente: Wikimedia, noviembre 2006

Los sistemas de trabajo por lotes

Hasta la década de 1950 era una persona (el operador) el que se encargaba de cambiar físicamente entre los trabajos que ejecutaba el ordenador. Se perdía un tiempo considerable entre trabajo y trabajo debido a que esta labor se hacía manualmente, así que se pensó en realizar la labor del cambio de tareas de manera automática. Fue entonces cuando surgieron los primeros sistemas operativos (llamados así porque sustituyeron en parte el trabajo del operador) con la intención de acelerar y automatizar la transición entre trabajos. Se agrupaban los trabajos en grupos llamados lotes, de manera que cuando una tarea terminaba, el sistema operativo se encargaba de leer e iniciar el siguiente trabajo dentro del lote. La introducción de los primeros sistemas operativos, y el uso de transistores que sustituyeron a los tubos de vacío hizo que la velocidad de proceso de las máquinas aumentase considerablemente. 
El primer sistema operativo de la historia es el GM-NAA I/O (Sistema de Entrada/Salida de General Motors y North American Aviation), que fue diseñado en 1956 para ejecutarse en un ordenador IBM 704. Entre los primeros sistemas operativos cabe también destacar el Fortran Monitor Sistem (FMS) y el IBSYS.


Ordenador IBM 704 ejecutando GM-NAA I/O
Fuente: Computer History Museum, septiembre 2005

Los sistemas multitarea

A comienzos de la década de 1960 surgen los sistemas de tiempo compartido, en los que varios programas se encuentran en memoria, y parece que se estén ejecutando de manera simultánea, ya que el ordenador va alternando entre ellos rápidamente asignando pequeñas franjas de tiempo de ejecución a cada uno. De esta época cabe destacar sistemas operativos como CTSS (Sistema de Tiempo Compartido Compatible) y su sucesor MULTICS, precursor de los actuales sistemas UNIX.

En 1964 IBM lanzó la familia de ordenadores Sistemas/360, que utilizaban circuitos integrados como tecnología principal, y el OS/360 como sistema operativo. El sistema fué evolucionando para poder servir a múltiples usuarios simultáneamente, soportando entornos de proceso por lotes multiusuario con tiempo compartido y multiprocesamiento, y que dio muchos quebraderos de cabeza a sus creadores y usuarios debido a su complejidad y enorme tamaño.

Los sistemas para ordenadores personales

La tecnología de los circuitos integrados a gran escala (LSI) que permitía incluir miles de transistores por centímetro cuadrado, hizo que a principios de la década de 1980 comenzasen a proliferar los primeros ordenadores personales y sistemas operativos para ellos. Entre los muchos sistemas de esta época destacan el CP/M, el MS/DOS (precursor de los actuales sistemas de Microsoft), el OS/2 (inicialmente una iniciativa conjunta de Microsoft e IBM) y el Sistema 1 (precursor de Mac OS).

Los sistemas UNIX, y Linux

El desarrollo del sistema operativo MULTICS fue un enorme proyecto que acabó discontinuándose. Sin embargo una de las personas que había intervenido en su desarrollo, Ken Thompson, junto con Dennis Ritchie (uno de los creadores del lenguaje de programación C), decidieron desarrollar por su cuenta un sistema operativo que cumpliese con las premisas originales del proyecto Multics, pero que corriese en un ordenador más pequeño. El proyecto nació con el nombre de UNICS, y posteriormente se renombró a UNIX. Muchas son las versiones de UNIX que han evolucionado hasta la actualidad, entre ellas se encuentra LINUX, desarrollado inicialmente por Linus Torvalds y liberado como código abierto por primera vez en 1991. Actualmente existen multitud de distribuciones (versiones independientes) de Linux, que se ha convertido en uno de los sistemas operativos más utilizados en la actualidad debido a su robustez. Red Hat es una de las distribuciones más utilizadas en entornos de servidor, mientras que en los entornos de escritorio se abren paso otras como Ubuntu, cuyo eslogan es “Linux para seres humanos”.


Genealogía de Unix
Fuente: Wikipedia, 2007

Mac OS

Mac OS es el sistema operativo de Apple para sus ordenadores Macintosh. Sus primeras versiones (como el Sistema 1, liberado en 1984) fueron las precursoras de los actuales interfaces gráficos, ya contaban con ventanas y menús manejados a través del ratón.
Al sistema 1 le sucedieron nuevas versiones, hasta que en el 2001 se lanzó Mac OS X, la primera versión del sistema operativo basada en un núcleo de UNIX.

MS-DOS y la familia Windows

Tim Paterson escribió en tan sólo seis semanas y basándose en un manual de CP/M un sistema operativo que denominó QDOS (Quick and Dirty Operating System). En 1981 Bill Gates a la cabeza de Microsoft compra QDOS a su autor por tan sólo 50.000$, introduce algunas pequeñas modificaciones, y libera su primera versión del sistema operativo MS-DOS para los ordenadores de la familia x86 de IBM.
MS-DOS estaba basado en un interfaz de línea de comandos, no disponía de interfaz gráfico. Para paliar esta deficiencia, en 1983 Bill Gates decide crear una interfaz gráfica para la ejecución de programas bajo MS-DOS. Fue el nacimiento de Windows 1.0. A esta primera versión le sucedieron otras muchas, hasta que en 1995 se lanzó Windows 95, que era un sistema operativo en sí mismo, no un entorno de ventanas que se ejecutase bajo MS-DOS. En 1998 se liberó Windows 98 como evolución de la versión 95.
Microsoft tenía una rama de desarrollo paralela a Windows 95, que pretendía ser más robusta que éste. En 1997 se lanzó así Windows NT como primer sistema operativo de esta nueva línea de desarrollo, con Windows 2000 como siguiente versión. En el año 2001 se lanzó definitivamente Windows XP, que fue la primera versión que unió definitivamente las dos líneas de desarrollo en un único producto. La siguiente gran versión del sistema operativo, Windows Vista, fue liberada a finales del 2006, y ha sido muy criticada por su inestabilidad. 


Cronología de Windows
Fuente: Wikipedia, 2009

Los sistemas operativos más utilizados

Muchos son los sistemas operativos utilizados actualmente a nivel mundial, pero en los entornos de escritorio el más utilizado es Windows XP con casi el 70% del mercado. El siguiente en cuanto a uso es Windows Vista, con más del 22% del total, seguido por Mac OS con un 4,59%, y Linux en sus distintas distribuciones con un 0,95% del mercado.
En el gráfico siguiente se muestran los datos del uso de los sistemas operativos de escritorio en Septiembre de 2009, tomando una media de las estadísticas de varios sitios dedicados a su contabilización:


Distribución de los sistemas operativos en ordenadores de escritorio
Fuente: Wikipedia, septiembre 2009

El Futuro

Los sistemas operativos, al igual que la tecnología en general, evolucionan rápidamente. Los avances en el campo de la virtualización han hecho que múltiples sistemas operativos se ejecuten simultáneamente en la misma máquina bajo entornos independientes. También están surgiendo plataformas que cubren el papel del sistema operativo para la “computación en la nube”, como Microsoft Azure.
El pasado 22 de Octubre, Microsoft lanzó a bombo y platillo su nuevo sistema operativo Windows 7, que pretende convertirse en el nuevo estándar para sistemas de escritorio, paliando las deficiencias que tan mala fama han dado a su predecesor, Windows Vista. Microsoft seleccionó la pequeña localidad de Sietes en Asturias (de apenas 40 habitantes) para rodar el spot promocional de Windows 7, con la intención de destacar la facilidad de uso de la que el producto hace gala. En paralelo a la línea de desarrollo de Windows, Microsoft sigue realizando investigaciones en el campo de los sistemas operativos, con productos como Singularity, Midori o Barrelfish.
Por su parte el gigante de la tecnología Google, anunció el pasado 7 de Julio un proyecto que está llevando a cabo para desarrollar un sistema operativo basado en web, denominado Google Chrome OS. El sistema operativo utilizará internamente un núcleo de Linux y un sistema de ventanas propio. Google ha declarado que pretende liberar el código del sistema operativo a finales de 2009.

Algunas Referencias



4 comentarios:

Manuel Pereira dijo...

El pasado mes de octubre, el sistema operativo MULTICS ha cumplido 40 años, según comentan en slashdot.

Hugo Napoli dijo...

Muy buenas, el artículo está muy claro y posee buena información. No lo leí todo aún, pero me sorprendió encontrar algo así (además, en Español) justo en el momento en el cual lo necesitaba.
Muchas gracias por la información.
Un gran saludo desde Uruguay

Hugo Napoli dijo...

Muy buenas, el artículo está muy claro y posee buena información. No lo leí todo aún, pero me sorprendió encontrar algo así (además, en Español) justo en el momento en el cual lo necesitaba.
Muchas gracias por la información.
Un gran saludo desde Uruguay

Anónimo dijo...

Excelente articulo. Muy clara toda la información. Gracias por compartir tu trabajo