Los cálculos aritméticos manuales nunca han sido del agrado de muchos, evidenciado por el hecho de que las matemáticas tradicionalmente han sido la materia considerada más difícil y problemática de las asignaturas escolares desde la primaria hasta la universidad, y esto no es privativo de nuestra época, es algo que se ha mantenido constante desde que el hombre aprendió a contar.
Es por esto que, a través de las épocas, la humanidad en todos los rincones del planeta ha buscado maneras de poder simplificar los cálculos aritméticos de forma tal que se puedan llevar a cabo con mayor rapidez y con menos margen de error. Esto es lo que condujo a la invención del
ábaco en Asia, el cual por cierto aún se sigue empleando en nuestros días en esa parte del mundo.
Entre los esfuerzos para construír máquinas más eficientes y rápidas para efectuar cálculos en el sistema decimal, vale la pena mencionar un método descrito en 1617 por un matemático escosés de nombre
John Napier, consistente en una serie de barras de marfil especialmente talladas y marcadas para efectuar multiplicaciones y divisiones, conocidas como los “huesos de Napier” o
ábaco Neperiano:
Por su parte,
Blaise Pascal inventó la primera “sumadora mecánica”, muy parecida a las calculadoras mecánicas de escritorios usadas alrededor de 1960 antes de que fueran desplazadas por las calculadoras electrónicas de escritorio:
Una máquina del mismo tipo pero un poco más avanzada fue desarrollada unas cuantas décadas después por
Gottfried Leibniz:
la cual era capaz de sumar, restar, multiplicar, dividir, y con la cual hasta se podían extraer raíces cuadradas. Sin embargo, no fue sino hasta 1820 cuando las primeras calculadoras
comerciales capaces de llevar a cabo las operaciones matemáticas básicas de suma, resta, multiplicación y división estuvieron disponibles.
Al llegar el siglo XIX, varios individuos contribuyeron al avance de máquinas que podían llevar a cabo más tareas en forma automática. Una de tales máquinas, inventada sin intención alguna de que efectuase cálculo matemático de ningún tipo, fue una hiladora de textiles desarrollada por
Joseph Jacquard, la cual era controlada mediante instrucciones almacenadas en códigos puestos en tarjetas perforadas. Con un simple cambio en las instrucciones, era posible cambiar el patrón del hilado. Aquí podemos ver los inicios del
programa almacenado. Esta idea, unida al funcionamiento mecánico de las calculadoras comerciales de aquél entonces, proporcionaría la inspiración necesaria para llevar a cabo uno de los proyectos más ambiciosos de dicha época: la invención de una computadora para llevar a cabo cálculos matemáticos activada por medios puramente mecánicos.
En los albores de la revolución industrial, tras el descubrimiento de la máquina de vapor, los primeros intentos por construír una máquina capaz de poder llevar a cabo en forma automática cálculos automáticos aritméticos repetitivos considerados laboriosos para los humanos, efectuándolos en forma rápida y sin incurrir en equivocaciones, se pueden rastrear a la
máquina analítica de
Charles Babbagge y su colaboradora cercana
Ada Lovelace, considerada como la primera programadora de sistemas de informática. La máquina analítica de Babbage, inventada en 1835, repleta de engranes mecánicos impulsados por la fuerza del vapor, era algo que en principio podía y debía funcionar. Quizá demasiado avanzada para su época, la máquina de Babbage usaba tarjetas perforadas para controlar y dirigir su operación, las cuales contenían las instrucciones a llevarse a cabo. La máquina era capaz de usar los resultados de un cálculo para comenzar otro cálculo diferente, y era capaz de llevar a cabo cálculos repetitivos o
bucles. Un logro significativo en el diseño de la máquina era la capacidad de poder saltar alrededor de las instrucciones del programa en lugar de tener que ir tomando las instrucciones en la secuencia en que habían entrado en el programa. Este mismo concepto es usado y conocido ampliamente hoy en día por los programadores de la actualidad bajo el nombre de
transferencias condicionales. Sin embargo, la falta de fondos suficientes para llevar tan ambicioso proyecto hasta su conclusión así como los cambios continuos hechos por Babbage a las especificaciones mecánicas de los componente de su máquina, impidieron que la máquina pudiera ser terminada, quedando como un sueño pendiente a ser realizado por generaciones sucesivas. Hoy sabemos de sobra que algo como lo que pretendía hacer un solo hombre como Babbage requiere de un equipo completo de hombre de ciencia dedicados única y exclusivamente a tal esfuerzo. Sin embargo, Babbage estuvo más cerca de terminar su máquina de lo que generalmente se le concede, y de haberlo logrado quizá habría acelerado el progreso de la humanidad por varias décadas.
La idea de Babbage de usar tarjetas perforadas para especificar las instrucciones de un programa de cómputo capaz de resolver problemas matemáticos fue retomada en los años 1890 por
Herman Hollerith, el cual inventó la
tarjeta perforada que hacía uso del
código Hollerith así como una máquina
eléctrica para leer rápidamente las tarjetas perforadas. sentando así las bases para la creación de una compañía que sería conocida como la
International Business Machines (IBM).
El tiempo continuó su marcha inexorable, sin muchos avances dramáticos dignos de ser mencionado, hasta que al fragor de la Segunda Guerra Mundial, con el poder de la electricidad en uso común y cotidiano, hizo su aparición una nueva generación de visionarios que desde la Universidad de Harvard emprendieron el diseño de lo que vendría siendo la primera computadora electromecánica, la
Mark I, construída bajo pedido por IBM y terminada en 1944:
Posiblemente el lector esté familiarizado con el hecho de que un dispositivo electromecánico es aquél que usa electricidad para producir un movimiento mecánico, un ejemplo del cual es la alarma eléctrica. El relevador y los solenoides fueron los dispositivos mecánicos que fueron usados en estas computadoras electromecánicas. La Mark I era una máquina grande, con cerca de 15.5 metros de longitud y 2.4 metros de altura. Las instrucciones para programarla eran alimentadas en cintas de papel perforado y los datos eran a ser manipulados eran alimentados mediante tarjetas perforadas, tal y como lo había concebido Babbage. Los resultados de la computadora eran almacenados en tarjetas mediante una máquina de escribir eléctrica. La Mark I podía multiplicar dos números en cerca de tres segundos. Terminada la Segunda Guerra Mundial, su sucesora la Mark II concluída en 1947 podía llevar a cabo la misma multiplicación en un cuarto de segundo. Era 12 veces más rápida, y en su tiempo fue un gran paso en la dirección correcta. Pero las limitaciones inherentes a los movimientos electromecánicos de los solenoides impedían que se pudiese esperar de grandes mejoras en las velocidades de procesamiento. Era necesario recurrir a otro tipo de tecnología de índole puramente electrónica, sin partes con movimientos electromecánicos, para incrementar los tiempos de procesamiento. Y tal tecnología ya existía: los bulbos electrónicos al vacío, los mismos bulbos que antaño se utilizaban para construír aparatos de radiocomunicación, amplificadores de sonido, etcétera.
La primera computadora digital
electrónica, desarrollada en 1946 por
John Presper Eckert,
John Mauchly y otros en la Moore School of Engineering en la Universidad de Pennsylvania, la
ENIAC (acrónimo de Electronic Numerical Integrator and Computer), era capaz de llevar a cabo una multiplicación en alrededor de 2.8 milisegundos:
En rigor de verdad, hay reclamos de que ya desde antes en Alemania se había desarrollado una computadora electromecánica, la
Z3 inventada por Konrad Zuse, así como la computadora
Colossus. Pero la primera quedó destruída por los bombardeos llevados cabo por las fuerzas aliadas, mientras que la segunda fue mantenida en secreto por largo tiempo después de haber concluído la Segunda Guerra Mundial, motivo por el cual tales avances tuvieron un impacto casi nulo en el desarrollo y comercialización de las computadoras.
Concluída la Segunda Guerra Mundial, podemos hablar de varias generaciones sucesivas de computadoras disponibles comercialmente, y haremos aquí un intento por resumir la clasificación generalmente aceptada de cada generación.
Las computadoras de primera generacion
A diferencia de las primeras computadoras como Mark I y ENIAC que estaban restringidas a aplicaciones de uso cerrado muy específico, siendo máquinas de diseño único que jamás fueron concebidas para ser producidas en serie, los ingenieros y programadores que participaron en la construcción de esos prototipos experimentales no tardaron en poner en marcha la construcción de lo que puede considerarse como las primeras computadoras comerciales, las cuales podemos clasificar como computadoras de primera generación. Esta generación comenzó en 1951 con la primera computadora electrónica diseñada para ser construída en serie y vendida comercialmente, la computadora
UNIVAC I, producida por una compañía llamada Remington Rand. La primera UNIVAC I fue instalada para ser usada por el U.S. Bureau of Census. Por varios años, la gente usó la palabra “UNIVAC” cada vez que alguien se refería a una computadora. Esto continuó hasta que la competencia llegó cuando la International Business Machines (IBM) empezó a construír y vender computadoras. La primera computadora IBM fue la computadora
IBM 701 y fue instalada por vez primera en 1953. Al año siguiente, la IBM puso a la venta la computadora
IBM 650, la cual fue la computadora más popular por algunos años, de modo tal que cuando alguien se refería a una “IBM” sus interlocutores sabían que la persona se estaba refiriendo a una computadora.
Todas las computadoras de la primera generación estaban basadas en el uso de
válvulas electrónicas, los cuales al igual que cualquier foco de filamento incandescente estaban propensos a fallas eléctricas y los cuales usados en los grandes números requeridos por cualquier computadora requerían de grandes cantidades de enfriamiento por aire acondicionado, de modo tal que la operación de las mismas salía más onerosa que el costo de adquisición. Siendo el bulbo electrónico en su quintaesencia un foco incandescente, el mantener en operación una máquina con miles de tubos electrónicos encendidos al mismo tiempo consumía tan grandes cantidades de energía que se requería de varias toneladas de aire acondicionado para que las máquinas no se calentaran , y los sistemas de aire acondicionado en sí también consumían grandes cantidades de energía eléctrica. Y puesto que bastaba que un solo bulbo electrónico fallara para mandar abajo por completo la operación de la máquina, el mantenimiento y reparación de las mismas consumía grandes cantidades de presupuesto. Era indispensable encontrar otra tecnología en la que los componentes usados para construír las compuertas lógicas en las cuales basa su operación cualquier computadora no consumiesen tanta energía y no estuviesen propensos a fallos seguidos. Tal tecnología no tardaría en llegar con avances en la física del estado sólido.
Las computadoras de segunda generación
El elemento crucial para reemplazar a los tubos electrónicos incandescentes fue la invención oportuna del
transistor bipolar, el cual permitió la transición de bulbos electrónicos a transistores en las computadoras comerciales vendidas alrededor de 1959:
Se trata, en efecto, del advenimiento de la electrónica con componentes de estado sólido aplicada a grandes proyectos computacionales. El transistor era mucho más económico, mucho más confiable, requería menos energía eléctrica al no necesitar un filamento incandescente para su funcionamiento, y era mucho más pequeño que los bulbos electrónicos miniatura que se habían logrado desarrollar. La siguiente fotografía nos muestra uno de tales transistores con la cápsula superior de empaquetamiento removida:
Con la invención del transistor que terminó desplazando al tubo electrónico como el elemento básico de construcción de las compuertas lógicas básicas usadas en todas las computadoras, la fabricación de las computadoras de primera generación llegó a su fin. Algunos fabricantes concentraron sus esfuerzos en la construcción de computadoras de propósito general mientras que otros concentraron sus esfuerzos en computadoras científicas diseñadas para obtener una “super-precisión” en los cálculos numéricos. En virtud de la competencia intensa en el mercado de las computadoras, fueron concebidos muchos tipos de diseños y arquitecturas, proporcionando la experiencia para ir acercando a los académicos a un consenso sobre lo que pudiera ser calificado como un diseño “óptimo”. Algunos tuvieron éxito comercial mientras que otros fracasaron. La siguiente tabla proporciona un resumen de algunas de las computadoras más usadas de la segunda generación:
Fabricante |
Modelo |
Tamaño
|
Aplicación
|
IBM |
1620 |
Pequeño |
Científico |
IBM |
1401 |
Pequeño a mediano |
Negocios |
IBM |
7094 |
Grande |
Científico y negocios |
CDC |
1604 |
Mediano a grande |
Científico |
CDC |
3600 |
Grande |
Científico |
RCA |
501 |
Mediano |
Negocios |
UNIVAC |
1108 |
Grande |
Científico y negocios |
Aún con las enormes reducciones de costos de fabricación y mantenimiento obtenidas con el reemplazo de los tubos electrónicos con transistores, las computadoras de la segunda generación seguían siendo tan costosas que hubiera sido inconcebible comprar una de estas máquinas para ser usada por una sola persona, y más inconcebible aún que pudieran ser usadas para escribir novelas, para escuchar música digitalizada o para “chatear”.
Las computadoras de tercera generación
Hay un consenso generalizado de que la tercera generación de computadoras comenzó alrededor de 1966 cuando los fabricantes introdujeron el concepto de familias de computadoras, de las cuales la familia correspondiente al
Sistema/360 de IBM es el primer ejemplo, siendo este el primer ordenador que empezó a substituir los transistores individuales con circuitos integrados dentro de los que se podían empaquetar no uno sino varios transistores. La familia del Sistema/360 incluía una máquina pequeña (relativamente hablando) para ser usada en negocios, bautizada como el modelo 30, así como otros modelos hasta máquinas grandes y potentes para ser usadas en aplicaciones científicas y de negocios. Cada modelo estaba identificado por un número único, y en general entre más grande era el número tanto mayor era el poder computacional. Las computadoras de la tercera generación resolvieron un problema característico de las computadoras de segunda generación, el que programas sofisticados desarrollados para máquinas más pequeñas con una gran inversión de tiempo y recursos no se podían correr en máquinas más potentes, inclusive máquinas construídas por una misma empresa. En efecto, cada modelo de máquina requería su propio programa, y aunque el objetivo final del programa a fin de cuentas fuese el mismo, hacer la misma tarea en otra máquina requería volver a escribir un programa desde el principio o tratar de adaptar lo ya existente a otra máquina invirtiendo mucho tiempo y esfuerzo en las correcciones requeridas. Este problema fue la razón detrás del concepto del desarrollo de familias de computadoras. Así, una compañía podía empezar comprando o rentando una máquina pequeña, y posteriormente conforme la compañía fuese creciendo se podía comprar o rentar una máquina más grande de la misma familia con la plena seguridad de que los programas desarrollados para la máquina más pequeña podían correr o ser ejecutados en otra máquina más potente de la misma familia requiriendo tan solo cambios mínimos o quizá ningún cambio en los programas desarrollados para la máquina más pequeña. Esto es lo que se conoce como
compatibilidad hacia arriba (en inglés,
upward compatibility), y es exactamente lo mismo que vemos hoy en día cuando un usuario que ha elaborado una hoja de cálculo Excel en Windows XP espera que la misma hoja de cálculo pueda ser abierta sin cambio alguno en un Excel diseñado para funcionar en Windows 8. En el caso del hardware, esto implica que debemos poder llevar a cabo mejoras en el hardware (actualizando tarjetas internas o chips) sin necesidad de tener que desechar la máquina completa con cada nueva actualización de hardware que vaya apareciendo con un dispositivo nuevo que será conectado a la máquina. Lo mismo aplica a los sistemas operativos, nadie le compraría a ninguna empresa una actualización del sistema operativo de su máquina si tal actualización traera como consecuencia que los programas ejecutables que antes le funcionaban a la perfección dejarán de trabajar. El número “360” usado para identificar a la familia del Sistema/360 de IBM se inspiró de la graduación de 360 grados en la rosa de los vientos, queriendo decir con ello que dentro de una misma familia los clientes podía migrar “en cualquier dirección” con la garantía de toparse con muy pocos problemas sin mayores consecuencias en lo que a la compatibilidad del software respecta.
Otra característica que marcó el comienzo de la tercera generación fue el uso de módulos miniaturizados de circuitos, haciendo realidad el concepto de una máquina construída a base de módulos fácilmente intercambiables y reemplazables en caso de fallas, y el uso cada vez más pronunciado de circuitos integrados. Los módulos híbridos miniaturizados, llamados “tecnología de lógica sólida” por IBM, tenían al transistor “pelón” (sin empaquetamiento alguno) y capacitores de chip montados en un pequeño substrato de cerámica en el cual las resistencias y los conductores eléctricos eran montados permanentemente. El módulo completo era un cuadrado de alrededor de media pulgada (127 milímetros) de largo. Sin embargo, la mayoría de los fabricantes pronto llevó a cabo la transición hacia el circuito integrado que fue inventado por Jack Kilby en 1958. De este modo, una computadora de tercera generación usando circuitos integrados era mucho más pequeña, más confiable al ser propensa a menos fallas, menos cara, y consumiendo menos energía eléctrica para el mismo poder de cómputo proporcionado por una máquina de segunda generación.
Las computadoras de cuarta generación
La distinción entre las computadoras de tercera generación y cuarta generación no es tan clara como en el caso de las generaciones precedentes. Algunos especialistas opinan que las computadoras de la cuarta generación comenzaron con la familia del
Sistema/370 de IBM (una versión actualizada del Sistema/360), pero muchos otros son de la opinión que las computadoras de la cuarta generación empezaron con el arribo del microprocesador, el cual por vez primera integró en un solo circuito miniaturizado todos los componentes propios de una unidad de procesamiento central CPU. Los avances tecnológicos continuos permitieron la inclusión de memoria y funciones de entrada/salida en el mismo chip, de modo tal que se podía tener una microcomputadora completa en un chip. El primer procesador era un procesador de tan solo cuatro bits, apareciendo en el mercado en 1971, pero pronto fue seguido por el microprocesador de 8 bits.
En las computadoras de la cuarta generación podemos ver otro avance significativo. Si bien el transistor bipolar representaba un ahorro considerable en sus requerimientos energéticos en comparación con los requerimientos energéticos de las válvulas electrónicas, la cosa se podía mejorar aún más con el reemplazo de los transistores bipolares con otro tipo de transistor, el
transistor MOS (Metal Oxide Semiconductor), el cual con su consumo prácticamente nulo de corriente eléctrica y su consumo prácticamente nulo de energía traduciéndose en una disipación calorífica considerablemente menor, posibilitó ir metiendo cantidades cada vez mayores de componentes lógicos computacionales dentro de los circuitos integrados.
La integración de una cantidad cada vez mayor de componentes lógicos en un solo circuito integrado abrió las puertas para poner en un solo chip los componentes que estaban dispersos en varios módulos separados, los cuales en conjunto formaban lo que hoy se conoce como la unidad de procesamiento central o CPU (del inglés, Central Processing Unit). Por tratarse de una unidad de procesamiento miniaturizada a través de la microelectrónica, a este componente se le dió el nombre que aún lleva hasta la fecha: el
microprocesador, abreviado en mucha literatura técnica como
μP en donde se hace uso del prefijo
μ que de la palabra griega “mu” se usa para representar la palabra “micro”.
La aparición del microprocesador no fue consecuencia de una actitud visionaria, de un diseño astuto o de una planeación avanzada y de fondo. Fue de hecho en su mayor parte algo accidental. Los primeros microprocesadores introducidos en el mercado fueron accidentes de la tecnología, y en ocasiones, rechazos. Debido a la introducción desordenada y no planificada de los microprocesadores, varios de sus errores iniciales de diseño e inadecuaciones continuaron propagándose de una generación a otra, todo en el nombre de algo llamado “compatibilidad”, y muchas de las características que encontramos en el desarrollo de los microprocesadores tienen sus orígenes en este desarrollo desordenado y caótico en donde tuvieron su cuna.
El microprocesador tiene un historial interesante que nadie anticipaba en aquél entonces. Comienza con el ensamble en la Costa Este de los Estados Unidos (en los laboratorios Bell Telephone Labs) de un pequeño puñado de científicos encabezados por
William Shockley (ganador del Premio Nóbel de Física, inventor del transistor bipolar que dió inicio a la revolución de la electrónica de estado sólido) dentro del cual se encontraban Robert Noyce y Gordon Moore. Shockley dejó Bell Telephone para crear su propia compañía, Shockley Research Laboratories. Unos años después un grupo pequeño de científicos dejaron esta compañía para crear la suya propia en la Costa Oeste de Estados Unidos, Fairchild, en Sunnyvale (al sur de San Francisco), en lo que con el paso del tiempo sería conocido como el “Valle del Silicio” (Silicon Valley). Unos años después, un grupo pequeño de científicos dejaron esta compañía para fundar otra empresa en Sunnyvale que sería bautizada como Intel (Integrated Electronics), fundada en 1968 por Robert Noyce y Gordon Moore. Esos fueron los orígenes de la empresa que inventó el microprocesador. La historia del microprocesador propiamente dicho comienza tres años después con la introducción en el mercado (a principios de 1971) del circuito integrado 4004 producido por Intel, un chip de silicio que incorporaba 2,250 transistores, desarrollado y fabricado como resultado de un contrato con una compañía japonesa fabricante de calculadoras electrónicas de escritorio, cuya microfotografía ampliada se muestra a continuación:
Los otros compradores del 4004, esencialmente un microprocesador de 4 bits (cuatro bits es lo que se requiere para poder representar con combinaciones de unos y ceros un número decimal del cero al nueve) tuvieron que firmar un contrato comprometiéndose a no usar el 4004 para desarrollar calculadoras de escritorio por lo menos durante un año. De este modo, el primer microprocesador fue, de hecho, un circuito integrado diseñado para ser usado como una calculadora de escritorio. Por lo tanto ese circuito integrado no era muy potente, y era generalmente inadecuado para ser usado en computación de propósito general, y por lo tanto nunca hubo altas expectativas sobre sus posibilidades de venta.
El siguiente paso fue la introducción en 1972 del 8008, el primer microprocesador de 8 bits de propósito general. Unos años antes, la compañía Display Terminals Corporation (conocida después como Datapoint) había abierto un petición pública para el desarrollo de un procesador monolítico capaz de controlar un monitor con una pantalla de tubos de rayos catódicos, desde un solo chip. Dos compañías compitieron por y obtuvieron el contrato de desarrollo: Texas Instruments e Intel. Después de algunos meses de esfuerzo, Texas Instruments se retiró de la competencia, mientras que Intel continuó con el desarrollo de un componente que podía satisfacer todos los requerimientos funcionales pedidos por Datapoint excepto uno: era demasiado lento. Aunado a esto, y al mismo tiempo, había empezado una guerra de precios sobre los precios de otra tecnología alterna basada en componentes bipolares, resultando en precios significativamente menores para los productos bipolares. En vista de la velocidad inadecuada del procesador desarrollado por Intel, y los precios considerablemente más bajos de los componentes bipolares, Datapoint decidió implementar su controlador con tecnología bipolar. De este modo, Intel se quedó con un producto cuyo desarrollo ya había sido pagado, pero para el cual no había un mercado obvio. Un producto esencial de Intel, entonces una compañía muy joven, eran productos de memoria. Con cierta reticencia, el 8008 fue introducido en el mercado bajo la suposición de que vendería más productos de memoria. Parecería que todos los esfuerzos de diseño serían detenidos y el equipo de diseño sería reasignado a otras tareas. ¡Esto iba a ser el fin de los microprocesadores!
Para gran sorpresa del fabricante (y de sus competidores) las ventas del nuevo producto (el microprocesador) empezaron a escalar rápidamente. Uno de los fabricantes de circuitos integrados se había topado por accidente con el siguiente producto de integración a gran escala (LSI) en el mercado, el microprocesador. Intel se dió cuenta rápidamente del potencial del nuevo producto, ensambló de nuevo un equipo de diseño, e introdujo un año después el sucesor del 8008, el 8080. Simultáneamente, los competidores principales de Intel dedicaron sus esfuerzos para implementar su propia versión de lo que creían que un 8080 debería haber sido. En los dos años que siguieron, todos los microprocesadores “estándard” en el mercado de ese entonces fueron introducidos, la mayoría de ellos inspirados en el diseño temprano del 8080. Motorola introdujo el 6800 (un año después de la introducción del 8080), Rockwell introdujo el PPS8, Signetics introdujo el 2650, etc.
Tiempo después, varios diseñistas del 8080 dejaron a Intel para fundar su propia empresa, Zilog, la cual introdujo el microprocesador Z-80, un pretendido sucesor del 8080 con el cual Zilog terminó compitiendo directamente en contra de Intel. El mecanismo de creación de nuevas empresas fabricantes de microprocesadores fundadas por científicos diseñistas que habían estado trabajando en otras empresas exitosas también fabricantes de microprocesadores es lo que contribuyó directamente a los enormes parecidos en diseño y arquitectura de los procesadores de esa época pese a ser elaborados en compañías diferentes. Y es lo que contribuyó también a sus deficiencias en sus diseños (tales como una sobreabundancia de registros internos, lo cual parecería ser una ventaja, aunque el domiciliamiento de registros múltiples típicamente requiere de instrucciones en lenguaje de máquina más grandes lo cual se traduce en un tiempo más lento en la ejecución de las instrucciones). Solo con el paso del tiempo estas deficiencias en el diseño empezaron a ser corregidas conforme la densidad de integración iba en aumento. En la siguiente microfotografía se tiene el circuito integrado
iAPX 432 fabricado por Intel:
Y en la fotografía que se muestra a continuación podemos ver a uno de estos circuitos integrados pasando a través del proverbial ojo de una aguja:
Los primeros microprocesadores estaban limitados en sus capacidades de cómputo, pero ya para finales de los setentas eran tan poderosos y sofisticados como las unidades de procesamiento central usadas en las computadoras de la segunda e inclusive la tercera generación. La siguiente tabla nos muestra algunos de los microprocesadores que fueron históricamente los más vendidos y utilizados conforme la tecnología se fue desarrollando desde microprocesadores de 4 bits hasta microprocesadores de 16 bits:
Número de bits
|
Fabricante
|
Modelo
|
4
|
Texas Instruments
|
1000
|
4
|
Intel
|
4004
|
8
|
Intel
|
8080, 8085
|
8
|
Fairchild
|
F-8
|
8
|
Motorola
|
6800,6809
|
8
|
National
|
IMP-8
|
8
|
RCA
|
COSMAC
|
8
|
MOS Technology
|
6502
|
8
|
Signetics
|
2650
|
8
|
Zilog
|
Z-80
|
16
|
Texas Instruments
|
9900
|
16
|
Motorola
|
68000
|
16
|
Intel
|
8086
|
16
|
Zilog
|
Z-8000
|
Un procesador con una capacidad cada vez mayor de procesamiento es un reflejo directo del aumento explosivo en la densidad de compuertas lógicas (bloques AND, OR, NOT, XOR, etc.) puestas dentro de un circuito integrado. Para poder apreciar la rapidez con la cual se fueron dando los avances en la integración de una cantidad cada vez mayor de componentes en un solo circuito integrado, basta con repasar la siguiente tabla que nos muestra el progreso de la tecnología de los años sesenta a los años setenta en los cuales se tenía una terminología técnica peculiar para clasificar el grado de integración en base al número de compuertas lógicas que había dentro de un chip:
Nivel de
integración
|
Número de compuertas
lógicas por chip
|
Período
|
Integración de
escala pequeña SSI
(Small Scale
Integration)
|
12
|
Inicios de los sesenta |
Integración de
escala mediana MSI
(Medium Scale
Integration)
|
100
|
Finales de los sesenta |
Integración de
gran escala LSI
(Large Scale
Integration)
|
1,000
|
Inicios de los setenta |
Integración de
muy grande escala
VLSI (Very Large
Scale Integration)
|
50,000
|
Finales de los setenta |
Podemos ver que, de acuerdo con esta tabla, el nivel de integración fue creciendo 4 mil veces desde la integración a escala pequeña SSI hasta la integración a muy grande escala VLSI en menos de 20 años. El pronóstico sobre este crecimiento explosivo quedó enunciado formalmente en lo que hoy se conoce como la
ley de Moore. Obviamente, esta clasificación quedó completamente obsoleta al inicio del tercer milenio en donde el número de compuertas lógicas ascendía ya a los cientos de miles en cada circuito integrado. Pero esto no da la historia completa, porque al mismo tiempo que el nivel de integración crecía el área del chip
por componente lógico iba disminuyendo al mismo tiempo, de modo tal que el tamaño total del chip no crecía en proporción al número de compuertas lógicas. De hecho, en el período de tiempo considerado, el tamaño del chip solo creció en veinticinco tantos. Puesto que el tamaño del chip no incrementaba mucho, y puesto que los avances en los procesos de manufactura mantenían bajos los costos de producción, el costo de cada circuito integrado iba creciendo muy poco. Pero en virtud del aumento en el número de compuertas lógicas por chip, el costo
por compuerta lógica fue disminuyendo en un factor de 1,000, lo cual proporcionó unidades de procesamiento central de bajo costo pero con capacidades extraordinarias de cómputo para ser usadas en sistemas de computación que eran pequeños, consumían poca potencia, y eran altamente confiables.
La misma tecnología que permitió ir poniendo una cantidad cada vez mayor de compuertas lógicas en circuitos integrados proporcionó otro beneficio a los sistemas computacionales, ya que además de posibilitar unidades de procesamiento central de bajo costo para ser usadas en microcomputadoras, la tecnología VLSI permitió la colocación de grandes cantidades de memoria de acceso aleatorio RAM en un solo chip, permitiendo que ya para inicio de los ochentas hubiera memorias RAM capaces de poder almacenar 65,536 bits de información (a una memoria de este tipo frecuentemente se le refiere como una memoria de 64K, en donde K representa 1,024 o 2
10).
Sin embargo, faltaba aún lo mejor, algo que ya se empezaba a vislumbrar en el horizonte. La posibilidad de poder poner a precio accesible una computadora doméstica en cada hogar ya sea para usos personales o fines de entretenimiento, haciéndolo con una presentación amigable e intuitiva para el vasto mercado de consumidores que carecían de conocimientos técnicos acerca de todo lo que tuviera que ver con el uso y manejo de las computadoras digitales, y ello no tardaría en llegar con el abaratamiento y la proliferación que empezaba a darse en el mercado de los microprocesadores.
La era de las interfaces gráficas
El primer gran impulso para la comercialización masiva del microprocesador fue dado por los aficionados en tomar la electrónica tomada como un “hobby”, los cuales acostumbrados a construír sus propios proyectos (radios, fuentes de poder, transmisores caseros, amplificadores de audio, etc.) crearon un mercado nuevo para el producto, Con el advenimiento de familias completas de circuitos integrados que daban apoyo en todo tipo de funciones a los microprocesadores que se estaban fabricando en ese entonces, una vez que se proporcionaban todos los componentes -incluyendo el circuito impreso, un gabinete atractivo así como las instrucciones detalladas- para llevar a cabo el ensamble la construcción de todo un sistema completo era cosa que cualquier persona podía llevar a cabo en unas cuantas horas aún sin conocimientos técnicos de electrónica. Para las personas para quienes estos proyectos tenían un valor educativo o de entretenimiento, esto terminó resultando uno de los juguetes o herramientas más sofisticados que se hayan introducido en el mercado. Para 1977, se estimaba que eran ya cientos de miles de estudiantes, ingenieros electrónicos, médicos, abogados y hombres de negocios los que estaban involucrados activamente en la construcción de computadoras pequeñas usando componentes microprocesadores, así como en la programación de dichos sistemas. Los profesionistas y hombres de negocios frecuentemente ensamblaban tales sistemas para obtener algún beneficio directo como la administración de archivos, contabilidad, o como una ayuda en su profesión, mientras que otros los construían para diversión o entretenimiento. En el mercado dirigido a estos aficionados, un primer gran paso fue dado por la empresa MITS que comercializó una computadora que bajo el concepto de “construya usted mismo su propia computadora” puso a la venta un
kit de partes junto con las instrucciones necesarias para el ensamble de una computadora bautizada como la
Altair 8800.
Al mismo tiempo que creció la venta de “kits” para que cada quien en su propia casa pudiera construír su propia computadora sin tener que gastar cientos de miles de dólares en obtener la satisfacción de poder poseer y poder programar su propia computadora, empezaron a aparecer computadoras ya ensambladas listas para ser encendidas y ser usadas de inmediato, lo cual apelaba a quienes careciendo de experiencia en electrotécnica se sentían intimidados y hasta incapaces de poder ensamblar cosa alguna que tuviera que ver con circuitos eléctricos. La caída de precios permitió que hiciera su aparición la computadora doméstica
Commodore 64, al igual que la computadora
Sinclair ZX81 que se llegó a vender en forma de kit en cien dólares. Por su parte, el consorcio Tandy/Radio Shack introdujo la serie de computadoras
TRS-80, junto con una atractiva variedad de productos de software para ser usado con dichas máquinas.
Ante la intensa actividad que estaba siendo desplegada a bajo nivel por los aficionados a la computación que estaban adquiriendo en cantidades cada vez mayores equipos de cómputo para ser ensamblados en sus propias casas así como otros que estaban adquiriendo computadoras ya construídas, era de esperarse que el gigante empresarial dedicado a la venta de computadoras de alta capacidad con fines profesionales, la International Business Machines Corporation (IBM) decidiera no quedar fuera de este mercado de bajo nivel, siempre tratando de mantener su monopolio sobre sistemas de cómputo tanto en el ámbito profesional como en el ámbito de los aficionados que hasta ahora había descuidado.
La entrada de IBM al mercado de las computadoras personales o PCs (abreviación de Personal Computer) se llevó a cabo con la
IBM PC que fue seguida posteriormente por la
IBM PC XT en la que se le agregó un disco duro a la máquina original que permitiría un avance significativo en el software del sistema operativo de la máquina, y por la
IBM PC AT (las siglas AT significan
Advanced Technology). Por increíble que parezca, siendo el gigante que era aunque IBM poseía todos los recursos económicos y el talento científico para fabricar por cuenta propia sus propios microprocesadores y elaborar su propios sistemas operativos para sus computadoras personales, en una mala decisión gerencial que terminaría lamentando tiempo después prefirió convertirse en una mera ensambladora de tales sistemas, adquiriendo los microprocesadores de una empresa llamada Intel, y adquiriendo el sistema operativo PC-DOS de una empresa llamada Microsoft. Con el paso del tiempo, ambas empresas se convertirían en el mayor fabricante de procesadores y en el mayor fabricante de sistemas operativos del mundo entero, sacando a IBM de su posición privilegiada al ir aumentando rápidamente la potencia de los microprocesadores así como la versatilidad y facilidad de uso de los sistemas operativos fabricados por quienes se convirtieron en sus propios competidores. Lo único que puso IBM detrás de sus computadoras personales fue su propio logo, lo cual sirvió como justificante para que el precio de las mismas fuera inicialmente alto. Eventualmente aparecieron competidores que se aprovecharon del hecho de que IBM no podía reclamar patente alguna en los componentes del sistema (el cerebro de las máquinas era fabricado no por IBM sino por Intel, el sistema operativo era elaborado no por IBM sino por Microsoft. En lo que toca al chip
BIOS conteniendo las rutinas para inicializar a la máquina durante el encendido, IBM tuvo que enfrentar muy pronto la competencia de empresas tales como
Phoenix Technologies y
American Megatrends que le quitaron a IBM la exclusividad en las funciones del chip BIOS. Y como ni siquiera el gabinete de las máquinas podía ser patentado por IBM, no tardaron en hacer su aparición las computadoras clonadas de IBM o “clones”. De cualquier modo, la filosofía de diseño e integración de componentes concebida por los ingenieros de IBM es algo que sigue siendo de inmensa utilidad todavía hasta nuestros días, ya que gracias a tal visión cualquiera puede ensamblar en casa su propia computadora personal adquiriendo el procesador junto con su abanico de enfriamiento, la tarjeta madre (motherboard) que sirve de huésped al procesador, las tablillas de memoria RAM, el lector de discos DVD, la fuente de poder, el gabinete, el sistema operativo (el cual es gratis, en caso de que se quiera recurrir a Linux como sistema operativo), y ensamblar todo en un par de días sin tener que usar soldadura y una pistola para soldadura como en otros tiempos. Otra gran aportación de los diseñadores de la arquitectura IBM fue el de las especificaciones de sockets para permitir la inserción de tarjetas de expansión, mediante espacios vacantes en la tarjeta madre en los cuales se podía meter una tarjeta para algún propósito especial como ampliar la cantidad de memoria RAM disponible en las máquinas, agregar alguna de sonido, agregar alguna tarjeta de módem así como tarjetas para gráficos de alta resolución, etcétera.
Antes de que las computadoras personales IBM fueran introducidas en 1981, la mayor parte de la computación a escala pequeña con fines no-recreativos (orientada a negocios) era llevada a cabo mediante máquinas construídas con el procesador
Z80 de la empresa Zilog, un procesador de 8 bits, usando para la operación y el control inicial de la máquina un sistema operativo llamado
CP/M (Control Program for Microprocessors) elaborado por la empresa
Digital Research, el cual estaba basado en líneas de comandos. En ese entonces, la mayoría de las máquinas contaban con apenas 32 Kilobytes o 64 Kilobytes de memoria RAM, mientras que las máquinas para uso personal clasificadas como “máquinas monstruo” contaban con 128 Kilobytes de memoria.
Según lo cuentan las anécdotas, para el lanzamiento de sus computadoras personales IBM al principio se contactó con Digital Research, la compañía que creó CP/M, para la elaboración de un sistema operativo para sus computadoras de 16 bits, pero por azares del destino IBM terminó seleccionando a una compañía llamada Microsoft, fundada el 4 de abril de 1975, cuya propuesta para IBM se inspiró en la interfaz de líneas de comandos de CP/M incorporando en el sistema operativo de Microsoft comandos de CP/M tales como dir, format, etc. Para el fundador de Microsoft, el giro del destino que terminó beneficiándolo a él en lugar de a
Gary Kildall (el fundador de Digital Research) con el contrato con IBM sería lo que lo pondría en camino de convertirse en el hombre más rico del mundo al terminar monopolizando el mercado mundial comercial de sistemas operativos.
El cerebro de la nueva computadora personal a ser introducida por IBM iba a ser el procesador 8086, una versión ligeramente más rápida del 8088, aunque el 8088 terminó siendo usado en lugar del 8086. Una versión de lo sucedido describe que la decisión de haber escogido al 8088 sobre el 8086 fue por una supuesta escasez de chips 8086, aunque otra versión menos gentil con IBM sostiene IBM consideraba a las microprocesadores como meros juguetes y no se justificaba gastar un poco más en un procesador más rápido. Ambos μP, siendo de 16 bits, podían accesar hasta 1,024 Megabytes de memoria RAM (frecuentemente abreviado como 1 Mb), lo cual en aquél entonces parecía ser mucho más memoria de lo que cualquier programa de aplicación concebible para computadoras de uso personal pudiera necesitar (en esto ayudó el hecho de que no había sistemas operativos con una interfaz gráfica, los cuales además de que requieren de una tarjeta interna para gráficos o de una capacidad para gráficos incorporada en la electrónica del procesador, requieren de una buena cantidad de memoria RAM). Se creía que era tanta la memoria posible de 1 Megabytes de RAM, que se reservaron 384 Kilobytes para uso interno de la máquina (sistema operativo), dejando 640 Kilobytes disponibles para programas de aplicación, dando origen a lo que terminó siendo conocido como la famosa “barrera de los 640 Kbytes”.
Sin embargo, pese al abaratamiento de las máquinas, faltaba el ingrediente indispensable para hacer accesible en forma masiva las computadoras domésticas al individuo común y corriente. El impedimento principal radicaba en la interfaz con el usuario.
Tanto en las terminales (teclados y pantallas) de usuarios independientes conectados a grandes computadoras centralizadas en instituciones académicas y organizaciones gubernamentales funcionando bajo el viejo sistema operativo UNIX, como en las computadoras domésticas funcionando bajo los sistemas operativos PC DOS y MS DOS elaborados por Microsoft, la clásica ventana de líneas de comandos de texto presentaba un aspecto generalmente intimidante y nada intuitivo en el cual el simple acto de copiar un archivo de un directorio (carpeta) a otro directorio o sub-directorio requería memorizar o tener a la mano el manual del usuario con todos los comandos disponibles, requiriendo incluso el tener que asistir a cursos y seminarios para poder usar tales sistemas operativos. A modo de ejemplo, a continuación se presenta la sintaxis requerida para copiar un archivo, tal y como se especificaba en el manual DOS:
COPY [/A] [/B] [d:] [path] filename [.ext] [/A] [/B]
[+[[,,d:] [path] filename [.ext] [/A] [/B] ...]
[d:] [path] [filename[.ext]] [/A] [/B] [/V]
La imposibilidad de poder sacarle sentido de buenas a primeras a estas especificaciones técnicas propició la aparición de numerosas academias e instituciones educativas que redujeron lo anterior a algo menos formal y técnico pero mucho más manejable como:
COPY <fuente> <destino>
COPY <archivo a copiar> <copia del archivo>
COPY <archivo1> <archivo2>
dándose ejemplos simplificados tales como:
C> COPY A:\DOCS\VERSION8\reporte5.doc C:\TEMP\REPORTES\BORRADOR\respaldo.doc
Reconociendo una necesidad imperiosa, fue así como aparecieron programas de aplicación que se encargaron de darle una interfaz gráfica intuitiva a los sistemas operativos DOS de las computadoras personales IBM, destacando entre ellos PC TOOLS DELUXE introducido por la empresa Central Point Software. Lo extraordinario de este programa es que no requería que la computadora tuviese instalada una tarjeta de expansión para permitir que la máquina pudiera llevar a cabo graficados en la pantalla así fuese graficados primitivos y en monocromo, bastó con recurrir a los pocos elementos gráficos proporcionados dentro de la convención ASCII extendido desde el ASCII decimal 176 hasta el ASCII decimal 223 (véase en los apéndices al final de esta obra “El código ASCII”) así como tomar el control directo de la porción de la memoria de la máquina asignada a la impresión de caracteres ASCII en la pantalla para producir una muy buena simulación de una interfaz gráfica sumamente intuitiva bautizada como PC SHELL, una especie de “concha” que se encargaba de “envolver” al sistema operativo DOS sin intención alguna de proclamarse como sistema operativo (no lo era, era simplemente una interfaz gráfica), escondiendo la ventana de líneas de comandos DOS para darle un aspecto puramente visual al sistema operativo:
Increíblemente, PC SHELL solo requería 10 Kilobytes de memoria para funcionar a toda su capacidad al ser encendida la máquina (el funcionamiento automático de PC TOOLS al llevarse a cabo el encendido de la máquina se lograba modificando el archivo de texto del sistema AUTOEXEC.BAT durante el proceso de primera instalación de PC TOOLS). Y más increíble aún es que PC TOOLS podía funcionar con un
Mouse (si había instalado uno en la máquina) aunque -lógicamente- sin el cursor puntero en forma de flecha al que estamos acostumbrados hoy en los monitores a color de alta resolución. Comparando la pantalla típica de PC SHELL (con sus dos ventanas características, la ventana izquierda conteniendo el árbol de directorio identificada bajo “Tree 1”, y la ventana derecha conteniendo el listado de archivos bajo “File list 1”):
con la ventana típica del Administrador de Archivos de Windows 3.1:
o la ventana típica de la interfaz gráfica Explorer en Windows XP de la cual se muestra la siguiente captura de imagen:
podemos concluír que casi todos los elementos (líneas de menú, barras de desplazamiento, distribución jerárquica de directorios en la ventana izquierda y los archivos contenidos en cada directorio seleccionado mostrados en la ventana derecha, etc.) bajo gráficos pioneros concebidos por los creadores de PC TOOLS han sido incluídos en las interfaces gráficas de la gran mayoría de los sistemas operativos usados en la actualidad y ciertamente en las interfaces gráficas de todos los sistemas operativos Windows elaborados por la empresa Microsoft (Windows 95, Windows Me, Windows XP, Windows Vista, Windows 7, Windows 8, Windows NT). Pero PC TOOLS no solo fue un programa pionero que contribuyó a sentar el patrón convencional para las interfaces gráficas de todos los sistemas operativos modernos (ninguno de los cuales usa ya la obsoleta ventana de líneas de comandos de texto). Como parte de su paquete de herramientas, incluyó una herramienta que bautizaron como el Clipboard (Portapapeles) que permitía “recortar” o “copiar” una porción de texto de un documento para empastar esa porción de texto en otro documento, formalizando el concepto de “copiado y empastado” de uso tan cotidiano hoy en día. También se incluían dentro del paquete de herramientas algo bautizado como el “Desktop” (Escritorio) en el cual se podían encontrar entre otras cosas un editor de texto llamado NOTEPADS (equivalente al Bloc de Notas en los sistemas operativos de Microsoft), cuatro calculadoras (una Calculadora Algebraica para cálculos aritméticos, una Calculadora Financiera para cálculos financieros y contables, una Calculadora para Programadores y una Calculadora Científica), un programa DATABASES elaborador de bases de datos compatibles con las bases de datos elaboradas con los entonces populares programas
dBASE tanto dBASE III como dBASE IV, y hasta un programa llamado TELECOMMUNICATIONS que permitía el envío o recepción de datos digitales a través de las líneas telefónicas para máquinas conectadas a un modem compatible con los modems Hayes (el estándard de la industria en ese entonces), así como una agenda llamada APPOINTMENT SCHEDULER. Por si esto fuese poco, PC TOOLS también incluía varias utilerías como un analizador de la desfragmentación del disco duro así como un desfragmentador (identificado como COMPRESS DISK). Y para los monitores a colores que ya estaban empezando a hacer su aparición en ese entonces (aunque de baja resolución y con una gama limitada de colores), PC TOOLS permitía configurar su interfaz gráfica al gusto del usuario.
Sin embargo, PC TOOLS no era un sistema operativo, requería de los recursos del sistema operativo DOS para poder funcionar, y como era un programa de aplicación que se vendía por separado para ser instalado como una simple “concha” de envoltura siendo por lo tanto un programa independiente (algo así como los programas antivirus) sin ser incluído como parte integral del sistema operativo de ninguna computadora personal, posiblemente esta es la razón por la cual no se le ha dado a PC TOOLS el importancia que merece por haber iniciado la
era de interfaces gráficas GUI (Graphical User Interface) a través de las computadoras domésticas vendidas por IBM. Pero el usuario de hoy tal vez pueda darse cuenta de que muchas de las cosas que hoy se puede hacer con la versión más reciente y actualizada de un sistema operativo Windows de Microsoft se podían hacer con la misma facilidad con el programa PC TOOLS. El mérito de Microsoft, en todo caso, fue el de haber introducido el concepto de
objetos y la programación orientada-a-objetos mediante una
programación visual para simplificar la programación y el manejo de los objetos manipulados mediante las interfaces gráficas.
En esa época de competencia intensa por estandarizar el uso de interfaces gráficas intuitivas y amigables para el usuario, quizá la computadora de uso casero que más llamó la atención en ese entonces fue la computadora
Apple 1, concebida e impulsada por dos invividuos casi desconocidos en ese entonces, Steve Wozniak y
Steve Jobs, los cuales concibieron e impulsaron el sistema operativo
Mac System 1 lanzado por vez primera el 24 de enero de 1984 y cuya interfaz gráfica presentaba el siguiente aspecto:
La computadora Apple 1 sería superada pronto por la
computadora Lisa también de la empresa Apple fundada por Steve Jobs, y es a la que usualmente se le concede el honor de haber implementado como parte integral de su sistema operativo la primera interfaz gráfica en una computadora comercial, apoyándose en los trabajos de investigación llevados a cabo por el Centro de Investigación en Palo Alto (California) de la empresa Xerox. Para que la interfaz gráfica pudiera tener el éxito que tuvo, fue necesario que previamente se hubiera inventado ese accesorio que podemos considerar como revolucionario en su momento: el
Mouse. Este accesorio ya existía desde antes de la introducción de la interfaz gráfica, inclusive desde antes de la introducción de los monitores de color, aunque su uso en pantallas monocromáticas de texto con caracteres blancos sobre un fondo negro parecía algo fuera de lugar. El mouse es lo que contribuyó de manera significativa a la aceptación masiva de la interfaz gráfica popularizada por la computadora Lisa. Ante la enorme aceptación del producto, esta misma proeza fue repetida por Apple con la introducción en 1984 de su computadora
Macintosh. Este avance significativo que marcó el futuro de la computación casera con el eventual abandono del viejo sistema de interacción mediante una ventana con comandos de línea no pasó desapercibido para la empresa Microsoft que había elaborado el sistema operativo PC-DOS para las computadoras personales vendidas por IBM. Un año después del lanzamiento de la computadora Macintosh, y en lo que debió de haber sido un esfuerzo sobrehumano requiriendo una gran inversión de recursos, Microsoft lanzó al mercado su propia versión de una interfaz gráfica, una interfaz gráfica a la que muy apropiadamente le pondría el nombre de “Windows” que significa “ventanas”. Esta que fue la primera versión de Windows era la respuesta de Microsoft a la interfaz gráfica promovida por Apple, y no era un sistema operativo en sí sino simplemente un programa ejecutable que echaba a andar desde la ventana de línea de comandos una interfaz gráfica, acompañada de un conjunto de herramientas útiles para ser usadas a través de la interfaz gráfica. La primera introducción de Windows en su versión 1.0 que presentaba el siguiente aspecto en su interfaz gráfica que trataba de imitar el Mac OS de Apple (ampliar imagen para mayor detalle):
pasó ignorada, vista por muchos consumidores como un mero “yo también” copiándole su estilo a Apple. Esto ocurrió cuando los monitores de alta resolución a colores como hoy los conocemos no existían y lo único que había era monitores sumamente caros de baja resolución que apenas estaban siendo introducidos para reemplazar a los monitores monocromáticos en los cuales las primeras funciones de gráficado estaban siendo implementadas por tarjetas de apoyo como la tarjeta
Hercules Graphics Card, esto además de que los procesadores Intel 80286 de 16 bits carecían de la potencia de cómputo necesaria para llevar a cabo cálculos intensivos de graficados. La siguiente versión de Microsoft Windows 2.0 (ampliar imagen para mayor detalle):
tampoco despertó mucho entusiasmo. La situación comenzó a cambiar cuando, finalmente, en 1990, con la convergencia simultánea del procesador Intel 80386 de 32 bits y mejores sistemas de graficado VGA, la gente comenzó a tomar nota de la interfaz gráfica Windows 3.0. Cuando la interfaz gráfica Windows 3.1 fue puesta a la venta en el verano de 1992, las ventas de software elaborado para sacarle provecho a la interfaz gráfica Windows 3.0 empezaron a superar por vez primera las ventas del software elaborado para funcionar con el sistema operativo DOS (ampliar imagen para mayor detalle).
En las capturas de imagen mostradas arriba, no hay ningún “Botón de Inicio” (Start) como el que se suele encontrar en los sistemas operativos Windows de Microsoft en la esquina inferior izquierda, esto en virtud de que todavía Windows 3 no era un sistema operativo que tomara el control de la máquina desde que era encendida.
Una cosa que no fue prevista por los ingenieros que diseñaron la PC original de IBM fue que miles de usuarios leales a la hoja de trabajo
Lotus 1-2-3 (predecesora de la hoja de trabajo Excel de Microsoft), sintiéndose liberados de las limitaciones impuestas por la barrera previa de 64 Kbytes (impuesta a su vez por el uso de procesadores de 8 bits en lugar de los más avanzados procesadores de 16 bits con los que IBM lanzó sus máquinasw al mercado), empezaron a escribir hojas de trabajo Lotus y bases de datos que muy pronto se toparon con la barrera de los 640 Kilobytes. Estos usuarios constituían un enorme mercado potencial para cualquier cosa que pudiera ayudarles a romper dicha barrera pero sin tener que verse obligados a desechar y perder lo que ya estaba guardado en los archivos Lotus de muchas compañías, sin verse obligados a perder las miles de hojas de trabajo que ya se habían sido invertidas en la elaboración de tales hojas de trabajo. En virtud de esta presión para resolver lo que parecía ser un problema, se formó un consorcio integrado por Lotus, Intel y Microsoft, en el cual se concibió un método para ampliar la memoria utilizable, acordando la creación de la especificación de
memoria expandida (EMS, Expanded Memory Specification), conocida también como
memoria LIM (acrónimo de siglas que simboliza el consorcio Lotus-Intel-Microsoft), que consistió en agregarle una tarjeta interna con más memoria RAM a la máquina en una de las tarjetas de expansión disponibles internamente para tales efectos, con un
marco de página (
page frame) de 64 Kilobytes puesto en el área generalmente inutilizada entre 640 Kilobytes y 1 Megabytes, y accesarla mediante el truco de
páginas de memoria o
memoria paginada.
En realidad, más que simplemente apoyar el uso de una cantidad mayor de memoria RAM para atender las necesidades particulares de los usuarios de las hojas de trabajo Lotus, Microsoft tenía puestos sus ojos en algo mucho más ambicioso que ciertamente requeriría de una cantidad mayor de memoria RAM. La empresa Apple encabezada por Steve Jobs estaba convencida de que con la introducción de sus computadoras personales el gigante IBM tenía las intenciones de acabar con Apple, y Steve Jobs respondió empezando a incorporar varias innovaciones consideradas avanzadas para su época. Una de tales innovaciones (de hecho, la más importante), fue el uso de una interfaz gráfica en lugar de una interfaz de línea de comandos, apoyada por un invento reciente, el
Mouse. La idea era poner en la pantalla íconos gráficos asociados con algunas de las aplicaciones más importantes, las cuales se podían echar a andar con un simple clic o doble-clic del
Mouse con el cursor gráfico del
Mouse posicionado dentro del ícono. Con esto, ya no era necesario andar buscando dentro de directorios y sub-directorios algún archivo ejecutable ni tener que recordar el nombre del archivo ejecutable escribiéndolo en una línea de texto de la ventana de comandos para echar a andar la aplicación. Con un clic o doble-clic sin tener que memorizar nada se podía poner en marcha cualquier programa.
La aparición de las máquinas “clones” elaboradas con componentes fabricados en países con mano de obra barata empezó a sacar fuera del mercado de las computadoras personales a IBM. Ya para entonces para atender la demanda de un sistema operativo para esas máquinas clonadas, Microsoft había puesto a la venta un sistema operativo idéntico en todos respectos al sistema operativo
PC-DOS, su propio sistema operativo bautizado como
MS-DOS basado en una ventana única de línea de comandos, con la garantía de
plena compatibilidad entre ambos sistemas operativos. De este modo, PC-DOS era un sistema operativo elaborado por Microsoft para las computadoras vendidas por IBM bajo el logo IBM, mientras que MS-DOS era el mismo sistema operativo pero puesto a la venta para los compradores de máquinas “clones” compatibles con las máquinas IBM.
Sin esperar a que hiciese su aparición un procesador más potente de 32 bits (en lugar del procesador de 16 bits que estaba siendo usado en las computadoras IBM y sus clones compatibles), y sin esperar a que cayese en forma dramática el precio de las memorias RAM, pero aprovechando el hecho fortuito de que ya para entonces estaban apareciendo los discos duros que hacían posible el almacenamiento en las computadoras personales de una cantidad mayor de archivos accesibles rápidamente, inspirada en la innovación introducida por Apple la empresa Microsoft lanzó al mercado su programa Windows 3.0, el cual fué substituído rápidamente por Windows 3.1. Ambos son frecuentemente referidos como Windows 3.x. No era un sistema operativo, era simple y sencillamente un programa de aplicación que se echaba a andar desde la línea de comandos. La máquina seguía siendo encendida y arrancada desde el sistema operativo MS-DOS. Pero Windows 3.0/3.1 incorporaba ya muchos de los elementos que vemos en las máquinas de la actualidad. Y no tardaría en ser substituído por Windows 95, el primer sistema operativo en toda la extensión de la palabra con una verdadera interfaz gráfica elaborado por Microsoft.
En su esfuerzo por retomar el liderazgo en la venta de computadoras personales, IBM introdujo una nueva máquina con su propia arquitectura propietaria diferente de las computadoras PC, PC XT y PC AT, la
Personal System/2, con su propio sistema operativo exclusivo de IBM, el
OS/2, para el cual contrató nuevamente los servicios de Microsoft con la expectativa de que Microsoft incorporaría dentro de OS/2 la nueva tecnología informática que estaba siendo implementada en Windows NT, el cual era un verdadero sistema operativo en toda la extensión de la palabra con capacidades para interconexión en redes y del cual su línea más conocida fue
Windows NT 3.51.
La alianza entre IBM y Microsoft se tornó tensa, y eventualmente ambas empresas se desentendieron tomando cada una de ellas su propio camino.
Al romper su asociación con Microsoft, IBM perdió el apoyo a los vastos recursos de software desarrollados por Microsoft para su línea de productos Windows NT, algo que IBM inclusive con todos sus vastos recursos no podía remediar de un día para otro. Por otro lado, al poner a la venta su propia línea de computadoras PS/2 que no podían ser clonadas con un sistema operativo caro de uso exclusivo de IBM, la demanda por las computadoras personales IBM cayó aún más, e IBM jamás se pudo recuperar de los golpes que se dió a sí misma por lo que fueron malas decisiones gerenciales.
Los microprocesadores por otra parte continuaron aumentando en grado de sofisticación, pero no había ya una empresa fuerte como IBM que marcara el camino a seguir para los sucesores clonados de las máquinas IBM PC XT y AT. Para llenar este vacío, se crearon dos consorcios independientes de estándares, el primero dando apoyo a la estandarización de las convenciones de hardware para el modelo
SCSI (Small Computer Systems Interface), y el segundo dando apoyo a la estandarización de las convenciones de hardware para el modelo
EISA.
Las primeras computadoras personales que antecedieron a las computadoras personales IBM usaban procesadores de 8 bits, lo cual implicaba que un procesador solo podía manejar un byte a la vez. La primera computadora casera IBM introdujo el procesamiento de 16 bits, que más que doblaba la velocidad de procesamiento porque el doble de la cantidad de datos podían ser movidos al procesador usando la mitad del número de operaciones requeridas. A partir de la introducción del circuito integrado 80386, el hardware quedó habilitado para poder ejecutar programas de 32 bits, aunque el sistema operativo DOS y la interfaz gráfica Windows 3.1 permanecieron como programas de 16 bits. Por otro lado, aunque los sistemas operativos OS/2 de IBM, Windows NT de Microsoft y algunos “sabores” de UNIX tenían la capacidad para poder manejar programas de 32 bits, estos sistemas operativos nunca fueron abrazados en forma significativa por el gran público consumidor. Esto empezaría a cambiar con la introducción por parte de Microsoft de su sistema operativo Windows 95, el primer sistema operativo de 32 bits que logró ganar aceptación comercial universal. Obsérvese que estamos hablando de Windows 95 como un sistema operativo y no como una mera interfaz gráfica; esta es la gran diferencia entre Windows 3.1 y Windows 95, el primero era una interfaz gráfica, un programa ejecutable que corría al ser invocado desde la ventana de líneas de comandos DOS, mientras que el segundo se apoderaba desde un principio y en forma automática de los recursos de la máquina al ser encendida la máquina sin tener que ser ser invocado por el usuario desde la línea de comandos DOS.
Es en esta época crucial cuando se conjugan al mismo tiempo avances significativos tanto en el hardware como en el software. Es en esta época cuando empiezan a popularizarse los lectores de CD-ROM capaces de poder “quemar” discos CD y no solo leerlos, y empiezan a ser instaladas masivamente en las ranuras de expansión de las computadoras las tarjetas de sonido
Sound Blaster elaboradas por la empresa Creative, dándole de este modo a las computadoras una capacidad para la cual primeras computadoras no habían sido creadas: la reproducción de música de alta calidad a través de bocinas externas.
La introducción de Windows y su interfaz gráfica trajo forzosamente consigo un nuevo paradigma de programación. Anteriormente, bajo el sistema operativo DOS, los programas que podían ser elaborados en algún lenguaje como BASIC consistían principalmente de diálogos interactivos. El usuario echaba a andar el programa, el programa le pedía al usuario algún dato o estaba a la espera de alguna acción del usuario, el usuario proporcionaba el dato o llevaba a cabo alguna acción, la computadora procesaba y tras ello volvía a pedir otro dato o quedaba a la espera de otra acción, hasta que el programa era cerrado por el usuario. La interfaz gráfica trajo de inmediato algo que no era factible con la interfaz basada en líneas de comandos de texto: la capacidad de poder tener abiertos dos o más programas ejecutándose simultáneamente (por ejemplo, un editor de texto como el Bloc de Notas y la Calculadora) sin necesidad de tener que estar cerrando un programa para poder abrir otro, en lo que hoy se conoce como la capacidad
multitareas, algo que tiene que ser tomado en cuenta al momento de elaborar un programa de aplicación para este tipo de entorno para que no haya conflicto con otros programas que se estén ejecutando al mismo tiempo. Sin embargo, hay otro cambio más radical y de fondo que impuso el abandono de los lenguajes tradicionales de programación para poderle sacar el máximo provecho a una interfaz gráfica. No se requiere experimentar mucho con un entorno gráfico Windows para darse cuenta de que varias de las cosas que tenemos puestas en el “Escritorio” (el Desktop, la pantalla principal desde la cual el usuario puede lanzar programas de aplicación y manipular archivos y recursos de su máquina) pueden y deben ser consideradas como
objetos de un tipo muy especial, objetos que poseen
datos (llamados
propiedades), que poseen funciones especializadas que se pueden echar a andar desde un objeto (llamadas
métodos) y que son capaces de poder responder a
eventos iniciados por el usuario a través de
manejadores de eventos. Estos conceptos derivan directamente del entorno gráfico que trajo consigo Windows. Puesto en términos sencillos, un objeto es una entidad en la memoria de la computadora que contiene datos y el código necesario para poder actuar sobre esos datos. Tomemos por ejemplo el ya arcaico sistema operativo Windows 95 y sus actualizaciones hasta Windows XP, en el cual un
atajo (en inglés,
shortcut) es un objeto que sabe acerca de un programa, carpeta o documento; y también posee el programa para reaccionar ante diferentes tipos de eventos tales como un clic del botón derecho del mouse con el puntero del mouse colocado dentro del objeto para abrir un menú de opciones, un doble-clic del botón izquierdo para echar a andar un programa, un clic manteniendo presionado el botón para arrastrar el objeto hacia otro archivo, etc. El sistema operativo Windows genérico utiliza el Escritorio para presentarle al usuario todo lo que hay en el sistema como un objeto. Todo lo que aparece y es puesto en el Escritorio por otras ventanas es un objeto asociado con algún recurso subyacente como una impresora, un disco duro, o una escaneadora. Podemos darnos cuenta de que un objeto en Windows posee todas las características que se han descrito con el solo hecho de posicionar y mantener posicionado el puntero del mouse dentro del objeto, con lo cual obtendremos las propiedades o datos del objeto. Si con el puntero del mouse dentro del objeto hacemos un clic en el botón derecho, dependiendo del objeto obtendremos un menú de opciones. Y si hacemos doble-clic en el objeto, echaremos a andar un programa de aplicación si el objeto es un programa ejecutable (como la hoja de cálculo Excel) o abriremos una carpeta si el objeto es una carpeta que nos permitirá inspeccionar los contenidos de la carpeta (archivos, y quizá otras carpetas):
De este modo, podemos dar por hecho de que
cada ícono en Windows representa un objeto. En este modelo, el sistema operativo Windows es manejado mediante
eventos (en inglés este tipo de respuesta es conocida como
event-driven), lo cual significa que permanece sentado en el fondo adjudicando servicios del sistema en respuesta a eventos que el usuario ocasiona que sean activados. Cuando ocurre un movimiento del mouse, cuando ocurre un clic del mouse, la opresión de una tecla en el teclado o algún otro evento iniciado por el usuario, el sistema operativo se da cuenta de ello y responde generando un
mensaje de evento. Un mensaje es la manera que tiene Windows de hacerle saber a un objeto que tiene que hacer algo. Al igual que los humanos, todos los objetos son individuales pero comparten las mismas características, lo único que los hace diferente son los datos de los que son portadores. El hecho de que todo dentro de Windows y sistemas operativos similares pueda ser representado y manejado como un objeto es lo que conduce en forma directa e inevitable a lo que se conoce como la
programación orientada-a-objetos, lo cual rompe por completo con los viejos paradigmas de programación en lenguajes clásicos de alto nivel como FORTRAN, APL, PL/1, Pascal, etcétera, aunque esto es algo de lo que no se da cuenta el usuario común y corriente sino el programador de sistemas y el programador de programas de aplicaciones.
Precisamente por ser Windows 95 un sistema operativo y no una simple interfaz gráfica invocada como un mero programa de aplicación, tras este sistema operativo aparece en todas las versiones de Windows algo que estaba ausente en Windows 3.1: la
barra de tareas en el borde inferior de la pantalla que permite minimizar las ventanas de aplicaciones que se están ejecutando, así como el botón de “Inicio” (Start) usualmente puesto en la esquina inferior izquierda de la pantalla, mismo botón a través del cual se llevan a cabo las rutinas para el apagado de la computadora.
El sistema operativo Windows 95 fue reemplazado por una versión todavía más estable y robusta del mismo, el sistema operativo
Windows 98 capaz de poder manejar programas de 16 bits y de 32 bits, que resolvió conflictos de hardware y software que estaban siendo encontrados previamente, y el cual fue actualizado a su vez con Windows 98 Second Edition. Con Windows 98 se consolida la introducción de los puertos USB que terminará haciendo obsoleto el uso de diskettes magnéticos para el almacenamiento permanente de archivos así como el respaldo de materiales que previamente eran guardados en el disco duro. La obsolescencia de los diskettes magnéticos es acelerada con la introducción de dispositivos portátiles de memoria USB capaces de almacenar inicialmente 512 Megabytes para empezar a almacenar posteriormente decenas de Gigabytes. Este apoyo al uso de puertos USB ya había empezado con la introducción de una versión actualizada de Windows 95, el Windows 95 OSR 2, requiriendo un proceso previo dedicado de instalación para poderse activar y reconocer los puertos USB. Sin embargo, aún con Windows 98 Segunda Edición era necesario instalar en el disco duro de la máquina los programas
device drivers (controladores de dispositivos) para que Windows 98 pudiera reconocer cada dispositivo USB que fuese conectado a la máquina por vez primera. Con la introducción posterior de Windows XP y aprovechando el aumento en la capacidad de memoria de los dispositivos USB, el proceso de primera instalación de los dispositivos USB es automatizado al ser suministrados los controladores de dispositivos dentro de los dispositivos USB en vez de ser suministrados en un disco CD de instalación.
La versión posterior de Windows que siguió a Windows 98, Windows Millenium o
Windows Me, resultó un sistema operativo tan inestable plagado de tantos problemas que en Microsoft muchos prefieren no recordar esa triste experiencia, la cual fue corregida con la puesta en venta del sistema operativo Windows XP.
Como el paso necesario para enfrentar la introducción y adopción de procesadores de 64 bits, Microsoft lanzó su iniciativa .NET.
Microsoft NET. Del mismo modo, la
programación visual fue actualizada y mejorada complementando la metodología usada en el entorno de desarrollo
Visual Studio para impulsar en cambio la adopción de un nuevo lenguaje de programación bautizado por Microsoft como
C#, que debe leerse como “C sharp” o “C sostenido” en virtud de que el símbolo “#” representa lo que en música equivale al “do sostenido” o “C sostenido” en notación inglesa, con la intención de dar a entender que este nuevo lenguaje de programación es superior “en tono” al lenguaje C y demás versiones del mismo.
Computación para las masas
La continuada microminiaturización de los circuitos integrados aumentando la densidad de integración de los mismos al ponerse más y más componentes en espacios cada vez más reducidos posibilitó la aparición de las tabletas, y los teléfonos celulares equipados con capacidades de procesamiento. El teléfono celular de hoy es de hecho el resultado de una simbiosis entre los teléfonos celulares de antaño con los cuales sólo se podían hacer y recibir llamadas telefónicas inalámbricas y las microcomputadoras en las cuales se han integrado todas las funciones propias de una computadora portátil, y las calculadoras que vienen integradas en los teléfonos celulares son prueba de ello. A esta revolución informática ha contribuído también el diseño de interfaces gráficas cada vez más inutuitivas en todas las aplicaciones que se ejecutan en los dispositivos de cómputo.
Para completar y redondear la aceptación masiva del enorme poder de cómputo que se empezó a vender a un costo relativamente bajo en los inicios de la década de los noventas, además del uso que se les daba a las computadoras caseras para elaborar documentos de texto y hojas de cálculo se empezó a popularizar el uso de los módems caseros para conectarse a lo que era una novedad en aquél entonces: la red de redes Internet. Y para que esta dejara de ser una herramienta confinada a una muy reducida élite de científicos compartiendo trabajos especializados alrededor del mundo, hizo su aparición un navegador que rompió el esquema del lenguaje críptico de comandos de línea reemplazando todo por una interfaz gráfica, el navegador
Mosaic lanzado el 22 de abril de 1993:
a lo cual siguió la introducción del navegador
Netscape Navigator (ampliar imagen para mayor detalle):
que en su época de oro fue el navegador más vendido alrededor del mundo, abriendo la puerta para el uso de Internet a través de la computadora doméstica a millones de usuarios alrededor del mundo. El crecimiento explosivo del uso de Netscape y la posibilidad de que, al no estar basado el navegador Netscape en una plataforma en particular o en un sistema operativo exclusivo de una empresa privada como Microsoft, dicho navegador pudiera actuar como una especie de sistema operativo mundial sin costo alguno reemplazando los sistemas operativos instalados en las máquinas, fue algo que asustó en su momento a Microsoft y prácticamente obligó a dicha empresa a entrar al ruedo para no quedar fuera de la revolución explosiva que se dió con el nuevo fenómeno informático, introduciéndose Microsoft a la competencia con la introducción de su navegador Internet Explorer que fue ofrecido no solo como parte integral de todos sus sistemas operativos sino inclusive ofrecido sin costo alguno (descargable en forma gratuita) a cualquiera que quisiera instalarlo en su máquina. A estos navegadores siguieron otros navegadores como Mozilla Firefox y Chrome, llevándonos a lo que disfrutamos ahora con comunicaciones audiovisuales y correos electrónicos instantáneos. De este modo, viendo los hechos históricos en su conjunto, podemos concluír que el avance explosivo en el uso de la computadora, puesta en manos de prácticamente cualquier persona, ha sido el resultado combinado de varias historias diferentes entrelazadas entre sí en combinación con avances espectaculares que se han estado dando en cuestiones de microelectrónica.