Historia de los computadores (1940-1990)
En este artículo nos centraremos en relatar, de forma breve y confío en que agradable, medio siglo de la evolución de los computadores digitales tanto en su parte física (hardware), como lógica (software), pese a que en este último aspecto nos ceñiremos a la evolución de los sistemas operativos: aplicación, programa o software que gobierna el funcionamiento del computador y permite coordinar la ejecución de otros programas, aplicaciones o software.
Comenzaremos con una breve introducción aclarando un término a veces confuso. Un computador no necesita ser electrónico, ni siquiera debe estar compuesto por los elementos que ya se han convertido en familiares para nosotros: procesador, RAM, disco duro... Por otro lado la palabra “computador” es popularmente un sinónimo de “computador personal”, sin embargo, la definición formal de un computador es “Un dispositivo que computa, especialmente una máquina programable, electrónica (habitualmente), que realiza operaciones lógicas o matemáticas con gran rapidez o que ensambla, almacena, correlaciona o procesa información.”
Los avances en ciencia durante la segunda mitad del siglo XX fueron significativos en el ámbito de la medicina y la biología pero, indudablemente, la gran revolución vendría de la mano de la microelectrónica que dio lugar al desarrollo de los computadores digitales, haciéndolos universalmente asequibles y presentes en casi cualquier dispositivo y entorno, desde electrodomésticos, juguetes, reproductores MP3 y teléfonos móviles, hasta en aviones y enormes instalaciones científicas o militares.
La era de la computación digital moderna ha sido posible gracias a dos factores fundamentales:
· Desarrollo de un marco teórico que permitió situar los desarrollos tecnológicos dentro de un contexto coherente.
· Desarrollo de la electrónica que permitió remplazar los dispositivos mecánicos y electromecánicos iniciales (y las válvulas o tubos de vacío posteriores), por transistores electrónicos y circuitos integrados.
Por un lado el marco teórico conceptual permite definir el contexto en el que nos vamos enmarcar, definiendo conceptos y características en relación a las ciencias de la computación. Estas preceden la fabricación de cualquier computador digital. Este marco teórico ha sido definido y desarrollado por múltiples científicos, pero entre todos ellos, y considerando el contexto del desarrollo inicial del marco teórico de la computación, reduciremos nuestra lista a tres: Alan Turing, John Von Neumann y George Stibitz.
· Desarrollo de un marco teórico que permitió situar los desarrollos tecnológicos dentro de un contexto coherente.
· Desarrollo de la electrónica que permitió remplazar los dispositivos mecánicos y electromecánicos iniciales (y las válvulas o tubos de vacío posteriores), por transistores electrónicos y circuitos integrados.
Por un lado el marco teórico conceptual permite definir el contexto en el que nos vamos enmarcar, definiendo conceptos y características en relación a las ciencias de la computación. Estas preceden la fabricación de cualquier computador digital. Este marco teórico ha sido definido y desarrollado por múltiples científicos, pero entre todos ellos, y considerando el contexto del desarrollo inicial del marco teórico de la computación, reduciremos nuestra lista a tres: Alan Turing, John Von Neumann y George Stibitz.
Alan Turing ha influenciado enormemente el desarrollo de las ciencias de la computación en general y de la computación en particular. Su primer propósito era demostrar que existían problemas que no podían ser resueltos por ningún proceso secuencial. Para esta demostración proporcionó una definición universal de computador que ejecuta un programa almacenado en una cinta. Esta construcción ha sido conocida como máquina de Turing. Excepto por que su capacidad de almacenamiento en memoria es finita, los computadores modernos son Turing-compatible, esto es, tienen la capacidad de ejecutar un algoritmo equivalente a la máquina de Turing universal. Su aportación contribuyó al formalismo de los conceptos de algoritmo y computación.
Por su parte John Von Neumann ha sido uno de los mayores matemáticos de la historia moderna, y su contribución a la ciencia y la tecnología no sólo se ha limitado al campo de las matemáticas sino que ha realizado grandes contribuciones a un gran número de campos, incluyendo la teoría de conjuntos, geometría, dinámica de fluidos, economía, programación lineal, ciencias de la computación, análisis numérico, hidrodinámica y estadística. Fue una pieza clave en el establecimiento del concepto de computador digital tal y como lo conocemos hoy en día. Con el conocimiento teórico de Alan Turing sobre una “maquina de computar universal”, John Von Neumann definió una arquitectura que usaba la misma memoria para el almacenamiento de los programas y los datos. Prácticamente todos los computadores contemporáneos usan esta arquitectura (o alguna variante). Mientras es teóricamente posible implementar un computador completamente mecánico, la electrónica ha hecho posible la velocidad y más tarde la miniaturización que caracterizan a los computadores modernos.
Por último, George Stibitz, es reconocido internacionalmente como uno de los padres del computador digital moderno. Fue un investigador de los laboratorios Bell de AT&T y mundialmente conocido por su trabajo en la realización de circuitos lógicos booleanos digitales (implementando un álgebra basada en ceros y unos), usando relés electromecánicos como elemento de conmutación. En 1937 construyó la primera calculadora digital binaria llamada “Model K”, usando componentes electromecánicos.
El segundo factor que ha posibilitado la era de la computación digital ha sido, como hemos mencionado antes, el desarrollo de la electrónica. Este ha estado marcado esencialmente por dos invenciones significativas: el transistor y el circuito integrado. El primero permitió mejorar la fiabilidad de los computadores, haciéndolos más estables y sencillos de mantener. El segundo habilitó el avance en la miniaturización de los componentes y sistemas lo cual dio lugar, por un lado al desarrollo de equipos más potentes por unidad de superficie y consumo, y por otro lado al desarrollo de computadores de tan reducido tamaño y consumo, que podían incorporarse a cualquier otro dispositivo o sistema, para permitir su control.
Si tenemos que buscar un origen a los computadores, la razón nos inclina a considerar las máquinas de cálculo matemático como antecesoras legítimas de los modernos computadores. Esto nos llevaría hasta el siglo II antes de Cristo, al ábaco Sumerio (cultura establecida al sur de Mesopotamia, el moderno Irak), en los comienzos de la edad de bronce. Pero no nos vamos a remitir tan lejos. Ni tan siquiera seguiremos su desarrollo en otros dispositivos de cálculo numérico manual o automatizado. Esto es, no narraremos la evolución de estos dispositivos de cálculo matemático hasta las modernas calculadoras digitales, pese a que estén en el acervo genético de los computadores digitales, ya que, estrictamente hablando, computadores y máquinas de cálculo (o calculadoras) pertenecen a dos derivadas de una misma ecuación, dos tecnologías con genéticas compartidas: una ligada al concepto de programación y la otra al de automatización de cálculos matemáticos.
El comienzo de esta historia lo podríamos situar entre 1930 y 1950, periodo en el que se desarrollan un gran número de dispositivos de computación cada vez más potentes y versátiles, algunos dentro del ámbito público y otros desarrollados en secreto. Entre los más destacados podríamos mencionar los siguientes:
- 1937: Computador no programable Atanasoff-Berry (ABC) que usaba tubos de vacío como tecnología de fabricación.
- 1941: “Máquinas Z” electromecánicas de Konrad Zuse, concretamente la Z3 se considera la primera máquina funcional que implementaba aritmética binaria.
- 1943: Computadores Colossus del instituto de inteligencia británico y empleados para descifrar los códigos de guerra alemanes.
- 1944: Computador electromecánico Mark I realizado por la universidad de Hardvard.
- 1946: El computador ENIAC de el laboratorio balístico de la armada de los Estados Unidos.
De acuerdo a la lista de hitos de la IEEE (Institute of Electrical and Electronics Engineers) en la historia de la ingeniería electrónica, el primer computador digital fue el Atanasoff-Berry Computer (ABC), desarrollado por el matemático y físico de la Universidad de Iowa John Vincent Atanasoff y uno de sus alumnos, Clifford Berry, en 1941. Pese a que Mauchly y Eckert copian las ideas de Atanasoff y construyen el computador ENIAC (compuesto de 18.000 válvulas) en 1945 y se atribuyen la patente, no sólo del ENIAC, sino del propio computador digital; 10 años más tarde una sentencia judicial devolvería la razón a sus legítimos propietarios. En 1973, a raíz de una disputa cruzada entre dos grandes fabricantes de computadores por violación de patente por un lado y prácticas monopolísticas por otro (Honeywell vs. Sperry Rand), la corte general de los Estados Unidos dicta una sentencia que anularía la patente del ENIAC y dejaría la invención del computador electrónico digital dentro del dominio público. Esta sentencia también reconocería que la invención del computador electrónico no fue debida exclusivamente a Mauchly y Eckert, sino que estos se habían basado en las ideas e invenciones de John V. Atanasoff.
Durante la Segunda Guerra Mundial se desarrollaron tres ramas paralelas en el desarrollo de los computadores; la primera fue públicamente ignorada y la segunda mantenida en secreto deliberadamente. La primera fue el trabajo del alemán Konrad Zuse. La segunda el desarrollo secreto de los computadores Colossus en Gran Bretaña. Ninguno de estos dos sucesos tuvo mucha influencia en los Estados Unidos. La tercera rama del desarrollo de los computadores tuvo una gran difusión pública. Esta fue la originada por Eckert y Mauchly en el desarrollo del ENIAC, sin embargo este computador tenía una arquitectura inflexible: para cambiar su programación era necesario recablear sus numerosas conexiones.
Sólo un año después de la fabricación del ENIAC, Eckert y Mauchly abandonaron la universidad de Pensylvania, fundando juntos la empresa Eckert–Mauchly Computer Corporation. Comienzan a desarrollar el computador UNIVAC, pero deben vender su empresa a Remington Rand en 1951 por problemas financieros. Este mismo año, Remington Rand crea la primera computadora comercial fabricada en Estados Unidos, la UNIVAC I. Fue la primera computadora diseñada específicamente para su uso en Administración y negocios, es decir sin propósitos militares o exclusivamente científicos.
Es la época dorada de los Mainframes, o computadores centrales. Dispositivos de gran tamaño de primera y segunda generación que podían ocupar cientos de metros cuadrados de superficie y pesar más de una tonelada. Este mercado de “los grandes” estaba liderado por IBM y seguido, a veces muy de cerca (e incluso a veces sobrepasado), por empresas como:
· Control Data Corporation
· Burroughs Corporation
· Honeywell/Bull
· General Electric
· Sperry Rand (tras la adquisición de Remington Rand por Sperry Corporation)
· NCR
· RCA Corporation
· Cray Research
Estos computadores centrales suponían un recurso muy valioso pero también muy costoso. Por ello sólo las administraciones públicas, departamentos de defensa y grandes corporaciones privadas pudieron disponer de los recursos necesarios para adquirir uno de estos computadores. Las aplicaciones a las que se destinaban eran aplicaciones críticas de negocio, en la que la fiabilidad, rapidez y capacidad de procesar una ingente cantidad de información, eran decisivos. Entre estas aplicaciones estaban el procesado de datos censales, la generación de estadísticas sobre industria y comercio, la planificación de recursos empresariales y el procesamiento de transacciones financieras.
En 1947, el físico e inventor americano William Shockley, que trabajaba en los laboratorios Bell de AT&T, junto con John Bardeen y Walter Brattain, desarrollan el primer transistor de estado sólido (un dispositivo equivalente a las válvulas de vacío pero mucho más compacto, resistente y de bajo consumo) que puede ser fabricado de manera industrial. La historia de la invención de este dispositivo es algo sórdida. El diseño del dispositivo que luego recibiría el nombre de transistor, podía realizarse de varias formas basadas en principios físicos ligeramente diferentes. Bardeen y Brattain fueron los que diseñaron el primer transistor que podía ser susceptible de ser fabricado industrialmente y a un coste razonable, pero Shockley deseaba atribuirse en exclusiva la patente de la invención, alegando que el modelo se basaba en el uso del efecto campo, y que esta idea suya fue definitiva para completar el desarrollo del modelo. Todo ello pese a que este efecto, así como dispositivos que se basaban en él, ya habían sido inventados por el físico astro-húngaro Julius Lilienfeld, 10 años antes. Shockley siguió desarrollando el modelo patentado por Bardeen y Brattain (colaboradores suyos) y finalmente desarrolló la arquitectura de transistor que ha perdurado hasta nuestros días. Sin embargo, su difícil carácter y sed de protagonismo y fama, le llevó a conseguir que apartaran a sus colegas Bardeen y Brattain del proyecto del desarrollo y fabricación del transistor. Poco más tarde Shockley creó su propia compañía de semiconductores, Shockley Semiconductor Laboratory, pero de nuevo su carácter dictatorial provocó el abandono de 8 de sus mejores ingenieros para formar la compañía Fairchild Semiconductor en 1957. Aunque no hay constancia de que Shockley se hubiera referido a ellos como los ocho traidores (traitorous eight), el rumor se hizo eco en el entorno.
Al margen de estos detalles emocionales, lo que resulta relevante para nuestro relato es que, el desarrollo del transistor, ha sido crucial para la electrónica moderna y en especial para la evolución de los computadores digitales. Con este dispositivo, los computadores podían ser más compactos, consumir menos recursos y se aliviaban los serios inconvenientes de un computador basado en válvulas de vacío. Muchos de los grandes fabricantes de computadores comenzaron a desarrollar nuevos modelos remplazando las incomodas válvulas de vacío. Esto dio paso a una segunda generación de computadores.
La realidad era que la carrera desaforada por construir computadores cada vez más grandes, más potentes, con más funcionalidad, había llevado a los ingenieros encargados de su diseño a un callejón sin salida. Sufrían lo que se conocía como la “Tiranía de los números”, un problema de escalado en la fabricación de los abundantes componentes electrónicos que constituían un computador central y los millones de cables y soldaduras (hechas a mano o con una leve mecanización), que permitían la interconexión de estos componentes. El verano de 1958, Jack Kilby que trabajaba para Texas Instruments, y que más tarde llegaría a ser premio Nobel de Física, dio con la solución. Su teoría era que si el germanio podía usarse en la construcción de todos los componentes electrónicos más comunes (resistencias, condensadores, etc.), podría usarse un substrato de este semiconductor para construir sobre él un conjunto de componentes electrónicos en bloque, en vez de tener que disponer de componentes discretos soldados a un circuito impreso. Pese a que su idea tuvo éxito y su circuito integrado funcionó, sería la versión basada en silicio del co-fundador de Fairchild Semiconductor e Intel, Robert Noyce y sus técnicas de fabricación asociadas, las que hicieron que el circuito integrado fuese una realidad.
El desarrollo del circuito integrado provocó una verdadera revolución en la electrónica y por tanto en el desarrollo de los computadores. Tal es así que Jack Kilby y su invento se ganaron una mención en la lista de hitos de la IEEE.
En 1964 IBM lanza el System/360, la primera arquitectura de computadores que permitía intercambiar los programas y periféricos entre los distintos equipos componentes de la arquitectura, al contrario de lo existente anteriormente, en que cada equipo era una caja cerrada incompatible con los demás. Pese a que el sistema de IBM era híbrido (dispositivos de estado sólido interconectados en un substrato con alambres discretos), este ha sido considerado como el sistema que pone fin a la segunda generación de computadores y comienzo a la tercera, basados íntegramente en circuitos integrados.
La tercera generación de computadores redunda en una reducción de espacio y peso en los computadores lo cual da lugar a la aparición de los minicomputadores. Estos serían computadores con inferior potencia de cálculo que sus predecesores pero también con una reducción sustancial en sus gastos de mantenimiento y, fundamentalmente, su tamaño y su coste. La aparición de esta familia de sistemas permitió la difusión de los computadores hacia un público mucho más extenso, haciendo posible la disponibilidad de computadores a escala departamental y no solamente corporativa. Asimismo, esta difusión, permitió que pequeñas y medianas empresas se beneficiasen de las ventajas de disponer de un computador para la gestión de sus negocios y proyectos.
En 1968 nace la empresa de semiconductores americana Intel Corporation y un año después lo haría la empresa, también americana, Advanced Micro Devices (AMD). Ambas cobrarían una importancia muy significativa en el desarrollo de los computadores, fundamentalmente minicomputadores y microcomputadores o computadores personales, que se desarrollarían 10 años más tarde.
Por otro lado, a parte de las compañías antes mencionadas que marcaron las primeras etapas de la supercomputación, la nueva demanda del mercado de minicomputadores promovió la creación de múltiples empresas, algunas de las cuales tendrían un protagonismo especial en el mundo de la computación en red que se generaría con el desarrollo de Internet. Algunas de estas nuevas compañías serían:
· Digital Equipment Corporation (DEC). Pese a que la empresa fue fundada por dos investigadores del Laboratorio Lincoln del MIT, Ken Olsen y Harlan Anderson en 1958, inicialmente no pudo dedicarse al mercado de los computadores. Los inversores americanos no confiaban en este negocio que generaba pocos beneficios y que estaba copado por IBM y los “siete enanitos” (como se denominaban a las grandes compañías que copaban el mercado del desarrollo de computadores liderado por IBM). En 1965 comercializará el que es considerado el primer minicomputador de éxito de arquitectura de 12-bits, el PDP-8. Entre otras cosas porque este computador tenía un coste inferior a los 25.000 $ (18.000$ concretamente), frente a los varios cientos de miles de dólares que costaba un computador central o Mainframe.
· Data General. Fundada en 1968 por varios ingenieros que abandonaron Digital Equipment Corporation por discrepancias con su Dirección, para dedicarse al desarrollo de minicomputadores. Uno de ellos (Edson de Castro) era, de hecho, el ingeniero jefe a cargo del desarrollo del PDP-8. El primer minicomputador que fabricaron fue el NOVA. Un computador de arquitectura de 16-bits del que consiguió vender 50.000 unidades, dejando a DEC eventualmente fuera de la cabeza del mercado de los minicomputadores.
· Sun Microsystems. Fundada en 1982 por Andy Bechtolsheim, Vinod Khosla y Scott McNealy, estudiantes graduados de la universidad de Stanford en Palo Alto, California. Su primer encargo fue el diseño y construcción de una estación de trabajo (workstation) para diseño asistido por computador (CAD), para el proyecto de comunicaciones de la red de la universidad de Stanford (Stanford University Network). De ahí resultaría el nombre de su primer equipo, SUN-1, y la compañía. La orientación de SUN se inclinaría hacia el diseño y fabricación de estaciones de trabajo y minicomputadores bajo sistema operativo UNIX, software y servicios de TI. Esta compañía tuvo un gran impulso con el nacimiento y evolución de la Internet y fue la creadora del lenguaje JAVA.
· Hewlett-Packard (HP). Fundada en 1935 por dos ingenieros eléctricos de la universidad de Standford: Bill Hewlett y Dave Packard, para el diseño y fabricación de diversos dispositivos electrónicos para la industria e incluso el sector agrícola. Tras desestimar un acuerdo de colaboración con DEC acabó decidiendo fabricar sus propios computadores. En 1966 entro en este mercado con la producción de la serie HP2116A, pero seria la serie HP 3000, comercializada en 1973, la que se ganaría un lugar destacado en el mercado por su fiabilidad y potencia.
Mientras tanto, la idea de crear un computador de “escritorio”, despertaba en la mente de numerosos aficionados a la electrónica en todo el mundo. El desarrollo de la microelectrónica permitía la reducción de los tamaños y los consumos hasta unos límites en los que esta idea podría tener sentido. Por otro lado las publicaciones especializadas ponían al alcance de estos aficionados paquetes de componentes e instrucciones para construir dispositivos cada vez más complejos. La industria demandaba el desarrollo de sistemas embebidos (computador de muy reducido tamaño diseñado para controlar funciones específicas en otro sistema mayor) para la automatización o mecanización de procesos de producción, pero serían aficionados a la electrónica los que materializarían la idea de convertir un computador en un dispositivo destinado al ocio o al trabajo personal.
El procesador Intel/8008 de arquitectura de 8-bits se comercializó en 1972. Bill Gates y Paul Allen eran estudiantes que se habían embarcado en un proyecto empresarial para desarrollar un sistema computerizado para medir el flujo de tráfico. Eligieron el procesador de Intel como el más apropiado y económico para realizar su proyecto, pero necesitaban a alguien que les construyese el computador sobre el que evaluar su software. Tuvieron dificultades para encontrar la persona adecuada que construyese su computador a tiempo, así que Paul Allen empleó el IBM S/360 de la Universidad del estado de Washington, en la que había comenzado sus estudios superiores, para construir un programa que simulaba el funcionamiento (emulador) del procesador Intel 8008, con el que probar el software de control que estaban desarrollando. El proyecto no fue muy exitoso ni reportó muchos beneficios a los implicados, pero proporcionó a Gates y Allen una experiencia decisiva para la empresa que fundarían años más tarde: esto es, el construir software para un hardware no existente.
En 1974, Federico Faggin, que había estado trabajando en el desarrollo del procesador 8080 de Intel, abandona la compañía creando la suya propia: Zilog. Esta sacaría al mercado en 1976 el procesador de arquitectura de 8-bits Z80, compatible con el 8080 de Intel. Este procesador sería uno de los más ampliamente usados en el diseño de microcomputadores y sistemas embebidos y dominaría el mercado de las de las arquitecturas de 8-bits, desde finales de los 70 hasta mediados de los 80.
En 1975, Ed Roberts y Forrest M. Mims III, desarrollan en el garaje del primero, un microcomputador destinado a la venta a aficionados al bricolaje electrónico que publicarían en la revista especializada “Popular Electronics”. Este sería el MITS Altair 8800, con el recién creado microprocesador de 8-bits 8080 de Intel. Paul Allen y Bill Gates vieron el anuncio del MITS Altair 8800 en la revista Popular Electronics y se preguntaron si no haría más atractiva la venta de estos equipos el que pudieran disponer de un interprete del lenguaje de programación BASIC. De esta forma, los compradores del computador podrían desarrollar sus propios programas y esto podría reportar buenos beneficios tanto a MITS como a ellos mismos. Así que, con una gran visión de negocio, contactaron con Roberts y le propusieron una demostración de su (aún inexistente) interprete de BASIC que, supuestamente, habían desarrollado para su computador Altair 8800. Gates y Allan no tenían el BASIC ni disponían de ninguna unidad del computador Altair sobre el que desarrollarlo y probarlo, pero si disponían del emulador del Intel 8080 que habían desarrollado en su anterior aventura empresarial (Traf-O-Data). Así que, en unas pocas semanas, diseñaron un interprete de BASIC en su emulador del procesador Intel 8080, y viajaron a las oficinas de MITS en Alburquerque para presentarlo a Roberts y Mims.
Finalmente el computador Altair 8800 se distribuyó con una copia del BASIC diseñado por Gates y Allan. Este sistema recibiría cientos de pedidos superando las expectativas de sus creadores y creando la oportunidad de negocio que dio lugar al nacimiento de Microsoft.
Menos de un año más tarde de la comercialización del MITS Altair 8800, William Millard crearía el primer clon del anterior, el IMSAI 8080, con unas características algo superiores a su original, dotado con una unidad de disco flexible de 5 1/4” y 8” y disco duro removible de 5 MB. Pese a que la empresa IMSAI quebraría 4 años mas tarde y sus productos quedarían discontinuados, el IMSAI 8080 gozó de su momento de gloria al ser el equipo usado por el protagonista en una de las primeras películas de Hollywood sobre el hacking informático: Juegos de Guerra (War Games).
En ese mismo año, 1976, Steve Jobs y Steve Wozniak crearían, también en el garaje del segundo, el computador Apple I y fundarían una compañía que seguro le resultará familiar al lector: Apple Computer Corporation. Este computador se distribuiría en modo de “kit de montaje” para los aficionados a la electrónica, sin carcasa, teclado ni dispositivo de visualización. Un año después, Apple comercializa el Apple II, basado en un microprocesador 6502 de tecnología MOS, con 4KB de RAM y 12 KB de ROM e incluyendo el lenguaje de programación Integer BASIC, y una interfaz para grabadores de casetes de audio. Fue el primer microcomputador producido a gran escala. El Apple II fue la primera computadora completamente ensamblada que podía ser comprada, por su bajo costo, por las familias de clase media.
En 1954 el inmigrante polaco y superviviente de Auschwitz, Jack Tramiel, funda Comodore International Limited, una empresa dedicada inicialmente a la reparación de máquinas de escribir pero que evolucionaría su negocio hacia la creación de calculadoras electrónicas. En 1980, Comodore comercializa el computador personal VIC-20 que sería el primer computador, hasta ese momento, del que se llegaron a vender un millón de unidades. Su sucesor fue el Comodore 64, dotado con una excelente capacidad gráfica para la época y características avanzadas de sonido. Su precio inicial era alto (casi 600 $) pero en 1983 se desencadenó lo que se ha denominado como la guerra de los computadores personales, que provocó una escalada descendente de los precios de los microcomputadores, a la que unieron la mayor parte de los fabricantes (a excepción de IBM y Apple) y que para Comodore supuso la venta de 22 millones de unidades de su modelo C64, siendo, hasta el momento, el computador personal mas vendido de todos los tiempos.
Un año después de la aparición del Comodore 64, en 1981, IBM comercializa el primer ordenador personal (PC) con sistema operativo PC-DOS que había desarrollado para IBM la compañía de Gates y Allen: Microsoft. El PC-DOS pasó a llamarse más tarde MS-DOS (de Microsoft Disk Operating System).
En 1982, la compañía británica Sinclair Research, comercializa el microcomputador ZX Spectrum, dotado del procesador Z80 de Zilog. Este sería el computador personal más barato dentro del Reino Unido, y competiría agresivamente, poco más tarde, con sus homólogos americanos y británicos Comodore y Amstrad respectivamente.
A principios de 1984 la empresa británica Amstrad, comercializa el computador personal Amstrad CPC 464 dotado también de un procesador Z80A de Zilog. Incorporaba la CPU, teclado y sistema de almacenamiento (cinta en los primeros modelos y discos magnéticos extraíbles en un modelo posterior) en una misma carcasa. Esta idea no era nueva para el mercado de los microcomputadores, pero si para los orientados exclusivamente al mercado doméstico. Apple Computer Corporation, una empresa ya consolidada y con un creciente valor en bolsa, copiaría esta idea en menos de un año al comercializar su modelo Macintosh. Este microcomputador estaba dotado de un sistema operativo completamente gráfico y teclado y ratón como interfaces de entrada, todo integrado en una misma carcasa.
El desarrollo de Internet provocó el desarrollo de los microcomputadores, o viceversa, no sabría si inclinarme por una u otra opción. El resultado sin embargo fue la simbiosis entre la computación y las comunicaciones provocando un declive en la supercomputación y un gran movimiento de fusiones y adquisiciones para adaptarse a un mundo totalmente conectado. Esta evolución, que se desarrolló fundamentalmente a partir de 1990, sale fuera del alcance de este artículo.
Hasta ahora nos hemos centrado fundamentalmente en la parte física de los computadores (hardware), pero cada computador, para poder operar como un dispositivo programable, necesita de un programa (software) fundamental que se denomina Sistema Operativo (OS). Este programa principal es el que permite la comunicación entre el alma del computador (su procesador) y el resto de periféricos (comunicaciones, memoria, dispositivos de entrada/salida, monitores, etc.) y también es el responsable de coordinar la ejecución de los programas o aplicaciones que permiten al computador explotar su potencial de realizar cálculos con mucha rapidez. La historia del desarrollo del software, y concretamente de los Sistemas Operativos, es una historia apasionante, pero no es el propósito de este artículo detallarla aquí. Sólo haremos un breve resumen resaltando los aspectos más significativos.
Los primeros computadores (Mainframes) comerciales, disponían de un Sistema Operativo propietario. Cada fabricante diseñaba el OS apropiado para gestionar su sistema. Por otro lado, los OS iniciales estaban diseñados para trabajar en modo "batch processing", es decir, procesaban trabajos de forma individual de una cola de procesamiento a la que se podían incorporar trabajos por medio de tarjetas perforadas que contenían los programas específicos. Por otro lado, los trabajos se procesaban bajo la supervisión del administrador del computador y bajo un calendario o prioridades preestablecido. El fundamento para esta rigidez era claro: los computadores eran dispositivos muy caros y debían estar optimizados en su uso, para gestionar bien sus recursos, no a expensas de la voluntad del usuario.
Las ideas de un computador capaz de compartir su tiempo de proceso en su desempeño (time-sharing), se desarrollaron en el MIT dentro del proyecto MAC (Project on Mathematics and Computation) financiado por el departamento de defensa de los EE.UU. (DARPA). Este proyecto acogió a un brillante grupo de científicos y sus investigaciones en el ámbito de los Sistemas Operativos, Inteligencia Artificial y Teoría de la Computación han trascendido hasta nuestros días. Entre ellos se encontraba John McCarthy, que acuñó el término de Inteligencia Artificial y fue el creador del lenguaje de programación LISP.
Uno de los resultados de este proyecto fue el Sistema Operativo CTSS (Compatible Time-Sharing System), presentado en el MIT en 1961. El CTSS fue el primero que tuvo una utilidad para la edición de texto, llamada RUNOFF. Más tarde sería adaptado al UNIX con el nombre de nroff y ha sido durante muchos años el modelo empleado para el formato de las páginas de manual en linea de este sistema operativo y todas sus variantes.
Pocos años después, en 1964, se desarrollaría el sucesor del CTSS, el MULTICS (Multiplexed Information and Computing System), creado sobre un supercomputador GE-645 de General Electric por un grupo de informáticos del MIT, AT&T y GE. Este sería el que inspiraría posteriormente a Ken Thompson para desarrollar el UNIX.
La colaboración entre el MIT y el Cambridge Scientific Center de IBM dio como resultado el desarrollo del Sistema Operativo CP/CMS de IBM, que fue de los primeros en incorporar la gestión en tiempo compartido (time-sharing) a sus Mainframes, es decir, que el computador podía hacer trabajos en paralelo y el usuario podía lanzar sus trabajos y ver sus resultados en cualquier momento. La arquitectura del CP/CMS fue revolucionaria para su tiempo, algunos de los conceptos que introducía ,como el de gestión de máquinas virtuales, resurgiría con fuerza 30 años más tarde y sería fundamental para el desarrollo de la externalización de servicios de computación y el cloud-computing. Además, aunque por motivos circunstanciales, el CP/CMS sería el primer sistema operativo de código abierto (Open source). Sin embargo, estrictamente hablando, el concepto de código abierto y software de dominio público no se desarrollarían hasta 1984 gracias a Richard Stallman y la Free Software Foundation.
El disponer de sistemas de tiempo compartido, permitía a múltiples usuarios interactuar con el computador como si dispusiesen de él en exclusiva. Había comenzado el fin de la fase en la que los programas codificados en tarjetas perforadas y ejecutados en base a un modelo de procesamiento por lotes.
Pese a que no vamos a considerar en este artículo la historia y evolución de los lenguajes de programación, mencionaremos algunos detalles significativos. En primer lugar debemos subrayar que estos son antecesores de los computadores, pese a que con ellos sufrieron un impulso y evolución muy destacados. En segundo lugar, destacar que los lenguajes de programación, inicialmente cercanos en complejidad a las instrucciones entendidas por los computadores (o sus CPU’s específicas), fueron evolucionando hacia lenguajes de más alto nivel, esto es, más inteligibles y cercanos al lenguaje natural. Los lenguajes más próximos a las instrucciones que entienden los computadores, y que hasta la difusión de los microprocesadores eran dependientes de cada computador, se conocen como “lenguaje máquina” y estos fueron la primera generación de lenguajes de programación. La segunda generación está representada por los lenguajes “ensamblador”: Un lenguaje también de bajo nivel e igualmente dependiente de cada computador (o microprocesador, según la etapa de la historia de los computadores a la que nos refiramos). La tercera generación es la evolución de la anterior hacia unos lenguajes más estructurados, más amigables al programador y, en muchos casos, más cercanos al lenguaje natural. Dentro de esta tercera generación, que comenzaría alrededor de los años 50 (siglo XX), se encuentran todos los que nos resultan familiares en nuestros días. Los primeros de ellos fueron el FORTRAN, el COBOL, el LISP y el ALGOL. De todos ellos, y en especial del ALGOL, derivarían más tarde múltiples lenguajes de programación como los que quizás habremos oído mencionar alguna vez: Pascal, BASIC, C, C++, C#, Delphi, Java, Perl, Python, Ruby, SQL, JavaScript, PHP, etc.
Inicialmente, los lenguajes de programación estaban muy orientados a matemáticos o científicos en general. La posibilidad de hacer asequible la computación a usuarios no formados en ciencias, dio pie al desarrollo del lenguaje de programación BASIC (Beginner's All-purpose Symbolic Instruction Code). La primera implementación de este leguaje se desarrollaría en Dartmouth College, universidad privada americana ubicada en Hanover, New Hampshire, perteneciente a la elitista Ivy League. Múltiples fabricantes diseñaron sus propias implementaciones de BASIC para ofrecerlas como herramienta para facilitar el uso de sus computadores.
En relación con lo que habíamos mencionado antes, para que un usuario pudiese hacer uso de un lenguaje de programación, realizar su programa y explotar la capacidad de su computador, era necesario, no sólo disponer del programa que interpretase o implementase ese lenguaje de programación, sino que el computador también debía disponer de un programa “principal”, que permitiese gestionar sus recursos y ejecutar los programas requeridos por el usuario. Un programa “principal” denominado Sistema Operativo.
Hasta 1970 todos los sistemas operativos desarrollados para supercomputadores eran propietarios y específicos. Es decir, pertenecían a sus respectivos fabricantes y estaban diseñados para funcionar sólo en sus productos. A partir de 1970, Ken Thompson y Dennis Ritchie (el primero de los cuales había colaborado en el desarrollo de MULTICS), lideraron, desde los laboratorios Bell de AT&T, el desarrollo de un nuevo sistema operativo para el miniordenador DEC PDP-7. Su propósito inicial era portar un juego de ordenador creado por Ken en un computador GE-635, a un sistema más rápido y menos costoso. El resultado final fue la creación de todo un sistema operativo multitarea llamado UNIX y el desarrollo del lenguaje de programación C que permitía la portabilidad de este sistema operativo.
Dos factores contribuyeron al desarrollo y universalización de este sistema operativo que está presente en la actualidad, de forma explícita o implícita, en infinidad de dispositivos, desde microcontroladores o teléfonos móviles hasta supercomputadores. El primero fue su arquitectura, diseñada para ser portable, multitarea y multiusuario, en una configuración de tiempo compartido (time-sharing). Su diseño estaba muy próximo a la programación y al lenguaje de programación C que se había creado para su portabilidad entre sistemas incompatibles. Muchos de los conceptos que se incluían dentro de lo que se vino a llamar “Filosofía Unix”, incrementaron su popularidad entre los desarrolladores de software y entre los investigadores y los creadores de la Internet: su modelo de trabajo con texto plano para almacenar datos (configuraciones), su sistema de archivos jerárquico, su tratamiento de dispositivos y comunicación entre procesos como ficheros y la disponibilidad de un gran conjunto de pequeños programas de utilidad que podían ser ejecutados de manera enlazada.
El segundo factor que contribuyó al desarrollo y universalización del UNIX, fue la decisión de AT&T de ceder licencias de su sistema operativo a la administración pública americana, universidades y centros de investigación, entre ellas a la Universidad de Berkeley, abriendo así paso a su estudio y desarrollo dentro del mundo académico y de investigación. Este último factor provocó la escisión del UNIX en dos familias que se alimentarían mutuamente de mejoras, que hicieron evolucionar este sistema operativo y lo convirtieron en fuente de inspiración y referencia para muchos otros. La adaptación de este sistema operativo a múltiples plataformas, lo convirtió en un sinónimo de “Sistema Abierto” (Open System). La siguiente lista enumera las dos grandes familias de UNIX y sus derivados más relevantes:
- Unix System V. Familia original de AT&T:
- HP/UX y True64. De Hewlett-Packard
- Xenix. De Microsoft
- SunOS/Solaris. De Sun Microsystems
- SCO Unix. De SCO
- Aix y z/OS. De IBM
- Ultrix. De Digital Equiment Corporation
- UnixWare. De Novell
- IRIX. De Silicon Graphics
- BSD/Unix. De la Universidad de Berkeley en California:
Pese a que la mayor parte de las variedades inspiradas en UNIX vienen de la rama “oficial” de AT&T, el desarrollo de la rama BSD (Berkeley Software Distribution) fue el responsable de la difusión del UNIX y su popularización. Por otro lado, esta difusión también impulsó que grandes fabricantes quisieran dotar a sus computadores con versiones adaptadas de este sistema operativo, lo que les incitó a obtener una licencia de AT&T para poder desarrollar una variante adecuada a su hardware. También hay que resaltar que el crecimiento de Internet también ayudó a la difusión del UNIX, ya que por su portabilidad y disponibilidad, fue elegido y recomendado por los creadores de los primeros estándares de Internet.
Sin embargo, también hay que mencionar que el acto aparentemente altruista de AT&T de ceder licencias de su sistema operativo a las Universidades y, concretamente la cesión que hizo a Berkeley, fue fruto de muchos quebraderos de cabeza posteriores para AT&T o sus subsidiarias, que heredarían o adquirirían los derechos de copyright y explotación del UNIX. Esto ha enfrentado judicialmente a los propietarios de la marca UNIX con la Universidad de Berkeley y con otros fabricantes o desarrolladores que han usado el código fuente del UNIX de Berkeley para la creación de extensiones al sistema operativo o el desarrollo de otras variantes del mismo.
Mención especial debemos hacer a la variante GNU/Linux. Implementación libre de derechos del Sistema Operativo UNIX creada gracias a la colaboración de Linus Torvald (creador de un núcleo de Sistema Operativo similar a UNIX) en 1991, y la GNU Software Foundation que, gracias al impulso de su fundador, Richard Stallman, había desarrollado desde cero, bajo una licencia libre de derechos de autor, el resto de componentes necesarios para crear el Sistema Operativo.
Richard Stallman es un brillante programador y activista americano sobre la libertad del software, múltiples veces galardonado por su trabajo, fundador e impulsor de la Free Software Foundation (FSF) y autor, o participante, en el desarrollo de múltiples herramientas relacionadas con el mundo de la computación e Internet: editor de texto EMACS, compilador GCC, autor de la licencia de software libre GPL (GNU General Public License), depurador de programas GBD (GNU Debugger), automatizador para la compilación de programas (gmake), el nombre del estándar POSIX del IEEE, etc. Stallman acuño el acrónimo GNU, un acrónimo recursivo (un acrónimo que hace referencia a si mismo y que significa “GNU is not UNIX”), para mencionar un proyecto orientado a la creación de un sistema operativo compatible y similar al UNIX, pero constituido completamente por software libre (Free Software). Todos los componentes que formarían parte del proyecto GNU irían enmarcados dentro de una licencia GPL pensada, no para restringir los derechos de autor, sino para garantizar la libertad del software: cualquier programa realizado con partes bajo la licencia GPL deben ser también licenciados como GPL y cualquier modificación o mejora realizada sobre un código bajo licencia GPL, debe ser devuelto a la humanidad, libre de derechos.
El modelo de código abierto de GNU/Linux creó una verdadera revolución que sería el origen de la explosión del movimiento de código abierto (Open Source) y que dio lugar a la creación de innumerables variantes de GNU/Linux: Debian, Suse, Fedora, RedHat, Mandriva, Ubuntu, Slackware, Gentoo, etc. Además estimulo la creación de otros Sistemas Operativos en base a parte del código desarrollado dentro del proyecto GNU u otros proyectos adscritos al modelo de licencias GPL de la Free Software Foundation.
En 1975 Bill Gates y Paul Allen habían creado Microsoft y el éxito del MITS Altair 8800 había convertido a su negocio en una apuesta rentable, pero lo que verdaderamente convirtió esta empresa en una de las compañías más grandes y rentables del mundo del software fue otra coincidencia y una política empresarial éticamente dudosa. IBM había decidido entrar en el mercado de los microcomputadores, visto el éxito de ventas que estaban obteniendo las pequeñas compañías que habían constituido este nuevo sector. En 1981 tenía el hardware diseñado pero necesitaba un Sistema Operativo. Intentaron llegar a un acuerdo con Digital Research, compañía creadora del sistema operativo estándar de facto en los 70 para los microcomputadores basados en los procesadores Intel 8080 o Zilog Z80: el CP/M. Pero Digital Research no quería vender la licencia de su software a un coste fijo, sino que quería una cuota variable en función de las unidades vendidas por IBM. Esto no agradó a IBM que pidió ayuda a Microsoft. Este les indicó que una pequeña compañía, Seattle Computer Products, había desarrollado un sistema, similar al CP/M de Digital Research, para procesadores Intel 8086 o compatibles. IBM acordó que Microsoft adquiriera la licencia necesaria y proporcionase el sistema operativo que necesitaban a cambio de proporcionar este software, junto con algún otro de Microsoft (como su BASIC) con cada PC que se fabricase. Todo ello permitiendo que Microsoft mantuviese los derechos sobre el sistema operativo, para poder venderlo a terceros. Microsoft ocultó su acuerdo con IBM para adquirir los derechos del sistema operativo 86-DOS a Seattle Computer Products, con lo que consiguió una licencia exclusiva a un coste económico. De este modo, a mediados de 1981, IBM anunció la disponibilidad de su primer microcomputador: el IBM Personal Computer ó IBM PC, como se ha conocido hasta nuestros días. El IBM PC salió al mercado dotado del sistema operativo de Microsoft, que se llamó PC-DOS y el intérprete del lenguaje de programación BASIC también de Microsoft, grabado en la circuitería de cada PC (ROM).
Digital Research continuó la evolución de CP/M convirtiéndolo en DR-DOS, un clónico del MS-DOS que ofrecía funcionalidades superiores al primero y que funcionaba sobre equipos IBM PC o compatibles. Microsoft respondió lanzando al mercado versiones “vaporware” de MS-DOS para sacar a Digital Research del mercado y, cuando comercializó su interfaz gráfica de usuario (GUI) con Windows, se dice que incluyó en este sistema un código que detectaba la versión del sistema operativo en el PC, generando fallos en el sistema si detectaba que ésta era la de Digital Research (DR-DOS). Independientemente de ello, el caso es que la popularización de la arquitectura IBM PC y la cantidad de fabricantes que copiaron su modelo, convirtieron a Microsoft en líder indiscutible del mercado de los Sistemas Operativos para los microcomputadores y para el negocio del software en general.
Hasta este momento, la mayoría de los sistemas operativos para microcomputador no eran multi-usuario (sólo permitían trabajar a un usuario al tiempo) ni multi-tarea (no permitía ejecutar varios programas simultáneamente) y además, la interfaz de usuario era una pobre consola de línea de comandos. La excepción era Apple Computer, que había visitado los laboratorios PARC de Xerox en Palo Alto (California) y había incorporado a su Apple Macintosh (anunciado a bombo y platillo durante el intermedio de la Super Bowl americana de 1984) un ratón y una interfaz gráfica. Un año después, Microsoft comercializaría Windows 1.0. Este era un complemento gráfico del MS-DOS que pretendía competir con el Apple Macintosh, pero obtuvo muy poca popularidad, y no fue hasta 1990, momento en que se comercializa Microsoft Windows 3.0, cuando Microsoft consigue comercializar un sistema operativo multitarea y con una interfaz de usuario completamente gráfica.
El desarrollo y evolución de las interfaces gráficas de usuario es también apasionante, pero su descripción alargaría en exceso este artículo que debe llegar a su fin. Sin embargo dejaremos abierta la posibilidad de desarrollar este tema en otro artículo posterior.
Hasta aquí el resumen del desarrollo de los computadores. Para aquel que quiera profundizar más en el tema se recomiendan los siguientes artículos, aparte de seguir los enlaces que se han incluido dentro del texto:
· Historia del hardware
· Historia de los computadores
· Historia del hardware de computador (1960-presente)
· Historia de los sistemas operativos
· Historia de los computadores personales
· Computadora central (mainframe)
· Computadora digital
· Microcomputadora
· Minicomputadora
· Timeline of x86 DOS operating systems
· Historia del hardware
· Historia de los computadores
· Historia del hardware de computador (1960-presente)
· Historia de los sistemas operativos
· Historia de los computadores personales
· Computadora central (mainframe)
· Computadora digital
· Microcomputadora
· Minicomputadora
· Timeline of x86 DOS operating systems
El cómo este desarrollo de las computadoras influyó en la gestión de los negocios en general o en la gestión de proyectos en particular, es algo que resulta casi obvio, sin embargo estos aspectos no los trataremos en este artículo sino en el próximo: "Historia de la Gestión de Proyectos. Parte II".