lunes, 6 de junio de 2011

Historia de los computadores

Hoy en día todo el mundo usa los ordenadores para uso personal, para trabajar, ocio, etc., incluso las nuevas generaciones no conocen un mundo sin este tipo de facilidades. Cada vez más potentes y pequeños los computadores se han adueñado de parte de nuestra vida. Sin embargo, hubo un tiempo, no hace mucho, en el que eran gigantescos aparatos de los que se dudaba, ¿para qué alguien querría un ordenador?. Vamos a repasar la historia de los computadores:
  • Primera generación: Los primeros sistemas computadores
Al principio, solo existía el hardware del computador, lo palpable, no existían los programas o software, y éstos llevaban válvulas de vacío, lo que hacía que las maquinas fueran monstruosamente grandes. En esta generación no había Sistema Operativo, así el usuario interaccionaba directamente con el hardware del computador, y para programar estos aparatos, había que configurar manualmente una serie de interruptores y de cuadros de conexión, haciendo que apenas fuesen productivas y muy caras.

Además, solo podían ejecutar programas relativamente fáciles, como hacer cálculos matemáticos en cuestiones militares, por ejemplo para calcular trayectorias balísticas y tablas de senos y cosenos. Al final de esta época, comenzaron a aparecer dispositivos como las impresoras de cintas de papel y los lectores de tarjetas perforadas.

  • Segunda generación:
Transistor.
La aparición del transistor en la década de 1950, permitió construir computadores mucho mas pequeños y fiables, de manera que ya se podían fabricar con la idea de venderlos. Paralelamente:
  • Aparecen dispositivos de Entrada/Salida (E/S) nuevos: lectores de tarjetas perforadas, y las impresoras.
  • También se inventan dispositivos de almacenamiento nuevo: unidades de disco y las cintas magnéticas. Aparece el ENIAC (Computador e Integrador Numérico Electrónico), de 30 toneladas, 150 m2 y que consumía 150kW.
  • Se desarrolla el primer software de sistema y todo el proceso de programación se mejora.

ENIAC (Electronic Numerical Integrator Computer).
Programando el ENIAC.
A pesar de todo esto, el modo de operación seguía siendo poco eficaz a causa de las diversas operaciones manuales que había que efectuar y que comportaban una utilización baja de los recursos del sistema, es decir, eran infrautilizados. Así se intentó aprovechar el tiempo perdido y aumentar los recursos del sistema.

El primer objetivo fue automatizar al máximo todas las operaciones utilizando el hardware, pero aun así, la velocidad de las operaciones de E/S de datos, era demasiado lenta para la velocidad que tenia el procesador y la memoria. Estos son los famosos cuellos de botella, que aun hoy existen de diferente manera. Al no poder reducir el coste temporal, se intentó que las operaciones de E/S fuesen las mínimas posibles.

La ejecución de los programas en esta generación era totalmente secuencial, esto es, uno detrás de otro. Cuando un programa se disponía a esperar la finalización de una operación de E/S, la unidad central de proceso (CPU) sencillamente se detenía hasta que la E/S acabara.

Para intentar reducir al máximo estas diferentes velocidades de trabajo, apareció el trabajo fuera de linea (off-line). Con este sistema, se intentaba solapar las operaciones E/S, que eran tiempos muertos para el procesador, con la ejecución de otros programas. Mientras los programas escritos en tarjetas se leían y se pasaban a cinta en una máquina, en otra máquina se podían ejecutar otros programas que ya habían sido cargados anteriormente en otra unidad de cinta.

Posteriormente, se idearon otras técnicas de solapamiento, como el buffering, que consiste en solapar las operaciones de E/S de un programa con las operaciones de cálculo del mismo programa.

En esta generación también apereció el disco, dispositivo de acceso directo, proporciono una nueva técnica de trabajo: la gestión de colas (spooling), que permitía solapar las operaciones.

Nota: El solapamiento de la información NO es lo mismo que multitarea, es simplemente aprovechar los tiempos muertos de un proceso. Mientras, la multitarea, sí que permite varios procesos simultáneaos.

  • Tercera generación:
Circuito integrado.
Esta nueva generación aparecida en la década de los 60, se basa en los circuitos integrados. Las ventajas son máquinas más pequeñas y mucho más rápidas, lo que reduce costes y hace que nazca un sector informático comercial muy importante de cara a las empresas, corporaciones, etc.

Paralelamente se desarrollan el hardware y el software, que dieron lugar a:
Se seguía teniendo el problema de que el tiempo de espera de las E/S podía representar el 90% del tiempo total de la ejecución. La solución es la multiprogramación, que consiste en multiplexar la utilización del procesador entre diversos programas, es decir, solapar la ejecución de diversos programas y aparentemente parece que se este ejecutando diversos programas al mismo tiempo, pero en realidad, todos los procesos compiten por los recursos del sistema. Se consigue que se desarrollen sistemas con múltiples usuarios conectados simultáneamente mediante terminales a un sistema computador, aunque no eran muy eficientes todavía. Todo se solucionó con el time sharing, que gestionaba un periodo de tiempo muy pequeño para cada proceso, y cada usuario tiene la impresión de que es el único que utiliza el sistema.

Podemos enmarcar en esta generación el nacimiento del Sistema Operativo (S.O.) UNIX de la mano de Ken Thompson (Laboratorios Bell) a partir de un proyecto llamado MULTICS. UNIX es el precursor de Linux.

El lenguaje C fue creado específicamente para hacer el S.O UNIX, y cuando AT&T, la propietaria de laboratorios Bell, recibió autorización para operar en el sector informático se desarrollaron posteriores versiones de UNIX. Ahora bien, empezaron a aprecer diferentes versiones de UNIX, las cuales no eran totalmente compatibles, por lo que se iniciaron diversos esfuerzos para estandarizarlo.

  • Cuarta generación:
Logotipos de MS-Dos, Microsoft Windows, Apple (Macintosh) y Linux.
El gran avance de esta nueva generación es la baja escala de integración, que permite agrupar mucha circuitería en muy poco espacio. En 1974 se inicia la era de los computadores personales (PC). Seguramente, la aportación mas importante de esta nueva generación son las redes de computadores: Internet e Intranet.

Commodore 64, 1982.
Macintosh 128K, 1984.
A partir de este momento y hasta nuestros días, los computadores se utilizan en cualquier ámbito: los usuarios en su casa (PC) o en la calle (PDA, móviles), electrodomésticos, etc. En general, hay una explosión de recursos: nuevos dispositivos cada vez mas avanzados (impresoras láser o comunicaciones inalámbricas) y computadores cada vez más rápidos, con más memoria y discos con más capacidad.

A lo largo de ésta generación surgen diferentes tipos de Sistemas Operativos para satisfacer diferentes necesidades:
  • S.O en red y los S.O distribuidos, que permiten utilizar recursos de maquinas remotas (como discos, CPU o software) con diferentes niveles de abstracción.
  • S.O en tiempo real, referido a los sistemas que tienen que procesar datos, que generalmente se obtienen del exterior (sensores), en un tiempo limitado y dentro de periodos de tiempo determinados.
  • S.O embebidos, que se utilizan en computadores que controlan aparatos como TV, reproductores MP3 o DVD, móviles sencillos, etc., diseñados para un uso muy concreto y el usuario difícilmente podrá instalar nuevo software.
  • S.O para computadores de bolsillo: como PDA, móviles, tablets o consolas.
En esta generación podemos enmarcar el nacimiento de dos de los SO mas utilizados en ámbito domestico: MS-DOS y Macintosh. Esta historia se refleja estupendamente en el documental Piratas de Silicon Valley (aprox. 1h), basado en las vidas de Bill Gates (Microsoft) y Steve Jobs (Apple), dos personajes que no necesitan presenteaciones y que sin ellos, esta historia quizás no hubiese sido posible. Tras el video, seguiré con la historia.

Parte 1 del documental Piratas de Silicon Valley. Youtube, 09:50.
Como hemos visto en el documental, la versión 1 de MS-DOS fue introducida en 1981 por una modesta compañía llamada Microsoft, era monousuario y tenia bastantes limitaciones y problemas de estabilidad, aunque fue evolucionando para adaptarse a los nuevos dispositivos de almacenamiento e incorporar nuevas prestaciones.

Hacia 1990 apareció el Windows 3.0 una interfaz gráfica para el MS-DOS, pero el SO seguía teniendo bastantes problemas de estabilidad (ver pantallazo azul). Hacia 1993 apareció la línea Windows NT, seguido del Windows XP (2001), Windows Vista (2006) y Windows 7 (2009), entre otros.

Linux nació en 1991 de la mano de Linus Torvalds, quien decidió implementar una versión del UNIX que siguiera el estándar (POSIX). Linus utilizó Internet para buscar una comunidad de voluntarios que le ayudara a mantener y mejorar el S.O.

Y así hasta nuestros días, donde Microsoft está anunciando Windows 8, Apple triunfa con su iPhone y su iPad y donde se dice que el futuro será el almacenamiento en la nube (cloud computing). Eso estará por ver...

2 comentarios:

  1. Pues aun así...sigo sin enterarme de cómo va la informática. Si es que "donde no hay mata...no hay patata".

    ResponderEliminar
  2. Buenas tardes!

    Es increíble la evolución de los Computadores y con ellos... todos los ámbitos de la tecnología!
    Como ustedes dicen ... "las nuevas generaciones no conocen un mundo sin este tipo de facilidades"

    En mi casa este Articulo a sido completamente útil e instructivo. Mil gracias, seguiré sus publicaciones!

    ResponderEliminar