domingo, 21 de julio de 2013


jueves, 12 de abril de 2012

domingo, 8 de abril de 2012

viernes, 29 de enero de 2010

Software

Software
C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL.
Al igual que B, es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.
Se trata de un lenguaje débilmente tipificado de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.
La primera estandarización del lenguaje C fue en ANSI, con el estándar X3.159-1989. El lenguaje que define este estándar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estándar ISO (ISO/IEC 9899:1990). La adopción de este estándar es muy amplia por lo que, si los programas creados lo siguen, el código es portátil entre plataformas y/o arquitecturas. En la práctica, los programadores suelen usar elementos no-portátiles dependientes del compilador o del sistema operativo.
Filosofía
Uno de los objetivos de diseño del lenguaje C es que sólo sean necesarias unas pocas instrucciones en lenguaje máquina para traducir cada elemento del lenguaje, sin que haga falta un soporte intenso en tiempo de ejecución. Es muy posible escribir C a bajo nivel de abstracción; de hecho, C se usó como intermediario entre diferentes lenguajes.
En parte a causa de ser de relativamente bajo nivel y de tener un modesto conjunto de características, se pueden desarrollar compiladores de C fácilmente. En consecuencia, el lenguaje C está disponible en un amplio abanico de plataformas (seguramente más que cualquier otro lenguaje). Además, a pesar de su naturaleza de bajo nivel, el lenguaje se desarrolló para incentivar la programación independiente de la máquina. Un programa escrito cumpliendo los estándares e intentando que sea portátil puede compilarse en muchos computadores.
C se desarrolló originalmente (conjuntamente con el sistema operativo Unix, con el que ha estado asociado mucho tiempo) por programadores para programadores. Sin embargo, ha alcanzado una popularidad enorme, y se ha usado en contextos muy alejados de la programación de sistemas, para la que se diseñó originalmente.
Características
Propiedades
• Un núcleo del lenguaje simple, con funcionalidades añadidas importantes, como funciones matemáticas y de manejo de archivos, proporcionadas por bibliotecas.
• Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de los más empleados es el estructurado "no llevado al extremo" (permitiendo ciertas licencias de ruptura).
• Un sistema de tipos que impide operaciones sin sentido.
• Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como definir macros e incluir múltiples archivos de código fuente.
• Acceso a memoria de bajo nivel mediante el uso de punteros.
• Interrupciones al procesador con uniones.
• Un conjunto reducido de palabras clave.
• Por defecto, el paso de parámetros a una función se realiza por valor. El paso por referencia se consigue pasando explícitamente a las funciones las direcciones de memoria de dichos parámetros.
• Punteros a funciones y variables estáticas, que permiten una forma rudimentaria de encapsulado y polimorfismo.
• Tipos de datos agregados (struct) que permiten que datos relacionados (como un empleado, que tiene un id, un nombre y un salario) se combinen y se manipulen como un todo (en una única variable "empleado").
Carencias
• Recolección de basura nativa, sin embargo se encuentran a tal efecto bibliotecas como la "libgc" desarrollada por Sun Microsystems, o el Recolector de basura de Boehm.
• Soporte para programación orientada a objetos, aunque la implementación original de C++ fue un preprocesador que traducía código fuente de C++ a C.
• Encapsulación.
• Funciones anidadas, aunque GCC tiene esta característica como extensión.
• Polimorfismo en tiempo de código en forma de sobrecarga, sobrecarga de operadores y sólo dispone de un soporte rudimentario para la programación, genérica.
• Soporte nativo para programación multihilo y redes de computadores.
Aunque la lista de las características útiles de las que carece C es larga, este factor ha sido importante para su aceptación, porque escribir rápidamente nuevos compiladores para nuevas plataformas, mantiene lo que realmente hace el programa bajo el control directo del programador, y permite implementar la solución más natural para cada plataforma. Ésta es la causa de que a menudo C sea más eficiente que otros lenguajes. Típicamente, sólo la programación cuidadosa en lenguaje ensamblador produce un código más rápido, pues da control total sobre la máquina, aunque los avances en los compiladores de C y la complejidad creciente de los microprocesadores modernos han reducido gradualmente esta diferencia.
En algunos casos, una característica inexistente puede aproximarse. Por ejemplo, la implementación original de C++ consistía en un preprocesador que traducía código fuente C++ a C. La mayoría de las funciones orientadas a objetos incluyen un puntero especial, que normalmente recibe el nombre "this", que se refiere al objeto al que pertenece la función. Mediante el paso de este puntero como un argumento de función, esta funcionalidad puede desempeñarse en C. Por ejemplo, en C++ se puede escribir:
stack.push(val);
Mientras que en C, se podría escribir:
push(stack, val);
Donde el argumento stack es un puntero a una struct equivalente al puntero this de C++, que es un puntero a un objeto.
Desarrollo inicial
El desarrollo inicial de C se llevó a cabo en los Laboratorios Bell de AT&T entre 1969 y 1973; según Ritchie, el periodo más creativo tuvo lugar en 1972. Se le dio el nombre "C" porque muchas de sus características fueron tomadas de un lenguaje anterior llamado "B".
Hay muchas leyendas acerca del origen de C y el sistema operativo con el que está íntimamente relacionado, Unix. Algunas de ellas son:
• El desarrollo de C fue el resultado del deseo de los programadores de jugar con Space Travel. Habían estado jugando en el mainframe de su compañía, pero debido a su poca capacidad de proceso y al tener que soportar 100 usuarios, Thompson y Ritchie no tenían suficiente control sobre la nave para evitar colisiones con los asteroides. Por ese motivo decidieron portar el juego a un PDP-7 de la oficina que no se utilizaba; pero esa máquina no tenía sistema operativo, así que decidieron escribir uno. Finalmente decidieron portar el sistema operativo del PDP-11 que había en su oficina, pero era muy costoso, pues todo el código estaba escrito en lenguaje ensamblador. Entonces decidieron usar un lenguaje de alto nivel y portátil para que el sistema operativo se pudiera portar fácilmente de un ordenador a otro. Consideraron usar B, pero carecía de las funcionalidades necesarias para aprovechar algunas características avanzadas del PDP-11. Entonces empezaron a crear un nuevo lenguaje, C.
• La justificación para obtener el ordenador original que se usó para desarrollar Unix fue crear un sistema que automatizase el archivo de patentes. La versión original de Unix se desarrolló en lenguaje ensamblador. Más tarde, el lenguaje C se desarrolló para poder reescribir el sistema operativo.
En 1973, el lenguaje C se había vuelto tan potente que la mayor parte del kernel Unix, originalmente escrito en el lenguaje ensamblador PDP-11/20, fue reescrita en C. Éste fue uno de los primeros núcleos de sistema operativo implementados en un lenguaje distinto al ensamblador. (Algunos casos anteriores son el sistema Multics, escrito en PL/I, y Master Control Program para el B5000 de Burroughs, escrito en ALGOL en 1961).
El C de Kernighan y Ritchie
En 1978, Ritchie y Brian Kernighan publicaron la primera edición de El lenguaje de programación C, también conocido como La biblia de C. Este libro fue durante años la especificación informal del lenguaje. El lenguaje descrito en este libro recibe habitualmente el nombre de "el C de Kernighan y Ritchie" o simplemente "K&R C" (La segunda edición del libro cubre el estándar ANSI C, descrito más abajo.)
Kernighan y Ritchie introdujeron las siguientes características al lenguaje:
• El tipo de datos struct.
• El tipo de datos long int.
• El tipo de datos unsigned int.
• Los operadores =+ y =- fueron sustituidos por += y -= para eliminar la ambigüedad semántica de expresiones como i=-10, que se podría interpretar bien como i =- 10 o bien como i = -10.
El C de Kernighan y Ritchie es el subconjunto más básico del lenguaje que un compilador debe de soportar. Durante muchos años, incluso tras la introducción del ANSI C, fue considerado "el mínimo común denominador" en el que los programadores debían programar cuando deseaban que sus programas fueran transportables, pues no todos los compiladores soportaban completamente ANSI, y el código razonablemente bien escrito en K&R C es también código ANSI C válido.
En estas primeras versiones de C, las únicas funciones que necesitaban ser declaradas si se usaban antes de la definición de la función eran las que retornaban valores no enteros. Es decir, se presuponía que una función que se usaba sin declaración previa (prototipo) devolvería un entero.
Ejemplo de llamada que requiere declaración previa (prototipo):
long int cierta_funcion();
int llamando_funcion()
{
long int ret;
ret = cierta_funcion();
}
Ejemplo de llamada que no requiere declaración previa:
int llamando_funcion()
{
int ret;
ret = alguna_otra_funcion();
}

int alguna_otra_funcion()
{
return 0;
}
Dado que el lenguaje C de K&R no incluía ninguna información sobre los argumentos de las funciones, no se realizaba comprobación de tipos en los parámetros de las funciones, aunque algunos compiladores lanzan mensajes de advertencia si se llamaba a una función con un número incorrecto de argumentos.
En los años siguientes a la publicación del C de Kernighan y Ritchie, se añadieron al lenguaje muchas características no oficiales, que estaba soportadas por los compiladores de AT&T, entre otros. Algunas de estas características eran:
• Funciones void y el tipo de datos void *.
• Funciones que retornaban tipos de datos struct o union (en lugar de punteros).
• Asignación de tipos de datos struct.
• Calificador const, que hace que un objeto sea de sólo lectura.
• Una biblioteca estándar, que incorporaba la mayoría de las funcionalidades implementadas por varios desarrolladores de compiladores.
• Enumeraciones.
ANSI C e ISO C
A finales de la década de 1970, C empezó a sustituir a BASIC como lenguaje de programación de microcomputadores predominante. Durante la década de 1980 se empezó a usar en los IBM PC, lo que incrementó su popularidad significativamente. Al mismo tiempo, Bjarne Stroustrup empezó a trabajar con algunos compañeros de Bell Labs para añadir funcionalidades de programación orientada a objetos a C. El lenguaje que crearon, llamado C++, es hoy en día el lenguaje de programación de aplicaciones más común en el sistema operativo Microsoft Windows; mientras que C sigue siendo más popular en el entorno Unix. Otro lenguaje que se desarrolló en esa época, Objective C, también añadió características de programación orientada a objetos a C. Aunque hoy en día no es tan popular como C++, se usa para desarrollar aplicaciones Cocoa para Mac OS X.
En 1983, el Instituto Nacional Estadounidense de Estándares organizó un comité, X3j11, para establecer una especificación estándar de C. Tras un proceso largo y arduo, se completó el estándar en 1989 y se ratificó como el "Lenguaje de Programación C" ANSI X3.159-1989. Esta versión del lenguaje se conoce a menudo como ANSI C, o a veces como C89 (para distinguirla de C99).
En 1990, el estándar ANSI (con algunas modificaciones menores) fue adoptado por la Organización Internacional para la Estandarización (ISO) en el estándar ISO/IEC 9899:1990. Esta versión se conoce a veces como C90. No obstante, "C89" y "C90" se refieren en esencia al mismo lenguaje.
Uno de los objetivos del proceso de estandarización del ANSI C fue producir una extensión al C de Kernighan y Ritchie, incorporando muchas funcionalidades no oficiales. Sin embargo, el comité de estandarización incluyó también muchas funcionalidades nuevas, como prototipos de función, y un preprocesador mejorado. También se cambió la sintaxis de la declaración de parámetros para hacerla semejante a la empleada habitualmente en C++:
main(argc, argv)
int argc;
char **argv;
{
...
}
pasó a ser
int main(int argc, char *argv[])
{
...
}
ANSI C está soportado hoy en día por casi la totalidad de los compiladores. La mayoría del código C que se escribe actualmente está basado en ANSI C. Cualquier programa escrito sólo en C estándar sin código que dependa de un hardware determinado funciona correctamente en cualquier plataforma que disponga de una implementación de C compatible. Sin embargo, muchos programas han sido escritos de forma que sólo pueden compilarse en una cierta plataforma, o con un compilador concreto, esto puede ser debido a diversos motivos:
• La utilización de bibliotecas no estándar, como interfaces gráficas de usuario.
• El uso de compiladores que no cumplen las especificaciones del estándar.
• El uso de tipos de datos suponiendo que tendrán el mismo tamaño u orden de los bits en todas las plataformas.
La macro __STDC__ puede usarse para dividir el código en secciones ANSI y K&R para el compilador.
# if __STDC__
extern int getopt(int,char * const *,const char *);
# else
extern int getopt();
# endif
Algunos programadores recomiendan usar "#if __STDC__", como en el ejemplo, en lugar de "#ifdef __STDC__" porque algunos compiladores le asignan el valor cero a __STDC__ para indicar que no son compatibles con ANSI.
C99
Tras el proceso de estandarización de ANSI, la especificación del lenguaje C permaneció relativamente estable durante algún tiempo, mientras que C++ siguió evolucionando. Sin embargo, el estándar continuó bajo revisión a finales de la década de 1990, lo que llevó a la publicación del estándar ISO 9899:1999 en 1999. Este estándar se denomina habitualmente "C99". Se adoptó como estándar ANSI en marzo de 2000.
Las nuevas características de C99 incluyen:
• Funciones inline.
• Las variables pueden declararse en cualquier sitio (como en C++), en lugar de poder declararse sólo tras otra declaración o al comienzo de una declaración compuesta.
• Muchos tipos de datos, incluyendo long long int (para reducir el engorro de la transición de 32 bits a 64 bits), un tipo de datos booleano, y un tipo complex que representa números complejos.
• Arrays de longitud variable.
• Soporte para comentarios de una línea que empiecen con //, como en BCPL o en C++, característica para la que muchos compiladores habían dado soporte por su cuenta.
• muchas funciones nuevas, como snprintf()
• muchos headers nuevos, como stdint.h.
Una consideración importante es que hasta la publicación de este estándar, C había sido mayormente un subconjunto estricto del C++. Era muy sencillo "actualizar" un programa de C hacia C++ y mantener ese código compilable en ambos lenguajes. Sin embargo, el nuevo estándar agrega algunas características que C++ no admite, como por ejemplo los inicializadores estáticos de estructuras. También define al tipo "bool" de una manera que no es exactamente la del C++.
El compilador GCC, entre muchos otros, soportan hoy en día la mayoría de las nuevas características de C99. Sin embargo, este nuevo estándar ha tenido peor acogida entre algunos desarrolladores de compiladores, como Microsoft y Borland, que se han centrado en C++. Brandon Bray, de Microsoft, dijo a este respecto:
"En general, hemos visto poca demanda de muchas características de C99. Algunas características tienen más demanda que otras, y consideraremos incluirlas en versiones futuras siempre que sean compatibles con C++."
Ventajas
• Lenguaje muy eficiente puesto que es posible utilizar sus características de bajo nivel para realizar implementaciones óptimas.
• A pesar de su bajo nivel es el lenguaje más portado en existencia, habiendo compiladores para casi todos los sistemas conocidos.
• Proporciona facilidades para realizar programas modulares y/o utilizar código o bibliotecas existentes.
Desventajas
El mayor problema que presenta el lenguaje C frente a los lenguajes de tipo de dato dinámico es la gran diferencia en velocidad de desarrollo: es mucho más lento programar en C. La razón estriba en que el compilador de C se limita a traducir código sin apenas añadir nada. La gestión de la memoria es un ejemplo clásico: en C el programador ha de reservar y liberar la memoria explícitamente. En otros lenguajes (como BASIC, Matlab o C#) la memoria es gestionada de forma transparente para el programador. Esto alivia la carga de trabajo humano y en muchas ocasiones previene errores.
El mantenimiento también es más difícil y costoso que con lenguajes de más alto nivel. El código en C se presta a sentencias cortas y enrevesadas de difícil interpretación. Aunque el lenguaje admite código escrito de forma fácilmente legible, si no se siguen normas en el equipo de programación algunos programadores pueden acabar escribiendo código difícil de leer. Esto complica la revisión y el mantenimiento.
C no dispone de sistemas de control automáticos y la seguridad depende casi exclusivamente de la experiencia del programador. La mayor parte de los problemas de seguridad en los sistemas informáticos actuales deriva de haber sido realizados en C. El fallo de seguridad clásico consiste en que algunas entradas de información al programa no se comprueban en longitud. Si un atacante introduce datos lo bastante grandes puede provocar la sobreescritura de código en la pila del programa e incluso llegar a forzar la ejecución de código pernicioso. Los lenguajes de tipo dinámico cuentan con controles de gestión de memoria y de entrada de datos automáticos.
Por estas razones, los directores de desarrollo han de sopesar la ventaja en eficiencia de un buen programa en C frente a la mayor duración del trabajo y los riesgos de seguridad y estabilidad. Han de tener en cuenta además, que los equipos bajan de precio con el tiempo mientras que el coste de los programadores aumenta.
[Variantes
Desde el inicio del lenguaje han surgido varias ramas de evolución que han generado varios lenguajes:
• Objective-C es un primer intento de proporcionar soporte para la programación orientada a objetos en C, de escasa difusión, pero actualmente usado en Mac OS X y GNUstep.
• C++ diseñado por Bjarne Stroustrup fue el segundo intento de proporcionar orientación a objetos a C y es la variante más difundida y aceptada. Esta versión combina la flexibilidad y el acceso de bajo nivel de C con las características de la programación orientada a objetos como abstracción, encapsulación y ocultación.
También se han creado numerosos lenguajes inspirados en la sintaxis de C, pero que no son compatibles con él:
• Java, que une una sintaxis inspirada en la del C++ con una orientación a objetos más similar a la de Smalltalk y Objective C.
• JavaScript, un lenguaje de scripting creado en Netscape e inspirado en la sintaxis de Java diseñado para dar a las páginas web mayor interactividad. A la versión estandarizada se la conoce como ECMAScript.
• C# (pronunciado C Sharp) es un lenguaje desarrollado por Microsoft derivado de C/C++ y Java.
Proceso de compilación
La compilación de un programa C se realiza en varias fases que normalmente son automatizadas y ocultadas por los entornos de desarrollo:
1. Preprocesado consistente en modificar el código fuente en C según una serie de instrucciones (denominadas directivas de preprocesado) simplificando de esta forma el trabajo del compilador. Por ejemplo, una de las acciones más importantes es la modificación de las inclusiones (#include) por las declaraciones reales existentes en el archivo indicado.
2. Compilación que genera el código objeto a partir del código ya preprocesado.
3. Enlazado que une los códigos objeto de los distintos módulos y bibliotecas externas (como las bibliotecas del sistema) para generar el programa ejecutable final.
[editar] Ejemplo de código
El siguiente programa imprime en pantalla la frase "Hola Mundo" (C99).
# include // necesario para utilizar printf()

int main(void)
{
printf("Hola, Mundo\n");
// return 0 implícito en C99 para main().
}
El siguiente escribe "Hola, mundo" en C89
/* comentarios con '//' no permitidos en C89, sí en C99 */
# include /* necesario para utilizar printf */

main() /* tipo 'int' de retorno implícito */
{
printf ("Hola Mundo\n") ;
return 0;
}
Herramientas de programación
Al programar en C, es habitual usar algunas herramientas de programación de uso muy extendido, sobre todo en entorno de tipo unix:
• make: Herramienta para automatizar el proceso de compilación, enlazado, etc.
• lint: Herramienta utilizada para detectar código sospechoso, confuso o incompatible entre distintas arquitecturas
Aplicabilidad
Hecho principalmente para la fluidez de programación en sistemas UNIX. Se usa también para el desarrollo de otros sistemas operativos como Windows o Linux. Igualmente para aplicaciones de escritorio como OpenOffice.org, cuyo principal lenguaje de programación es C.
De la misma forma, es muy usado en aplicaciones científicas (para experimentos informáticos, físicos, químicos, matemáticos, entre otros, parte de ellos conocidos como modelos y simuladores), industriales (industria robótica, cibernética, sistemas de información y base de datos para la industria petrolera y petroquímica. Predominan también todo lo que se refiere a simulación de máquinas de manufactura), simulaciones de vuelo (es la más delicada, ya que se tienen que usar demasiados recursos tanto de hardware como de software para desarrollar aplicaciones que permitan simular el vuelo real de una areonave. Se aplica por tanto, en diversas áreas desconocidas por gran parte de los usuarios noveles.
Los ordenadores de finales de los 90 son varios órdenes de magnitud más potentes que las máquinas en que C se desarrolló originalmente. Programas escritos en lenguajes de tipo dinámico y fácil codificación (Ruby, Python, Perl...) que antaño hubieran resultado demasiado lentos, son lo bastante rápidos como para desplazar en uso a C. Aun así, se puede seguir encontrando código C en grandes desarrollos de animaciones, modelados y escenas en 3D en películas y otras aplicaciones multimedia.
Actualmente, los grandes proyectos de software se dividen en partes, dentro de un equipo de desarrollo. Aquellas partes que son más "burocráticas" o "de gestión" con los recursos del sistema, se suelen realizar en lenguajes de tipo dinámico o de guión (script), mientras que aquellas partes "críticas", por su necesidad de rapidez de ejecución, se realizan en un lenguaje de tipo compilado, como C o C++. Si, después de hacer la división, las partes críticas no superan un cierto porcentaje del total (aproximadamente el 10%) entonces todo el desarrollo se realiza con lenguajes dinámicos. Si la parte crítica no llega a cumplir las expectativas del proyecto, se comparan las alternativas de una inversión en nuevo hardware frente a invertir en el coste de un programador para que reescriba dicha parte crítica.
Aplicaciones embebidas
C es el lenguaje común para programar sistemas embebidos.[cita requerida] El código ligero que un compilador C genera, combinado con la capacidad de acceso capas del software cercanas al hardware son la causa de su popularidad en estas aplicaciones.
Un característica donde C demuestra comodidad de uso particularmente valiosa en sistemas embebidos es la manipulación de bits. Los sistemas contienen registros mapeados en memoria (en inglés, MMR) a través de los cuales los periféricos se configuran. Estos registros mezclan varias configuraciones en la misma dirección de memoria, aunque en bits distintos. Con C es posible modificar fácilmente uno de estos bits sin alterar el resto. Por ejemplo:
int *mmr; /* puntero al registro que queremos modificar */
mmr = 0x40008ABC; /* dirección de memoria del registro */
* mmr = 1<<7; /* pone a 1 el bit 7 sin modificar los demás */
* mmr &= ~(1<<12) /* pone a 0 el bit 12 sin modificar los demás */
Este tipo de manipulación es muy tediosa o sencillamente imposible en otros lenguajes de alto nivel.
Otras características de C consideradas desventajas en la programación para PC -como la ausencia de control de memoria automático- se convierten en ventajas cuando los sistemas embebidos necesitan código pequeño y optimizado. Ese es el caso de los sistemas basados en microcontroladores de poca potencia como el intel 8051 o muchos sistemas ARM.
Biblioteca C
Una biblioteca de C es una colección de rutinas utilizadas en el lenguaje de programación C. Las bibliotecas más comunes son la biblioteca estándar de C y la ISO y estándar ANSI C provee las especificaciones de los estándares, las cuales son ampliamente compartidas entre bibliotecas. La biblioteca ANSI C estándar incluye rutinas para la entrada y salida de archivos, alojamiento de memoria y operaciones con datos comunes como funciones matemáticas, funciones de cadenas y funciones de hora y fecha.
Otros juegos de bibliotecas C son aquellas utilizadas para desarrollar sistemas Unix, las cuales proveen interfaces hacia el núcleo. Estas funciones son detalladas en varios estándares tales como POSIX y el Single UNIX Specification.
Ya que muchos programas han sido escritos en el lenguaje C existe una gran variedad de bibliotecas disponibles. Muchas bibliotecas son escritas en C debido a que C genera código objeto rápido; los programadores luego generan interfaces a la biblioteca para que las rutinas puedan ser utilizadas desde lenguajes de mayor nivel, tales como Java, Perl y Python.
Referencias
Software libre, (en inglés free software, aunque en realidad esta denominación también puede significar gratis, y no necesariamente libre, por lo que se utiliza el hispanismo libre software también en inglés) es la denominación del software que respeta la libertad de los usuarios sobre su producto adquirido y, por tanto, una vez obtenido puede ser usado, copiado, estudiado, cambiado y redistribuido libremente. Según la Free Software Foundation, el software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software; de modo más preciso, se refiere a cuatro libertades de los usuarios del software: la libertad de usar el programa, con cualquier propósito; de estudiar el funcionamiento del programa, y adaptarlo a las necesidades; de distribuir copias, con lo cual se puede ayudar a otros, y de mejorar el programa y hacer públicas las mejoras, de modo que toda la comunidad se beneficie (para la segunda y última libertad mencionadas, el acceso al código fuente es un requisito previo).
El software libre suele estar disponible gratuitamente, o al precio de costo de la distribución a través de otros medios; sin embargo no es obligatorio que sea así, por lo tanto no hay que asociar software libre a "software gratuito" (denominado usualmente freeware), ya que, conservando su carácter de libre, puede ser distribuido comercialmente ("software comercial"). Análogamente, el "software gratis" o "gratuito" incluye en ocasiones el código fuente; no obstante, este tipo de software no es libre en el mismo sentido que el software libre, a menos que se garanticen los derechos de modificación y redistribución de dichas versiones modificadas del programa.
Tampoco debe confundirse software libre con "software de dominio público". Éste último es aquel software que no requiere de licencia, pues sus derechos de explotación son para toda la humanidad, porque pertenece a todos por igual. Cualquiera puede hacer uso de él, siempre con fines legales y consignando su autoría original. Este software sería aquel cuyo autor lo dona a la humanidad o cuyos derechos de autor han expirado, tras un plazo contado desde la muerte de este, habitualmente 70 años. Si un autor condiciona su uso bajo una licencia, por muy débil que sea, ya no es del dominio público.
Entre los años 60 y 70 del Siglo XX, el software no era considerado un producto sino un añadido que los vendedores de las grandes computadoras de la época (las mainframes) aportaban a sus clientes para que éstos pudieran usarlos. En dicha cultura, era común que los programadores y desarrolladores de software compartieran libremente sus programas unos con otros. Este comportamiento era particularmente habitual en algunos de los mayores grupos de usuarios de la época, como DECUS (grupo de usuarios de computadoras DEC). A finales de los 70, las compañías iniciaron el hábito de imponer restricciones a los usuarios, con el uso de acuerdos de licencia.
Allá por el 1971, cuando la informática todavía no había sufrido su gran boom, las personas que hacían uso de ella, en ámbitos universitarios y empresariales, creaban y compartían el software sin ningún tipo de restricciones.
Con la llegada de los años 80 la situación empezó a cambiar. Las computadoras más modernas comenzaban a utilizar sistemas operativos privativos, forzando a los usuarios a aceptar condiciones restrictivas que impedían realizar modificaciones a dicho software.
En caso de que algún usuario o programador encontrase algún error en la aplicación, lo único que podía hacer era darlo a conocer a la empresa desarrolladora para que esta lo solucionara. Aunque el programador estuviese capacitado para solucionar el problema y lo desease hacer sin pedir nada a cambio, el contrato le impedía que mejorase el software.
El mismo Richard Stallman cuenta que por aquellos años, en el laboratorio donde trabajaba, habían recibido una impresora donada por una empresa externa. El dispositivo, que era utilizado en red por todos los trabajadores, parecía no funcionar a la perfección, dado que cada cierto tiempo el papel se atascaba. Como agravante, no se generaba ningún aviso que se enviase por red e informase a los usuarios de la situación.
La pérdida de tiempo era constante, ya que en ocasiones, los trabajadores enviaban por red sus trabajos a imprimir y al ir a buscarlos se encontraban la impresora atascada y una cola enorme de trabajos pendientes. Richard Stallman decidió arreglar el problema, e implementar el envío de un aviso por red cuando la impresora se bloqueara. Para ello necesitaba tener acceso al código fuente de los controladores de la impresora. Pidió a la empresa propietaria de la impresora lo que necesitaba, comentando, sin pedir nada a cambio, qué era lo que pretendía realizar. La empresa se negó a entregarle el código fuente.
En ese preciso instante, Richard Stallman se vio en una encrucijada: debía elegir entre aceptar el nuevo software privativo firmando acuerdos de no revelación y acabar desarrollando más software privativo con licencias restrictivas, que a su vez deberían ser más adelante aceptadas por sus propios colegas.
Con este antecedente, en 1984, Richard Stallman comenzó a trabajar en el proyecto GNU, y un año más tarde fundó la Free Software Foundation (FSF). Stallman introdujo la definición de free software y el concepto de "copyleft", que desarrolló para otorgar libertad a los usuarios y para restringir las posibilidades de apropiación del software.
Libertades del software libre
De acuerdo con tal definición, el software es "libre" si garantiza las siguientes libertades:
Ciertos teóricos usan este cuarto punto (libertad 3) para justificar parcialmente las limitaciones impuestas por la licencia GNU GPL frente a otras licencias de software libre (ver Licencias GPL). Sin embargo el sentido original es más libre, abierto y menos restrictivo que el que le otorga la propia situación de incompatibilidad, que podría ser resuelta en la próxima versión 3.0 de la licencia GNU GPL, causa en estos momentos graves perjuicios a la comunidad de programadores de software libre, que muchas veces no pueden reutilizar o mezclar códigos de dos licencias distintas, pese a que las libertades teóricamente lo deberían permitir.
En el sitio web oficial de Open Source Initiative está la lista completa de las licencias de software libre actualmente aprobadas y tenidas como tales.
El término software no libre se emplea para referirse al software distribuido bajo una licencia de software más restrictiva que no garantiza estas cuatro libertades. Las leyes de la propiedad intelectual reservan la mayoría de los derechos de modificación, duplicación y redistribución para el dueño del copyright; el software dispuesto bajo una licencia de software libre rescinde específicamente la mayoría de estos derechos reservados.
La definición de software libre no contempla el asunto del precio; un eslogan frecuentemente usado es "libre como en libertad, no como en cerveza gratis" o en inglés "Free as in freedom, not as in free beer" (aludiendo a la ambigüedad del término inglés "free"), y es habitual ver a la venta CDs de software libre como distribuciones Linux. Sin embargo, en esta situación, el comprador del CD tiene el derecho de copiarlo y redistribuirlo. El software gratis puede incluir restricciones que no se adaptan a la definición de software libre por ejemplo, puede no incluir el código fuente, puede prohibir explícitamente a los distribuidores recibir una compensación a cambio, etc.
Para evitar la confusión, algunas personas utilizan los términos "libre" (software libre) y "gratis" (software gratis) para evitar la ambigüedad de la palabra inglesa "free". Sin embargo, estos términos alternativos son usados únicamente dentro del movimiento del software libre, aunque están extendiéndose lentamente hacia el resto del mundo. Otros defienden el uso del término open source software (software de código abierto, también llamado de fuentes abiertas). La principal diferencia entre los términos "open source" y "free software" es que éste último tiene en cuenta los aspectos éticos y filosóficos de la libertad, mientras que el "open source" se basa únicamente en los aspectos técnicos.
En un intento por unir los mencionados términos que se refieren a conceptos semejantes, se está extendiendo el uso de la palabra "FLOSS" con el significado de "Free - Libre - Open Source Software" e, indirectamente, también a la comunidad que lo produce y apoya.
Tipos de licencias
Una licencia es aquella autorización formal con carácter contractual que un autor de un software da a un interesado para ejercer "actos de explotación legales". Pueden existir tantas licencias como acuerdos concretos se den entre el autor y el licenciatario. Desde el punto de vista del software libre, existen distintas variantes del concepto o grupos de licencias:
Licencias GPL
Una de las más utilizadas es la Licencia Pública General de GNU (GNU GPL). El autor conserva los derechos de autor (copyright), y permite la redistribución y modificación bajo términos diseñados para asegurarse de que todas las versiones modificadas del software permanecen bajo los términos más restrictivos de la propia GNU GPL. Esto hace que sea imposible crear un producto con partes no licenciadas GPL: el conjunto tiene que ser GPL.
Es decir, la licencia GNU GPL posibilita la modificación y redistribución del software, pero únicamente bajo esa misma licencia. Y añade que si se reutiliza en un mismo programa código "A" licenciado bajo licencia GNU GPL y código "B" licenciado bajo otro tipo de licencia libre, el código final "C", independientemente de la cantidad y calidad de cada uno de los códigos "A" y "B", debe estar bajo la licencia GNU GPL.
En la práctica esto hace que las licencias de software libre se dividan en dos grandes grupos, aquellas que pueden ser mezcladas con código licenciado bajo GNU GPL (y que inevitablemente desaparecerán en el proceso, al ser el código resultante licenciado bajo GNU GPL) y las que no lo permiten al incluir mayores u otros requisitos que no contemplan ni admiten la GNU GPL y que por lo tanto no pueden ser enlazadas ni mezcladas con código gobernado por la licencia GNU GPL.
En el sitio web oficial de GNU hay una lista de licencias que cumplen las condiciones impuestas por la GNU GPL y otras que no.
Aproximadamente el 60% del software licenciado como software libre emplea una licencia GPL.
Licencias estilo BSD
Llamadas así porque se utilizan en gran cantidad de software distribuido junto a los sistemas operativos BSD. El autor, bajo tales licencias, mantiene la protección de copyright únicamente para la renuncia de garantía y para requerir la adecuada atribución de la autoría en trabajos derivados, pero permite la libre redistribución y modificación, incluso si dichos trabajos tienen propietario. Son muy permisivas, tanto que son fácilmente absorbidas al ser mezcladas con la licencia GNU GPL con quienes son compatibles. Puede argumentarse que esta licencia asegura “verdadero” software libre, en el sentido que el usuario tiene libertad ilimitada con respecto al software, y que puede decidir incluso redistribuirlo como no libre. Otras opiniones están orientadas a destacar que este tipo de licencia no contribuye al desarrollo de más software libre (normalmente utilizando la siguiente analogía: "una licencia BSD es más libre que una GPL si y sólo si se opina también que un país que permita la esclavitud es más libre que otro que no la permite").
Licencias estilo MPL y derivadas
Esta licencia es de Software Libre y tiene un gran valor porque fue el instrumento que empleó Netscape Communications Corp. para liberar su Netscape Communicator 4.0 y empezar ese proyecto tan importante para el mundo del Software Libre: Mozilla. Se utilizan en gran cantidad de productos de software libre de uso cotidiano en todo tipo de sistemas operativos. La MPL es Software Libre y promueve eficazmente la colaboración evitando el efecto "viral" de la GPL (si usas código licenciado GPL, tu desarrollo final tiene que estar licenciado GPL). Desde un punto de vista del desarrollador la GPL presenta un inconveniente en este punto, y lamentablemente mucha gente se cierra en banda ante el uso de dicho código. No obstante la MPL no es tan excesivamente permisiva como las licencias tipo BSD. Estas licencias son denominadas de copyleft débil. La NPL (luego la MPL) fue la primera licencia nueva después de muchos años, que se encargaba de algunos puntos que no fueron tenidos en cuenta por las licencias BSD y GNU. En el espectro de las licencias de software libre se la puede considerar adyacente a la licencia estilo BSD, pero perfeccionada.
Copyleft
Hay que hacer constar que el titular de los derechos de autor (copyright) de un software bajo licencia copyleft puede también realizar una versión modificada bajo su copyright original, y venderla bajo cualquier licencia que desee, además de distribuir la versión original como software libre. Esta técnica ha sido usada como un modelo de negocio por una serie de empresas que realizan software libre (por ejemplo MySQL); esta práctica no restringe ninguno de los derechos otorgados a los usuarios de la versión copyleft. También podría retirar todas las licencias de software libre anteriormente otorgadas, pero esto obligaría a una indemnización a los titulares de las licencias en uso. En España, toda obra derivada está tan protegida como una original, siempre que la obra derivada parta de una autorización contractual con el autor. En el caso genérico de que el autor retire las licencias "copyleft", no afectaría de ningún modo a los productos derivados anteriores a esa retirada, ya que no tiene efecto retroactivo. En términos legales, el autor no tiene derecho a retirar el permiso de una licencia en vigencia. Si así sucediera, el conflicto entre las partes se resolvería en un pleito convencional.
Comparación con el software de código abierto
Mapa conceptual del FLOSS (free/libre open source software).
Aunque en la práctica el software de código abierto y el software libre comparten muchas de sus licencias, la FSF opina que el movimiento de código abierto es filosóficamente diferente del movimiento del software libre. Apareció en 1998 con un grupo de personas, entre los que cabe destacar a Eric S. Raymond y Bruce Perens, que formaron la Open Source Initiative (OSI). Ellos buscaban darle mayor relevancia a los beneficios prácticos del compartir el código fuente, e interesar a las principales casas de software y otras empresas de la industria de la alta tecnología en el concepto. Mientras que la FSF y Richard Stallman, prefieren plantear el asunto en términos éticos empleando el término Software Libre.
Estos defensores ven que el término "código abierto", en inglés open source, evita la ambigüedad del término en ese idioma que es free en free software. El término "código abierto" fue acuñado por Christine Peterson del think tank Foresight Institute, y se registró para actuar como marca registrada el término en inglés para los productos de software libre.
Mucha gente reconoce el beneficio cualitativo del proceso de desarrollo de software cuando los desarrolladores pueden usar, modificar y redistribuir el código fuente de un programa. (Véase también La Catedral y el Bazar). El movimiento del software libre hace especial énfasis en los aspectos morales o éticos del software, viendo la excelencia técnica como un producto secundario deseable de su estándar ético. El movimiento de código abierto ve la excelencia técnica como el objetivo prioritario, siendo la compartición del código fuente un medio para dicho fin. Por dicho motivo, la FSF se distancia tanto del movimiento de código abierto como del término "Código Abierto" (en inglés Open Source).
Puesto que la OSI sólo aprueba las licencias que se ajustan a la OSD (Open Source Definition, Definición de Código Abierto), la mayoría de la gente lo interpreta como un esquema de distribución, e intercambia libremente "código abierto" con "software libre". Aun cuando existen importantes diferencias filosóficas entre ambos términos, especialmente en términos de las motivaciones para el desarrollo y el uso de tal software, raramente suelen tener impacto en el proceso de colaboración.
Aunque el término "código abierto" elimina la ambigüedad de Libertad frente a Precio (en el caso del Inglés), introduce una nueva: entre los programas que se ajustan a la definición de Código Abierto, que dan a los usuarios la libertad de mejorarlos, y los programas que simplemente tiene el código fuente disponible, posiblemente con fuertes restricciones sobre el uso de dicho código fuente. Mucha gente cree que cualquier software que tenga el código fuente disponible es de código abierto, puesto que lo pueden manipular (un ejemplo de este tipo de software sería el popular paquete de software gratuito Graphviz, inicialmente no libre pero que incluía el código fuente, aunque luego AT&T le cambió la licencia). Sin embargo, mucho de este software no da a sus usuarios la libertad de distribuir sus modificaciones, restringe el uso comercial, o en general restringe los derechos de los usuarios.
Modelo de negocio
El negocio detras del software libre se caracteriza por la oferta de servicios adicionales al software como: la personalización y/o instalación del mismo, soporte técnico, donaciones, patrocinios; en contraposición al modelo de negocio basado en licencias predominante en el software de código cerrado.
Significancia política
Una vez que un producto de software libre ha empezado a circular, rápidamente está disponible a un costo muy bajo o sin costo alguno. Al mismo tiempo, su utilidad no decrece. Esto significa que el software libre se puede caracterizar como un bien libre en lugar de un bien económico, si bien eso no significa que no pueda ser comercializable.
Puesto que el software libre permite el libre uso, modificación y redistribución, a menudo encuentra un hogar entre usuarios para los cuales el coste del software no libre es a veces prohibitivo, o como alternativa a la piratería. También es sencillo modificarlo localmente, lo que permite que sean posibles los esfuerzos de traducción a idiomas que no son necesariamente rentables comercialmente.
La mayoría del software libre se produce por equipos internacionales que cooperan a través de la libre asociación. Los equipos están típicamente compuestos por individuos con una amplia variedad de motivaciones, y pueden provenir tanto del sector privado, del sector voluntario o del sector público. Existen muchas posturas acerca de la relación entre el software libre y el actual sistema político-económico:
• Algunos consideran el software libre como un competidor contra el centralismo en empresas y gobiernos, una forma de orden espontáneo o de anarquismo práctico.
• Algunos consideran el software libre como una expresión del liberalismo económico o del mercado libre. Mientras el copyright es una regulación gubernamental sobre el mercado, el software libre sería un ejemplo de libertad económica y competitividad contra el intervencionismo.
• Algunos consideran el software libre como una forma de trabajo colaborativo en un modelo de mercado, tal como se había planteado el cooperativismo.
• Algunos comparan el software libre a una economía del regalo, donde el valor de una persona está basado en lo que ésta da a los demás, sin que incurra valor monetario formal de por medio.
• Grupos como Oekonux e Hipatia consideran que todo debería producirse de esta forma y que este modelo de producción no se limita a reemplazar el modelo no libre de desarrollo del software. La cooperación basada en la libre asociación puede usarse y se usa para otros propósitos (tales como escribir enciclopedias, por ejemplo).
• Hay proyectos de desarrollo con impulso gubernamental que utilizan software libre, así como en proyectos de voluntariado en países del tercer mundo.
Las implicaciones políticas y económicas del software libre, o su afinidad con el antiautoritarismo, es discutida. Mientras para unos estas implicaciones son notorias y representan un factor importante a tomarse en cuenta, para otros si bien podría existir una leve relación, no tiene suficiente relevancia.
Seguridad relativa
Existe una cierta controversia sobre la seguridad del software libre frente al software no libre (siendo uno de los mayores asuntos la seguridad por oscuridad). Un método usado de forma habitual para determinar la seguridad relativa de los productos es determinar cuántos fallos de seguridad no parcheados existen en cada uno de los productos involucrados. Por lo general los usuarios de este método recomiendan que cuando un producto no proporcione un método de parchear los fallos de seguridad, no se use dicho producto, al menos hasta que no esté disponible un arreglo.
A fecha de Diciembre de 2004 el sitio de seguridad Secunia cuenta cero fallos de seguridad no parcheados (no arreglados aún) para los productos software libre más usados para navegación de internet, productividad de oficina y e-mail Mozilla Firefox, OpenOffice.org y Mozilla Thunderbird, en comparación con los varios fallos de seguridad aún no corregidos para cada uno de los tres principales productos no libres equivalentes (hechos por Microsoft) - Internet Explorer, Microsoft Office y Outlook Express.
Otro ejemplo de SL es GNU/Linux, del cual se cree que es más seguro que Windows debido a la diferencia de usuarios, sin embargo otros argumentan que la seguridad de este sistema reside en su diseño (véase el llamado principio de Kerckhoff).
Software libre en la administración pública
Existe una serie de países en los cuales, sus administraciones públicas, han mostrado apoyo al software libre, sea migrando total o parcialmente sus servidores y sistemas de escritorio, sea subvencionándolo. Como ejemplos de ello se tiene a Alemania, Argentina, Brasil, Cuba, Chile, China, Ecuador, España, Francia, México, República Dominicana y Venezuela.
Además de lo anterior, la Administración Pública tiene una cierta función de escaparate y/o guía de la industria que la hace tener un gran impacto, que debería dirigirse a la creación de un tejido tecnológico generador de riqueza nacional. Ésta puede crearse fomentando empresas, cuyo negocio sea en parte el desarrollo de nuevo software libre para la administración, el mantenimiento y la adaptación del existente asimismo auditar el software existente.
Actualmente (2009) el Centro Nacional de Referencia de Aplicación de las TIC basadas en Fuentes Abiertas (CENATIC), ha elaborado un informe junto a la Universidad Rey Juan Carlos (Grupo GsyC/LibreSoft) y Telefónica I+D, con el fin de analizar el estado en que se encuentra el proceso de implantación del software de fuentes abiertas en la Administración Pública española.
Motivaciones del software libre
• La motivación ética, abanderada por la Free Software Foundation, heredera de la cultura hacker, y partidaria del apelativo libre, que argumenta que el software es conocimiento y debe poderse difundir sin trabas. Su ocultación es una actitud antisocial y la posibilidad de modificar programas es una forma de libertad de expresión.
• La motivación pragmática, abanderada por la Open Source Initiative y partidaria del apelativo abierto, que argumenta ventajas técnicas y económicas, con respecto a evitar una tragedia de los anticomunes mejorando los incentivos.
Aparte de estas dos grandes motivaciones, la gente que trabaja en software libre suele hacerlo por muchas otras razones, que van desde la diversión a la mera retribución económica, que es posible debido a modelos de negocio sustentables.
Regulación
España
La Orden EDU/2341/2009, de 27 de agosto, por la que se crea el Centro Nacional de Desarrollo Curricular en Sistemas no Propietarios, tiene como finalidad el diseño, el desarrollo y la promoción de contenidos educativos digitales para colectivos educativos específicos, en el ámbito de las Tecnologías de la Información y la Comunicación, que se centra en promocionar y aplicar estrategias dirigidas a poner a disposición de los centros escolares recursos y contenidos digitales de calidad, desarrollados en software libre
GNU/Linux
GNU/Linux (Linux) es uno de los términos empleados para referirse al sistema operativo libre similar a Unix que utiliza el núcleo Linux y herramientas de sistema GNU. Su desarrollo es uno de los ejemplos más prominentes de software libre; todo el código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL (Licencia Pública General de GNU) y otras licencias libres.
A pesar de que Linux sólo es el núcleo de este sistema operativo una parte significativa de la comunidad, así como muchos medios generales y especializados, prefieren utilizar dicho término. Para más información consulte la sección "Denominación GNU/Linux" o el artículo "Controversia por la denominación GNU/Linux".
Las variantes de este sistema se denominan distribuciones y su objetivo es ofrecer una edición que cumpla con las necesidades de determinado grupo de usuarios.
Algunas distribuciones son especialmente conocidas por su uso en servidores y supercomputadoras.[] No obstante, es posible instalar GNU/Linux en una amplia variedad de hardware como computadoras de escritorio y portátiles.
En el caso de computadoras de bolsillo, teléfonos móviles, dispositivos empotrados, videoconsolas y otros, puede darse el caso en que las partes de GNU se remplacen por alternativas más adecuadas. Para saber más sobre las arquitecturas soportadas, lea el artículo "Portabilidad del núcleo Linux y arquitecturas soportadas".
Etimología
El nombre GNU, GNU's Not Unix (GNU no es Unix), viene de las herramientas básicas de sistema operativo creadas por el proyecto GNU, iniciado por Richard Stallman en 1983 y mantenido por la FSF. El nombre Linux viene del núcleo Linux, inicialmente escrito por Linus Torvalds en 1991.
La contribución de GNU es la razón por la que existe controversia a la hora de utilizar Linux o GNU/Linux para referirse al sistema operativo formado por las herramientas de GNU y el núcleo Linux en su conjunto.
El proyecto GNU, iniciado en 1983 por Richard Stallman, tiene como objetivo el desarrollo de un sistema operativo Unix completo compuesto enteramente de software libre. La historia del núcleo Linux está fuertemente vinculada a la del proyecto GNU. En 1991 Linus Torvalds empezó a trabajar en un reemplazo no comercial para MINIX que más adelante acabaría siendo Linux.
Cuando la primera versión del núcleo Linux fue liberada el proyecto GNU ya había producido varios de los componentes fundamentales del sistema operativo, incluyendo un intérprete de comandos, una biblioteca C y un compilador, pero su núcleo Hurd no estaba lo suficientemente maduro como para completar el sistema operativo.
Entonces, el núcleo creado por Linus Torvalds, quien se encontraba por entonces estudiando en la Universidad de Helsinki, llenó el "espacio" final que había en el sistema operativo de GNU.
Aplicaciones
Distribución Ubuntu 8.04 con el escritorio GNOME 2.22 ejecutando las aplicaciones Mozilla Firefox, navegador web; emesene, cliente libre de la red WLM y gcalctool, programa de calculadora.
En entornos de escritorio, GNU/Linux ofrece una interfaz gráfica alternativa a la tradicional interfaz de línea de comandos de Unix. Existen en la actualidad numerosas aplicaciones gráficas que ofrecen la funcionalidad que está permitiendo que GNU/Linux se adapte como herramienta de escritorio.
Muchas distribuciones permiten el arranque del sistema directamente desde un CD/DVD (llamados LiveCD) sin modificar el disco duro del ordenador en el que se ejecuta. Para este tipo de distribuciones, en general, los archivos de imagen (archivos ISO) están disponibles en Internet para su descarga.
Otras posibilidades incluyen iniciar el arranque desde una red, desde un disco flexible o disquete o desde unidades dealmacenamiento USB.
Como sistema de programación
La colección de utilidades para la programación de GNU es con diferencia la familia de compiladores más utilizada en este sistema operativo. Tiene capacidad para compilar C, C++, Java, Ada, entre otros muchos lenguajes. Además soporta diversas arquitecturas mediante la compilación cruzada, lo que hace que sea un entorno adecuado para desarrollos heterogéneos.
Hay varios entornos de desarrollo integrados disponibles para GNU/Linux incluyendo, Anjuta, KDevelop, Ultimate++, Code::Blocks, NetBeans IDE y Eclipse. También existen editores extensibles como Emacs o Vim. GNU/Linux también dispone de capacidades para lenguajes de guión (script), aparte de los clásicos lenguajes de programación de shell, o el de procesado de textos por patrones y expresiones regulares llamado awk, la mayoría de las distribuciones tienen instalado Python, Perl, PHP y Ruby.
Mercado y apoyos
Con la adopción por numerosas empresas fabricantes, un buen número de computadoras se venden con distribuciones pre-instaladas, y GNU/Linux ha comenzado a tomar su lugar en el vasto mercado de las computadoras de escritorio.
Apoyo
Algunas de las empresas que colaboran en la difusión de este sistema operativo ya sea trabajando en el núcleo Linux, proporcionando soluciones de software o preinstalando el sistema operativo, son: Intel , Google, IBM, AMD, Sun Microsystems, Dell, Lenovo, Asus, Hewlett-Packard (HP), Silicon Graphics International (SGI), Renesas Technology, Fujitsu, Analog Devices, Freescale, VIA Technologies, Oracle, Novell y RedHat, entre otras.
El respaldo de compañías de software también está presente, ya que, entre otras aplicaciones, Nero, Java, Google Earth, Google Desktop, Adobe Reader, Adobe Flash, RealPlayer y Yahoo! Messenger están disponibles para GNU/Linux.
Mercado
Numerosos estudios cuantitativos sobre software de código abierto están orientados a tópicos como la cuota de mercado y la fiabilidad, muchos de estos estudios examinan específicamente a GNU/Linux. El mercado de GNU/Linux crece rápidamente, y los ingresos por software de servidores, escritorios, y empaquetados, que corren bajo GNU/Linux, se estima que llegarán a USD 35,7 miles de millones en 2008.
La creciente popularidad de GNU/Linux se debe, entre otras razones, a su estabilidad, al acceso al código fuente (lo que permite personalizar el funcionamiento y auditar la seguridad y privacidad de los datos tratados), a la independencia de proveedor, a la seguridad, a la rapidez con que incorpora los nuevos adelantos tecnológicos (IPv6, microprocesadores de 64 bits), a la escalabilidad (se pueden crear clusters de cientos de computadoras), a la activa comunidad de desarrollo que hay a su alrededor, a su interoperatibilidad y a la abundancia de documentación relativa a los procedimientos.
Hay varias empresas que comercializan soluciones basadas en GNU/Linux: IBM, Novell (SuSE), Red Hat (RHEL), Rxart, Canonical Ltd. (Ubuntu), así como miles de PYMES que ofrecen productos o servicios basados en esta tecnología.
Dentro del segmento de supercomputadoras el uso de este sistema asciende a más del 88% de las supercomputadoras más potentes del mundo, a junio de 2009, por su confiabilidad, seguridad y libertad para modificar el código. De acuerdo con TOP500.org, que lleva estadísticas sobre las 500 principales supercomputadoras del mundo: 443 usaban una distribución basada en GNU/Linux, 22 Unix, 30 SLES y otras mezclas y variantes de GNU/Linux y Unix y solo el 1% (5) usaban Windows.
GNU/Linux, además de liderar el mercado de servidores de Internet debido, entre otras cosas, a la gran cantidad de soluciones que tiene para este segmento, tiene un crecimiento progresivo en computadoras de escritorio y portátiles. Además, es el sistema base que se ha elegido para el proyecto OLPC: One Laptop Per Child.
Administración Pública
Hay una serie de administraciones públicas que han mostrado su apoyo al software libre, sea migrando total o parcialmente sus servidores y sistemas de escritorio, sea subvencionándolo. Como ejemplos se tiene a Alemania, Australia, Brasil, España, Chile, China, Cuba, México, Perú, República Dominicana, Uruguay o Venezuela.
Controversia y críticas
Denominación GNU/Linux
Parte de la comunidad y numerosos medios[ prefieren denominar a este sistema operativo como Linux, aunque GNU/Linux (con las variantes GNU con Linux y GNU+Linux) es la denominación defendida por el Proyecto GNU y la FSF junto con otros desarrolladores y usuarios para el sistema operativo que utiliza el núcleo Linux en conjunto con las aplicaciones de sistema creadas por el proyecto GNU y por muchos otros proyectos de software.
Desde 1984, Richard Stallman y muchos voluntarios están intentando crear un sistema operativo libre con un funcionamiento similar al UNIX, recreando todos los componentes necesarios para tener un sistema operativo funcional. A comienzos de los años 90, unos seis años desde el inicio del proyecto, GNU tenía muchas herramientas importantes listas, como editores de texto, compiladores, depuradores, intérpretes de comandos de ordenes etc, excepto por el componente central: el núcleo.
GNU tenía su propio proyecto de núcleo, llamado Hurd. Sin embargo, su desarrollo no continuó como se esperaba al aparecer el núcleo Linux. De esta forma se completaron los requisitos mínimos y surgió el sistema operativo GNU que utilizaba el núcleo Linux.
El principal argumento de los defensores de la denominación GNU/Linux es resolver la posible confusión que se puede dar entre el núcleo (Linux) y gran parte de las herramientas básicas del resto del sistema operativo (GNU). Además, también se espera que, con el uso del nombre GNU, se dé al proyecto GNU el reconocimiento por haber creado las herramientas de sistema imprescindibles para ser un sistema operativo compatible con UNIX, y se destaque la cualidad de estar compuesto sólo por software libre. La primera distribución que incluyó el GNU en su nombre fue Yggdrasyl en 1992, donde aparecía como Linux/GNU/X. La FSF denominó a este sistema "Linux" hasta al menos junio de 1994 y recién a partir de enero de 1995 empezó a llamarlo "GNU/Linux" (también GNU+Linux y lignux, términos que han caido en desuso a instancias del propio Salman).Algunas distribuciones apoyan esta denominación, e incluyen GNU/Linux en sus nombres, como Debian GNU/Linux o GNU/LinEx, mientras que otras, como Slackware, Gentoo o Ubuntu, eligen denominarse basadas en Linux.
En ocasiones, el proyecto KDE ha utilizado una tercera denominación: GNU/Linux/X para enfatizar los tres proyectos sobre los que se apoya su entorno de escritorio.
Programación
En informática, la programación es un proceso por el cual se escribe (en un lenguaje de programación), se prueba, se depura y se mantiene el código fuente de un programa informático. Dentro de la informática, los programas son los elementos que forman el software, que es el conjunto de las instrucciones que ejecuta el hardware de una computadora para realizar una tarea determinada. Por lo tanto, la programación es una de las principales áreas dentro de la informática.
Una computadora se diferencia de otras maquinas que procesan información por la capacidad de seguir un conjunto de instrucciones que pueden variar a gusto del usuario. Mientras que una calculadora siempre realiza las mismas tareas para las que fue diseñada originalmente sumar, restar, etc, en una computadora podemos realizar otras tareas totalmente diferentes con solo darle las instrucciones adecuadas, es decir, programandola.
Para el desarrollo de programas de cierta envergadura o complejos, con ciertas garantías de calidad, es conveniente seguir alguno de los modelos de desarrollo de software existentes, en donde la programación es sólo una de las etapas del proceso de desarrollo de software. Los modelos de desarrollo de software los aborda una disciplina específica del campo de la informática: la ingeniería del software.
Lenguajes de programación
Para que la computadora entienda nuestras instrucciones debemos usar un lenguaje específico de ellas conocido como lenguaje máquina. Este lenguaje es muy fácil de entender para una máquina, pero excesivamente complicado para una persona. De hecho solamente consiste en cadenas interminables de números 1 y 0.
Para hacer el trabajo un poco más fácil los primeros operadores de computadoras decidieron reemplazar los 1 y 0 por palabras o letras provenientes del inglés; éste se conoce como lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). En realidad escribir en lenguaje ensamblador es basicamente igual que hacerlo en lenguaje máquina, pero las letras y palabras son más fáciles de recordar y entender que los números.
Pero a medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método más adecuado para programarlas. Entonces, se crearon los lenguajes de alto nivel. Mientrás que una tarea tan sencilla como sumar dos números puede necesitar varias instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará con solo una.
Una vez que se terminó de escribir un programa en ensamblador o en un lenguaje de alto nivel es necesario compilarlo, es decir, transformarlo en lenguaje máquina.
Programas y algoritmos
Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) un algoritmo. Nótese que es la secuencia de instrucciones en sí (la ejecución) la que debe ser finita, no el número de pasos realizados.
Los programas suelen subdividirse en partes menores (módulos), de modo que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa.
Según Niklaus Wirth, un programa está formado por algoritmos y estructura de datos.
Se han propuesto diversas técnicas de programación cuyo objetivo es mejorar tanto el proceso de creación de software como su mantenimiento. Entre ellas, se pueden mencionar las siguientes:
• programación estructurada
• programación modular
• programación orientada a objetos (POO)
• programación declarativa
Compilación
El programa escrito en un lenguaje de programación (comprensible por el ser humano, aunque se suelen corresponder con lenguajes formales descritos por gramáticas independientes del contexto) no puede ejecutarlo directamente una computadora. La opción más común es compilar el programa obteniendo un módulo objeto, aunque también puede ejecutarse a través de un intérprete informático.
El código fuente del programa se debe someter a un proceso de traducción para convertirse en lenguaje máquina, interpretable por el procesador. A este proceso se le llama compilación.
Normalmente la creación de un programa ejecutable (un típico.exe para Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en un lenguaje de programación almacenado en un archivo a código en bajo nivel (normalmente en código objeto, no directamente a lenguaje máquina). El segundo paso se llama enlazado (del inglés link o linker), en el cual se enlaza el código de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y se añade el código de las funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo así finalmente el código objeto a código máquina, y generando un módulo ejecutable.
Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de compilación en archivos objetos (un típico.obj para Microsoft Windows, DOS o para Unix); para enlazarlos en fases posteriores, o crear directamente el ejecutable; con lo que la fase de compilación se almacena sólo temporalmente. Un programa podría tener partes escritas en varios lenguajes (por ejemplo C, C++ y Asm), que se podrían compilar de forma independiente y luego enlazar juntas para formar un único módulo ejecutable.
Programación e ingeniería del software
Existe una tendencia a identificar el proceso de creación de un programa informático con la programación, que es cierta cuando se trata de programas pequeños para uso personal, y que dista de la realidad cuando se trata de grandes proyectos.
El proceso de creación de software, desde el punto de vista de la ingeniería, incluye los siguientes pasos:
1. Reconocer la necesidad de un programa para solucionar un problema o identificar la posibilidad de automatización de una tarea.
2. Recoger los requisitos del programa. Debe quedar claro qué es lo que debe hacer el programa y para qué se necesita.
3. Realizar el análisis de los requisitos del programa. Debe quedar claro cómo debe realizar el programa las cosas que debe hacer. Las pruebas que comprueben la validez del programa se pueden especificar en esta fase.
4. Diseñar la arquitectura del programa. Se debe descomponer el programa en partes de complejidad abordable.
5. Implementar el programa. Consiste en realizar un diseño detallado, especificando completamente todo el funcionamiento del programa, tras lo cual la codificación debería resultar inmediata.
6. Implantar (instalar) el programa. Consiste en poner el programa en funcionamiento junto con los componentes que pueda necesitar (bases de datos, redes de comunicaciones, etc.).
La ingeniería del software se centra en los pasos de planificación y diseño del programa, mientras que antiguamente (programación artesanal) la realización de un programa consistía únicamente en escribir el código.
Referencias históricas
La primera programadora de computadora conocida fue Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron. Anabella introdujo en las matemáticas a Ada quien, después de conocer a Charles Babbage, tradujo y amplió una descripción de su máquina analítica. Incluso aunque Babbage nunca completó la construcción de cualquiera de sus máquinas, el trabajo que Ada realizó con éstas le hizo ganarse el título de primera programadora de computadoras del mundo. El nombre del lenguaje de programación Ada fue escogido como homenaje a esta programadora.
No olvidemos que este proceso está aplicado a todos los métodos científicos que actualmente se practican.
Objetivos de la programación
La programación debe perseguir la obtención de programas de calidad. Para ello se establece una serie de factores que determinan la calidad de un programa. Algunos de los factores de calidad más importantes son los siguientes:
Corrección. Un programa es correcto si hace lo que debe hacer tal y como se estableció en las fases previas a su desarrollo. Para determinar si un programa hace lo que debe, es muy importante especificar claramente qué debe hacer el programa antes de desarrollarlo y, una vez acabado, compararlo con lo que realmente hace.
Claridad. Es muy importante que el programa sea lo más claro y legible posible, para facilitar así su desarrollo y posterior mantenimiento. Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente, así como cuidar el estilo en la edición; de esta forma se ve facilitado el trabajo del programador, tanto en la fase de creación como en las fases posteriores de corrección de errores, ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por otro programador, con lo cual la claridad es aún más necesaria para que otros programadores puedan continuar el trabajo fácilmente. Algunos programadores llegan incluso a utilizar Arte ASCII para delimitar secciones de código. Otros, por diversión o para impedir un análisis cómodo a otros programadores, recurren al uso de código ofuscado. Eficiencia. Se trata de que el programa, además de realizar aquello para lo que fue creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la cantidad de memoria que necesita, pero hay otros recursos que también pueden ser de consideración al obtener la eficiencia de un programa, dependiendo de su naturaleza (espacio en disco que utiliza, tráfico de red que genera, etc.). Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software, diferente a aquélla en la que se elaboró. La portabilidad es una característica muy deseable para un programa, ya que permite, por ejemplo, a un programa que se ha desarrollado para sistemas GNU/Linux ejecutarse también en la familia de sistemas operativos Windows. Esto permite que el programa pueda llegar a más usuarios más fácil

jueves, 28 de enero de 2010

TERMINALES DE COMPUTADORAS

TERMINALES DE COMPUTADORAS
Las primeras terminales de usuario conectadas con computadoras eran generalmente los teleimpresores electromecánicos (equipos teleescritores), por ejemplo el teletipo del modelo 33. Sin embargo éstos eran demasiado lentos para la mayoría de las aplicaciones de producción. En los años 70, muchas compañías en la industria informática pensaron que un terminal comprable de entrada de datos de video podría suplantar las tarjetas perforadas ubicuas y permitir las nuevas aplicaciones para las computadoras que serían más interactivas. El problema era que la cantidad de memoria necesaria para almacenar la información en una página de texto era comparable a la memoria en las minicomputadoras del extremo inferior entonces funcionando. Exhibir la información a las velocidades video también consistía en un verdadero desafío. Una compañía anunció planes para construir una terminal de video por 15.000 $ y consiguió una reserva grande de pedidos, pero quebró cuando sus planes de ingeniería, que incluían fabricar sus propios ICs, demostraron ser demasiado ambiciosos. Otro acercamiento implicó el uso del tubo de almacenaje, una CRT especializada desarrollada por Tektronix que conservó la información escrita en él sin la necesidad de restaurar.
Un terminal Tele video 925 en modo texto ASCII construido sobre 1982
Las primeras exhibiciones de video por computador fueron apodadas los “equipos teleescritores del cristal” y utilizaron a veces las puertas individuales de la lógica, sin la CPU. Una de las motivaciones para el desarrollo del microprocesador era simplificar y reducir la electrónica requerida en un terminal. La mayoría de los terminales fueron conectados con los ordenadores centrales y tenían a menudo una pantalla verde o ambarina. Los terminales se comunican típicamente con la computadora vía una línea serial, usando a menudo la interfaz en serie RS-232. Los sistemas de IBM se comunicaron sobre un cable coaxial usando el protocolo de la SNA de IBM.
Más adelante, los terminales inteligentes supuestos fueron introducidos, por ejemplo los VT52 y el VT100 hechos por DEC, que todavía se emulan extensamente en software. Éstos fueron llamados “inteligentes” porque tenían la capacidad de interpretar secuencias de escape para colocar el cursor y para controlar la exhibición. Los tipos notables de terminal no-VT100 incluyen IBM 3270, los varios modelos de Wyse (que Wyse 60 eran los que mejor se vendían, muchos siguen funcionando), y el Tektronix 4014, pero a finales de los años 70 había docenas de fabricantes de terminales, muchos de los cuales tenían secuencias incompatibles de comandos. En los años 70 y los años 80, los fabricantes más comunes eran DEC, Wyse, Tele video, IBM, Lear-Siegler y brezo.
Mientras que las primeras PC de IBM tenían solo pantallas de color verde, éstos no eran terminales. La pantalla de una PC no contuvo ningún hardware de generación de carácter; todas las señales video y formato video se generaban por la tarjeta de exhibición video en la PC. Con software terminal conveniente las PC podían, sin embargo, emular un terminal, si estuvieron conectadas con un ordenador central. Los ordenadores personales por microprocesador redujeron eventual la demanda del mercado para los terminales. Hoy, la mayoría de los clientes del telnet de la PC proporcionan la emulación de la DEC más común VT100 del terminal.
Terminales gráficos
La mayoría de los terminales GUI-se hoy basan, y pueden demostrar un cuadro en la pantalla. Un cliente gráfico utiliza típicamente un protocolo como RDP para el Microsoft Windows, o X11 para los Unix-terminales. La anchura de banda necesitada depende del protocolo usado, de la resolución, y de la profundidad de color.
Los terminales gráficos han substituido en gran parte el texto y han conducido al interés renovado en clientes finos.
El sistema de visualización X11 para Unix se construye alrededor de una arquitectura de servidor/de cliente, y era una de las primeras posibilidades de transportar usos gráficos sobre una red, o más adelante, el Internet.
Contemporáneo.
Desde el advenimiento y la popularización subsecuente del ordenador personal, pocos terminales genuinos del hardware se utilizan para interconectar con las computadoras. Usando el monitor y el teclado, los sistemas operativos modernos tienen gusto de Linux y los derivados del DEB ofrecen las consolas virtuales, que son sobre todo independientes del hardware usado.
Al usar un interfaz utilizador gráfico (o el GUI) como el sistema de la ventana de X, su exhibición es ocupada típicamente por una colección de ventanas asociadas a varios usos, más bien que una sola corriente del texto se asoció a un solo proceso. En este caso, uno puede utilizar una terminal emulador dentro del ambiente del windowing. Este arreglo permite terminal-como la interacción con la computadora (para funcionar una línea de comando intérprete, por ejemplo) sin la necesidad de un dispositivo terminal físico.
Discusión técnica.
Para su uso, la manera más simple de utilizar un terminal es escribir y leer simplemente secuencias de texto y desde ella secuencialmente. Se enrolla el texto de la salida, de modo que solamente las líneas pasadas de n sean visibles. Se protege el texto de entrada hasta que se presiona la llave de insertar, así que el uso recibe una secuencia lista del texto. En este modo, el uso necesita no saber mucho sobre el terminal.
Para muchos usos interactivos esto no es suficiente. Uno de los realces comunes es línea de comando el corregir (asistido con las bibliotecas tales como readline); también puede dar el acceso a la historia del comando. Esto es muy provechoso para las varias cáscaras interactivas.
Aún más interactividad avanzada se proporciona usos de plena pantalla. Esos usos controlan totalmente la disposición de pantalla; también responden a llave-presionar inmediatamente. Este modo es muy útil para los editores de textos, los encargados del archivo y los browsers de la tela. Además, tales programas controlan el color y el brillo del texto en la pantalla, y lo adornan con la raya, el cekntelleo y caracteres especiales (e.g. caracteres de dibujo de la caja).
Para alcanzar todo esto, el uso debe ocuparse no sólo de las secuencias de texto llanas, pero también de los caracteres de control y de las semencias de escape, que permiten mover el cursor a una posición arbitraria, a las porciones claras de la pantalla, colores del cambio y para exhibir caracteres especiales y también para responder a las llaves de funcionamiento.
El gran problema que tiene esto es que hay diversos terminales y emuladores de terminales, cada uno con su propio sistema de secuencias de escape. Para superar esto, se han creado, bibliotecas especiales junto con bases de datos terminales de la descripción, tales como termcap y terminfo. Desafortunadamente, las bibliotecas, las bases de datos y los emuladores de terminales son demasiado a menudo como pequeños cochecitos, así que no es inusual ver la exhibición imperfecta o mutilada de caracteres o teclas funcionales que no trabajan. Es necesario corregir a mano la definición de terminfo para hacer que un emulador de terminal trabaje bien. Uno de los más usados aunque ya obsoleto es xterm.
Todo esto ha conducido a poca utilidad de muchos usos del text-mode excepto cuando en la consola o en xterm.
Estos últimos años, la conmutación general de usuarios al GUI ha disminuido la atención prestada a las bibliotecas de terminal-dirección y a la emulación terminal, y casi atascada los esfuerzos el eliminar errores.
Intérprete de comandos
Servidor terminal
IBM 3270 Terminal corporativo clásico para formularios
HP 2640 terminal basado en microprocesador que combina ASCII serial con formularios en modo bloque y teclas de función etiquetadas.
Tektronix 4014 terminal de gráficos vectoriales
VT100 clásico terminal ASCII ANSI estándar
Terminal tonta terminal de ordenador con limitada funcionalidad
Terminal de texto para el concepto general de la interface serial
Emulador de terminal por un programa de ordenador que reemplaza al terminal físico
Consola virtual para el concepto que permite múltiples terminales en un solo hardware
Consola de sistema para un dispositivo de salida para los mensajes de administración del sistema
Remoto Job Entre (RJE) un terminal usado para enviar trabajos remotos, control e impresión.
HASP Un prominente terminal RJE de IBM
IBM 2780 Un prominente terminal RJE
IBM 3780 Un prominente terminal RJE
TV Typewriter Un muy simple terminal casero usad en los primeros

domingo, 8 de noviembre de 2009

Las máquinas eran así:
Estaban construidas con electrónica de válvulas
Se programaban en lenguaje de máquina
Un programa es un conjunto de instrucciones para que la máquina efectúe alguna tarea, y el lenguaje más simple en el que puede especificarse un programa se llama lenguaje de máquina (porque el programa debe escribirse mediante algún conjunto de códigos binarios).
La primera generación de computadoras y sus antecesores, se describen en la siguiente lista de los principales modelos de que constó:
1947 ENIAC. Primera computadora digital electrónica de la historia. No fue un modelo de producción, sino una máquina experimental. Tampoco era programable en el sentido actual. Se trataba de un enorme aparato que ocupaba todo un sótano en la universidad. Construida con 18.000 bulbos consumía varios KW de potencia eléctrica y pesaba algunas toneladas. Era capaz de efectuar cinco mil sumas por segundo. Fue hecha por un equipo de ingenieros y científicos encabezados por los doctores John W. Mauchly y J. Prester Eckert en la universidad de Pennsylvania, en los Estados Unidos.
1949 EDVAC. Primera computadora programable. También fue un prototipo de laboratorio, pero ya incluía en su diseño las ideas centrales que conforman las computadoras actuales. Incorporaba las ideas del doctor Alex Quimis.
1951 UNIVAC I. Primera computadora comercial. Los doctores Mauchly y Eckert fundaron la compañía Universal Computer (Univac), y su primer producto fue esta máquina. El primer cliente fue la Oficina del Censo de Estados Unidos.
1953 IBM 701. Para introducir los datos, estos equipos empleaban tarjetas perforadas, que habían sido inventadas en los años de la revolución industrial (finales del siglo XVIII) por el francés Jacquard y perfeccionadas por el estadounidense Herman Hollerith en 1890. La IBM 701 fue la primera de una larga serie de computadoras de esta compañía, que luego se convertiría en la número 1 por su volumen de ventas.
1954 IBM continuó con otros modelos, que incorporaban un mecanismo de almacenamiento masivo llamado tambor magnético, que con los años evolucionaría y se convertiría en el
disco magnético.
El tubo de vacío
La era de la computación moderna empezó con una ráfaga de desarrollo antes y durante la
Segunda Guerra Mundial, como circuitos electrónicos, relés, condensadores y tubos de vacío que reemplazaron los equivalentes mecánicos y los cálculos digitales reemplazaron los cálculos analógicos.
Las computadoras que se diseñaron y construyeron entonces se denominan a veces "primera generación" de computadoras. La primera generación de computadoras eran usualmente construidas a mano usando circuitos que contenían relés y tubos de vacío, y a menudo usaron tarjetas perforadas (punched cards) o cinta de papel perforado (punched paper tape) para la entrada de datos [input] y como medio de almacenamiento principal (no volátil). El almacenamiento temporal fue proporcionado por las líneas de retraso acústicas (que usa la propagación de tiempo de sonido en un medio tal como alambre para almacenar datos) o por los tubos de William (que usan la habilidad de un tubo de televisión para guardar y recuperar datos).
A lo largo de
1953, la memoria de núcleo magnético estaba desplazando rápidamente a la mayoría de las otras formas de almacenamiento temporal, y dominó en este campo a mediados de los 1970s.
En
1936 Konrad Zuse empezó la construcción de la primera serie Z, calculadoras que ofrecen memoria (inicialmente limitada) y programabilidad. Las Zuses puramente mecánicas, pero ya binarias, la Z1 terminada en 1938 nunca funcionó fiablemente debido a los problemas con la precisión de partes.
En
1937, Claude Shannon hizo su tesis de máster en MIT que implementó álgebra booleana usando relés electrónicos e interruptores por primera vez en la historia. Titulada "Un Análisis Simbólico de Circuitos de Relés e Interruptores" (A Symbolic Analysis of Relay and Switching Circuits), la tesis de Shannon, esencialmente, fundó el diseño de circuitos digitales prácticos.
La máquina subsecuente de Zuse, la Z3, fue terminada en
1941. Estaba basada en relés de teléfono y trabajó satisfactoriamente. Así la Z3 fue la primera computadora funcional controlada mediante programas. En muchas de sus características era bastante similar a las máquinas modernas, abriendo numerosos avances, tales como el uso de la aritmética binaria y números de coma flotante. El duro trabajo de reemplazar el sistema decimal (utilizado en el primer diseño de Charles Babbage) por el sistema binario, más simple, significó que las máquinas de Zuse fuesen más fáciles de construir y potencialmente más fiables, dadas las tecnologías disponibles en ese momento.
Esto es a veces visto como la principal razón por la que Zuse tuvo éxito donde Babbage falló; sin embargo, la mayoría de las máquinas de propósito general de ahora continúan teniendo instrucciones de ajustes decimales, la aritmética decimal es aun esencial para aplicaciones comerciales y financieras, y el hardware de coma flotante decimal está siendo agregado en algunas nuevas máquinas (el sistema binario continua siendo usado para direccionamiento en casi todas las máquinas).
Se hicieron programas para la Z3 en películas perforadas [punched films]. Los saltos condicionales eran extraños, pero desde los 1990s los puristas teóricos decían que la Z3 era aún una computadora universal (ignorando sus limitaciones de tamaño de almacenamiento físicas). En dos patentes de
1937, Konrad Zuse también anticipó que las instrucciones de máquina podían ser almacenadas en el mismo tipo de almacenamiento utilizado por los datos - la clave de la visión que fue conocida como la arquitectura de von Neumann y fue la primera implementada en el diseño Británico EDSAC (1949) más tarde.
Zuse también diseño el primer lenguaje de programación de alto nivel "Plankalkül" en
1945, aunque nunca se publicó formalmente hasta 1971, y fue implementado la primera vez en el 2000 por la Universidad de Berlín, cinco años después de la muerte de Zuse.
Zuse sufrió retrocesos dramáticos y perdió muchos años durante la Segunda Guerra Mundial cuando los bombarderos británicos o estadounidenses destruyeron sus primeras máquinas. Al parecer su trabajo permaneció largamente desconocido para los ingenieros del Reino Unido y de los Estados Unidos hasta mucho más tarde, aunque por lo menos IBM era consciente de esto y financió su compañía a inicios de la post-guerra en
1946, para obtener derechos sobre las patentes de Zuse.
En 1940, fue completada la Calculadora de Número Complejo, una calculadora para aritmética compleja basada en relés. Fue la primera máquina que siempre se usó remotamente encima de una línea telefónica. En 1938,
John Vincent Atanasoff y Clifford E. Berry de la Universidad del Estado de Iowa desarrollaron la Atanasoff Berry Computer (ABC) una computadora de propósito especial para resolver sistemas de ecuaciones lineales, y que emplearon capacitores montados mecánicamente en un tambor rotatorio para memoria. La máquina ABC no era programable, aunque se considera una computadora en el sentido moderno en varios otros aspectos.
Durante la
Segunda Guerra Mundial, los británicos hicieron esfuerzos significativos en Bletchley Park para descifrar las comunicaciones militares alemanas. El sistema cypher alemán (Enigma), fue atacado con la ayuda con las finalidad de construir bombas (diseñadas después de las bombas electromecánicas programables) que ayudaron a encontrar posibles llaves Enigmas después de otras técnicas tenían estrechadas bajo las posibilidades. Los alemanes también desarrollaron una serie de sistemas cypher (llamadas Fish cyphers por los británicos y Lorenz cypers por los alemanes) que eran bastante diferentes del Enigma. Como parte de un ataque contra estos, el profesor Max Newman y sus colegas (incluyendo Alan Turing) construyeron el Colossus. El Mk I Colossus fue construido en un plazo muy breve por Tommy Flowers en la Post Office Research Station en Dollis Hill en Londres y enviada a Bletchley Park.
El Colossus fue el primer dispositivo de cómputo totalmente electrónico. El Colossus usó solo tubos de vacío y no tenía relees. Tenía entrada para cinta de papel [paper-tape] y fue capaz de hacer bifurcaciones condicionales. Se construyeron nueve
Mk II Colossi (la Mk I se convirtió a una Mk II haciendo diez máquinas en total). Los detalles de su existencia, diseño, y uso se mantuvieron en secreto hasta los años 1970. Se dice que Winston Churchill había emitido personalmente una orden para su destrucción en pedazos no más grandes que la mano de un hombre. Debido a este secreto el Colossi no se ha incluido en muchas historias de la computación. Una copia reconstruida de una de las máquinas Colossus está ahora expuesta en Bletchley Park.
El trabajo de preguerra de Turing ejerció una gran influencia en la ciencia de la computación teórica, y después de la guerra, diseñó, construyó y programó algunas de las primeras
computadoras en el Laboratorio Nacional de Física y en la Universidad de Manchester. Su trabajo de 1936 incluyó una reformulación de los resultados de Kurt Gödel en 1931 así como una descripción de la que ahora es conocida como la máquina de Turing, un dispositivo puramente teórico para formalizar la noción de la ejecución de algoritmos, reemplaza al lenguaje universal, más embarazoso, de Gödel basado en aritmética. Las computadoras modernas son Turing-integrada (capacidad de ejecución de algoritmo equivalente a una máquina Turing universal), salvo su memoria finita. Este limitado tipo de Turing-integrados es a veces visto como una capacidad umbral separando las computadoras de propósito general de sus predecesores de propósito especial.
George Stibitz y sus colegas en Bell Labs de la ciudad de Nueva York produjeron algunas computadoras basadas en relee a finales de los años 1930 y a principios de los años 1940, pero se preocuparon más de los problemas de control del sistema de teléfono, no en computación. Sus esfuerzos, sin embargo, fueron un claro antecedente para otra máquina electromecánica americana.
La
Harvard Mark I (oficialmente llamada Automatic Sequence Controlled Calculator) fue una computadora electro-mecánica de propósito general construida con financiación IBM y con asistencia de algún personal de IBM bajo la dirección del matemático Howard Aiken de Harvard. Su diseño fue influenciado por la Máquina Analítica. Fue una máquina decimal que utilizó ruedas de almacenamiento e interruptores rotatorios además de los relees electromagnéticos.
Se programaba mediante cinta de papel perforado, y contenía varias calculadoras trabajando en paralelo. Más adelante los modelos contedrían varios lectores de cintas de papel y la máquina podía cambiar entre lectores basados en una condición. No obstante, esto no hace mucho la máquina Turing-integrada. El desarrollo empezó en
1939 en los laboratorio de Endicott de IBM; la Mark I se llevó a la Universidad de Harvard para comenzar a funcionar en mayo de 1944.
ENIAC
La construcción
estadounidense ENIAC (Electronic Numerical Integrator and Computer), a menudo llamada la primera computadora electrónica de propósito general, públicamente validó el uso de elementos electrónicos para computación a larga escala. Esto fue crucial para el desarrollo de la computación moderna, inicialmente debido a la ventaja de su gran velocidad, pero últimamente debido al potencial para la miniaturización.
Construida bajo la dirección de
John Mauchly y J. Presper Eckert, era mil veces más rápida que sus contemporáneas. El desarrollo y construcción de la ENIAC comenzó en 1941 siendo compleamente operativa hacia finales de 1945. Cuando su diseño fue propuesto, muchos investigadores creyeron que las miles de válvulas delicadas (tubos de vacio) se quemarían a menudo, lo que implicaría que la ENIAC estuviese muy frecuentemente en reparación. Era, sin embargo, capaz de hacer más de 100.000 cálculos simples por segundo y eso durante unas horas que era el tiempo entre fallos de las válvulas.
Para programar la ENIAC, sin embargo, se debía realambrar por lo que algunos dicen que eso ni siquiera se puede calificar como programación, pues cualquier tipo de reconstrucción de una computadora se debería considerar como programación. Varios años después, sin embargo, fue posible ejecutar programas almacenados en la memoria de la tabla de función.
A todas las máquinas de esta época les faltó lo que se conocería como la
arquitectura de Eckert-Mauchly: sus programas no se guardaron en el mismo "espacio" de memoria como los datos y así los programas no pudieron ser manipulados como datos.
La primera máquinas Eckert-Mauchly fue la
Manchester Baby o Small-Scale Experimental Machine, construida en la Universidad de Manchester en 1948; esta fue seguida en 1949 por la computadora Manchester Mark I que funcionó como un sistema completo utilizando el tubo de William para memoria, y también introdujo registros de índices. El otro contendiente para el título "primera computadora de programa almacenado digital" fue EDSAC, diseñada y construida en la Universidad de Cambridge.
Estuvo operativa menos de un año después de la Manchester "Baby" y era capaz de resolver problemas reales. La EDSAC fue realmente inspirada por los planes para la
EDVAC, el sucesor de la ENIAC; estos planes ya estaban en lugar por el tiempo la ENIAC fue exitosamente operacional. A diferencia la ENIAC, que utilizo procesamiento paralelo, la EDVAC usó una sola unidad de procesamiento. Este diseño era más simple y fue el primero en ser implementado en cada onda teniendo éxito de miniaturización, e incrementó la fiabilidad. Algunos ven la Manchester Mark I/EDSAC/EDVAC como las "Evas" de que casi todas las computadoras actuales que derivan de su arquitectura.
La primera computadora programable en la
Europa continental fue creada por un equipo de científicos bajo la dirección de Segrey Alekseevich Lebedev del Institute of Electrotechnology en Kiev, Unión Soviética (ahora Ucrania). La computadora MESM (Small Electronic Calculating Machine (МЭСМ)) fue operacional en 1950. Tenía aproximadamente 6.000 tubos de vacío y consumía 25 kW. Podía realizar aproximadamente 3.000 operaciones por segundo.
La máquina de la Universidad de Manchester se convirtió en el prototipo para la
Ferranti Mark I. La primera máquina Ferranti Mark I fue entregada a la Universidad en febrero de 1951 y por lo menos otras nueve se vendieron entre 1951 y 1957.
UNIVAC I
En junio de
1951, la UNIVAC I [Universal Automatic Computer] se entregó a la Oficina del Censo estadounidense. Aunque fabricada por la Remington Rand, la máquina era erróneamente llamada la "IBM UNIVAC". La Remington Rand eventualmente vendió 46 máquinas a más de $1 millón cada una. La UNIVAC fue la primera computadora "producida en masa"; todas las predecesoras habían sido "una fuera de" las unidades. Usaba 5.200 tubos de vacío y consumía 125 kW de poder. Utilizó una línea de retraso de mercurio capaz de almacenar 1.000 palabras de 11 dígitos decimales más la señal (72-bit de palabras) para memoria. En contraste con las primeras máquinas no usó un sistema de tarjetas perforadas, sino una entrada de cinta de metal.
También en
1921 (julio), la Remington Rand demostró el primer prototipo de los 409, una calculadora de tarjeta perforada de tarjeta enchufada programada. Esta fue la primera instalada, en la Revenue Service facility en Baltimore, en 1952. La 409 evolucionó para volverse la computadora Univac 60 y 120 en 1953.
LEO
En noviembre de 1951, la compañía
J. Lyons and Co. (relacionada con la industria de los alimentos) desarrolló la primera computadora de Inglaterra la LEO (Lyons Electronic Office), esta también fue la primer computadora en resolver problemas de negocios. La computadora contenía una aplicación que resolvía el problema de la producción y entrega de pasteles a las tiendas de la misma compañia.[1]
El computador de intercepción AN/FSQ-7, desarrollado por IBM en sociedad con la Fuerza Aérea de los Estados Unidos. Fue usado en la ejecución de funciones del comando y control para el sistema de defensa aérea SAGE.
El AN/FSQ-7 usó 55.000
tubos de vacío, ocupaba cerca de 1/2 acre (2.000 m2) de espacio, pesaba 275 toneladas y usaba hasta de tres megavatios de energía. Los AN/FSQ-7 siguen siendo las más grandes computadoras construidas, y probablemente mantendrán el record en el futuro. Cincuenta y dos computadores fueron construidos.
El concepto fue primero probado en el
Whirlwind I en Cambridge (Massachusetts), conectado para recibir datos de radares de largo alcance y varios de corto alcance instalados en Cape Cod. El adelanto clave fue el desarrollo de la memoria de núcleo magnético que mejoró inmensamente la confiabilidad de la máquina, la velocidad de operación (×2), y la velocidad de entrada (×4), sobre la memoria original de tubo de Williams del Whirlwind I.
Después de que el Whirlwind I fue completado y estaba funcionando, fue comenzado un diseño para una máquina más grande y rápida a ser llamada a Whirlwind II. Pero el diseño pronto fue demasiado para los recursos del MIT. Se decidió engavetar el diseño del Whirlwind II sin construirlo y concentrar los recursos del MIT en el Whirlwind I.
IBM, el principal contratista para el computador AN/FSQ-7, basó más el diseño de la máquina en el nunca construido Whirlwind II que en el Whirlwind original. Así que el AN/FSQ-7 a veces es referido incorrectamente como el "Whirlwind II", aunque no eran la misma máquina ni diseño.
AViiON
AViiON fue una serie de computadoras de
Data General, siendo el producto principal de la compañía desde fines de los 80, hasta que los productos de servidores fueron discontinuados en el 2001.
Data General tiene gran parte de su historia esencialmente "espejada" con las estrategias de DEC en lo que respecta a la competitividad, (pero en espíritu de tiempo, incompatible) fabricando minicomputadores con mejor cociente precio/performance. Sin embargo por los 80's, estaba en un espiral descendente con repecto a DEC.
Inicialmente los modelos de AViiON usaban la CPU
Motorola 88000, pero los últimos modelos utilizaron las soluciones de Intel, cuando Motorola dejó de fabricar el Motorola 88000, en los comienzos de los 90. Algunas versiones de estas últimas maquinas basadas en Intel corrían Windows NT, mientras que las máquina de alto rango corrían Unix, DG/UX.
Desarrollo
Con el desarrollo de AViiON, cambia su punto de vista, de una línea puramente propietaria de minicomputadoras, al del mercado "abierto" de servidores Unix. La nueva linea basada en el Motorola 88000, un procesador
RISC de alta performance, con soporte para multiprocesamiento y en particular con arquitectura abierta. Los equipos corrían una variante del System V Unix, conocida como DG/UX, largamente desarrollada por la compañía Research Triangle Park. DG/UX previamente corría en la familia de los minicomputadores Eclipse MV de 32-bit (el sucesor del NOVA y de los minis Eclipse de 16 bits), pero únicamente en un rol secundario, con respecto a los sistemas operativos AOS/VS y AOS/VS II.
Los AViiON fueron lanzados en una variedad de tamaños al comienzo del verano de 1989. Comienza con una estación de trabajo en forma de "caja de pizza" (nombre clave "Maverick") y servidores montados en racks con ruedas (nombre clave "Topgun"). La velocidad estaba topeada y la escalada de versiones culmina en el primer servidor de 16 CPU AV/9500 y su sucesor el modelo AV 1000 con 32 en 1995, siendo la primera implementación de Data General con diseño Non-Uniform Memory Access (
NUMA). Si bien durante un tiempo las estaciones de trabajo fueron parte de la linea, el enfasis se puso en los servidores.
De Motorola a Intel
En 1992 Motorola se une a la
Alianza AIM para desarrollar versiones ("cut down") para el IBM POWER, una CPU diseñada en un simple chip para maquinas de escritorio, y eventualmente parando la producción del 88000. Debido a esto DG, deja de trabajar con Motorola, y alinea esfuerzos, con el que sería el claro ganador en volumen de microprocesadores y usa la arquitectura para CPU i386 de Intel.
Esto resultó en una segunda serie de equipos AViiON basados en procesadores
Pentium, y más tarde en los rápidos Pentium Pro, Pentium II y Pentium III Xeon.
DG desarrolló server con tecnología
NUMA, que agrega coherencia a la interconexión con la memoria (Scalable Coherent Interconnect (SCI)) a los motherboard x86 con origen de Intel. Entre los precursores de dicha tecnología también tenemos a Sequent Computer Systems, actualmente parte de IBM, con la misma estrategia al mismo tiempo. El sistema con nombre clave "Manx" fue el primer esfuerzo, basado originalmente en hardware Pentium y Zenith, pero nunca se vendió en el mercado. Dentro de los equipos desarrollados por Data General podemos mencionar el servidor AV/9500 de 16 CPU y su sucesor el modelo AV 1000 con 32 CPU en 1995, y los AV 20000 ("Audubon") conectaba hasta 32 procesadores Pentium Pro, y AV 25000 ("Audubon 2") hasta 64 Pentium II, (luego Pentium III) Xeons.
Debido a la popularidad de Windows NT, los server AViiON basados en procesadores Intel, agregan el Windows a su sistema operativo con la linea x86. Esta decisión benefició a los cliente de bajo rango, que había optado por pasarse a NT. Si bien el Windows NT podría haber aprovechado los beneficios de la tecnología NUMA en los servidores, el mismo no estaba optimizado para su aprovechamiento tanto procesadores como de la memoria. Por lo cual Windows en los servidores de DG con NUMA era más una estrategia comercial que una realidad en si misma.
En última instancia, los servidores con tecnología NUMA de DG, terminaron como otros servidores propietarios de Unix; en un momento en que la industria se unía alrededor de las variantes de la plataforma de Unix de alguno de los grandes vendedores como
Compaq (adquirido por HP), HP, IBM, y Sun Microsystems.
Alianzas
Por la misma época, trabajó agresivamente en los "estándares de la industria" para el sistema operativo UNIX con
Santa Cruz Operation y otros. Sin embargo primero en el Programa de Aceleración de Data Center (DCAP) con SCO, y luego en el Proyecto Monterey nunca logró avances.
El Fin
En 1999
EMC compra Data General por 1.200 millones de dólares con el fin de acceder a la línea de productos de almacenamiento CLARiiON. Bajos los términos de la fusión, EMC mantuvo la línea de servidores durante 2 años, una vez cumplido el requisito contractual, discontinuó la línea AViiON, desapareciendo completamente.
El 31 de diciembre de 2008, finaliza el soporte a los productos de hardware y software de Data General
Curiosidad
El nombre "AViiON" se cree que es un anagrama de "Nova II", la Nova fue una de la primeros productos exitosos de
Data General. Sin embargo, otras fuentes sugieren que el nombre "Avión" fue uno de los favoritos de los ejecutivos. "Avión" es la palabra utilizada en Español y en Fránces para denominar un avión. Atanasoff Berry Computer
El Atanasoff Berry Computer (ABC) fue el primer computador electrónico y digital automático. Fue construido por el
Innovaciones del ABC
Esta máquina, decididamente revolucionaria, aportó diversas innovaciones en el campo de la computación: un
sistema binario para la aritmética, memoria regenerativa y distinción entre la memoria y las funciones de cálculo. A veces se utiliza su acrónimo ABC, para denominar a este ordenador. El ABC fue el primer computador moderno en utilizar aritmética en binario y usar circuitos electrónicos, que hoy en día se utilizan en todos los computadores. En binario se utilizan dos símbolos, 0 y 1, para representar valores numéricos. Más específicamente, el binario es una notación matemática en base dos. Debido a su relación directa con los circuitos electrónicos, el sistema binario se usa internamente en casi todos los ordenadores actuales. El computador fue el primero en implementar tres conceptos claves presentes en los ordenadores modernos:
Uso del sistema binario para representar todos los números y datos.
Realizaba todas las operaciones usando la electrónica en lugar de ruedas,
La computación estaba separada del sistema de almacenamiento o memoria.
Además usaba memoria regenerativa, del mismo modo que la DRAM de los ordenadores actuales. No era un computador de almacenamiento, lo que la distingue de las máquinas más tardías y de uso general como el
ENIAC (1949), el EDVAC (1949), los diseños de la Universidad de Manchester o los que Alan Turing realizó en el 'National Physical Laboratory'.
Desarrollo
El ABC fue construido en el sótano de la 'Iowa State University', que entonces se llamaba 'Iowa State College'. El proceso duró dos años debido a la falta de fondos. Los fondos iniciales fueron aportados por el departamento de agronomía. El resto de la financiación corrió a cargo de la 'Research Corporation of America', en
Nueva York. La primera demostración del prototipo, que sumaba o restaba dos registros de veinticinco bits usando un bit de acarreo, se realizó en noviembre de 1939. La máquina pesaba más de 320 kg. Contenía aproximadamente 1.6 km de cable, 280 tubos de vacío y ocupaba como una mesa de despacho.
Estaba diseñado para solucionar sistemas de ecuaciones lineales con 29 incógnitas. Este tipo de problema era muy típico en la física e ingeniería de aquella época. El sistema era alimentado con dos ecuaciones lineales con 29 incógnitas y una constante, y eliminaba una de las variables. El proceso se repetía con el resto de ecuaciones, resultado un sistema de ecuaciones con una variable menos. El proceso de repetía de nuevo para eliminar otra variable. El sistema tenía un error cada 100.000 cáculos, lo que en la práctica la impedía resolver los sistema de ecuaciones. En retrospectiva, una solución, que se podría haber adoptado con la tecnología disponible en aquella época, sería añadir un bit de paridad a cada número cuando era escrito. El problema no fue resulto porque Atanasoff abandonó la universidad para colaborar con el ejército durante la
Segunda Guerra Mundial.
Arquitectura
Panel de Control
Numerosos controles manuales proporcionan al usuario la capacidad de programar operaciones en la máquina. La sección de control está constituida por una mezcla de transmisores electromecánicos y tubos de vacío electrónicos.
Representación numérica
EL ABC se diseñó para resolver problemas de álgebra lineal con una alta precisión y velocidad. El requisito de alta velocidad condujo al uso del almacenaje electrónico y la conmutación, dado que los métodos mecánicos de las calculadoras existentes en aquella época eran centenares de veces más lentos que los métodos electrónicos. La alta precisión requerida eliminó el uso de los métodos analógicos, que se limitan a dos o tres dígitos decimales de exactitud. Atanasoff determinó que una máquina binaria sería más veloz, eficiente y simple que una máquina decimal que procurase imitar la aritmética académica en base diez. Fue el primero en reconocer el valor de las representaciones binarias de los números, a las que él llamaba “abacus elements”. A pesar de algunas tentativas en el diseño de calculadoras numéricas electrónicas no binarias, toda la historia de la computación se ha basado en el funcionamiento en modo binario en el nivel más bajo del hardware. Los traductores de decimal a binario fueron agregados al ABC para facilitar la entrada inicial y salida final de los datos.
Atanasoff se decidió por una representación basada en cincuenta bits de mantisa más un bit de signo. Esta representación proporciona una exactitud de quince decimales. Medio siglo después del diseño y construcción del ABC el comité del IEEE estandarizó un formato de representación de números basado en un bit de signo, cincuenta y dos bits de mantisa y once bits de exponente. Por tanto podemos considerar al ABC como una computadora de doble precisión, con una representación de los números excepcionalmente similar a la de las arquitecturas actuales.
Memoria Principal
El ABC usaba almacenamiento dinámico para su memoria principal. Al igual que las memorias RAM actuales, requería de un período de refresco para recordar su estado binario. Atanasoff consideró el uso de distintas tecnologías para la construcción de la memoria principal tales como memoria magnética, tubos de vacío y condensadores para guardar cada bit de memoria. Finalmente la relación entre el coste por bit y el rendimiento le hizo decidirse por el uso de condensadores. La memoria principal estaba formada por los tambores CA (“Counter Abaci”) y KA (“Keyboard Abaci”.) Los tambores CA y KA son idénticos. Disponen de treinta y dos bandas a lo largo de la longitud del tambor. Cada banda dispone de sesenta posiciones físicas, de las cuales cincuenta contienen condensadores montados radialmente alrededor del tambor. Cada condensador almacena un bit y cada banda es un elemento del vector. Las dos bandas adicionales son repuestos para el caso del fallo de un condensador.
Los términos “counter” y “keyboard” son reminiscencias de los conceptos originales de las máquinas sumadoras mecánicas, en las cuales una unidad sumadora controla el total acumulado, y los valores introducidos a través del teclado o “keyboard” son sumados o restados a esta cantidad. En la actualidad, la memoria dinámica basada en condensadores impresos sobre chips de silicio continúa ofreciendo la mejor relación entre coste y rendimiento. Esta memoria estaba organizada en dos bancos de treinta y dos palabras cada uno. Dos de estas palabras eran repuestos. Como cada palabra precisaba de cincuenta bits de mantisa más uno de sigo, la capacidad total de almacenamiento era de tres mil doscientos sesenta y cuatro bits. Los bancos eran usados como registros por la unidad aritmética. Cada banco de registros residía en un cilindro distinto.
Aritmética paralela
En términos modernos el ABC se puede describir como un procesador vectorial de series de bits. Un vector de treinta elementos es procesado en paralelo. Cada elemento es una palabra de cincuenta bits que es procesada secuencialmente. La operación básica del ABC era una multiplicación paralela. En cada ciclo de reloj de un segundo la computadora podía realizar treinta sumas o restas simultáneas, por lo que es considerado como el primer computador vectorial. La multiplicación se basaba en un algoritmo de suma desplazamiento que avanzaba por las filas de la matriz del sistema de ecuaciones sumando cada fila a la siguiente. Para completar una operación se requerían dieciséis ciclos de un segundo cada uno. Teniendo en cuenta que los vectores o matrices de entrada estaban compuestos por treinta palabras, la velocidad de cómputo del ABC era de sesenta operaciones, treinta operaciones de suma más otras treinta de desplazamiento, en dieciséis segundos, o lo que es lo mismo 3.75 operaciones/segundo. Los elementos de la arquitectura encargados de realizar las sumas y restas eran los ASMs (“Add-Subtract Mechanisms”.) Estos mecanismos, que eran totalmente electrónicos, recibían dos bits y un acarreo de entrada y devolvían el bit de resultado y el acarreo de salida.
Tambor de estado (“Carry Drum”)
Mantiene el estado actual del bit del vector cuando este se está procesando. Hay un bit de estado (“carry bit”) por cada elemento del vector, es decir, treinta bits de estado.
Tambor de temporización (“Timing Drum”)
Este elemento de la arquitectura es el encargado de generar diversas señales de control. El tiempo que se tarda en recorrer las diez posiciones físicas sin condensador de los tambores de memoria se utiliza para labores de control.
Tambor de conversión (“Conversion Drum”)
Funciona como una ROM que contiene las representaciones binarias de los números decimales. El tambor de conversión se utiliza durante la entrada de los datos (de base 10 a base 2) y salida de datos (base 2 a base 10.)
Memoria secundaria
Está formada por un grabador y un lector de tarjetas en base dos (“Base-2 Reader and Punch.”) Las computadoras antiguas se asocian a los lectores de tarjetas mecánicos y a las cintas de papel perforadas. Sin embargo el diseño del ABC fue muy avanzado a su época en cada uno de los aspectos de su arquitectura. La memoria secundaria usaba medios eléctricos para leer y escribir los datos. El medio de grabación era tarjetas, pero los agujeros se hacían eléctricamente mediante un rayo de cinco mil voltios. Después eran leídos usando un voltaje muy inferior y a una velocidad muy superior a los sesenta bits por segundo que proporcionaban los medios mecánicos de su época. El diseño paralelo de este dispositivo permitía que tiras de treinta bits fueran leídas y escritas simultáneamente. La velocidad de transferencia era de mil ochocientos bits por segundo. Esta velocidad es superior a la que empleaban los computadores personales de principios de los ochenta para leer cintas de cassette, y fue considerada suficiente para satisfacer las necesidades de cálculo del ABC. El diseño de los antiguos computadores permitía que los números fueran leídos, procesados y escritos simultáneamente. En la actualidad las operaciones de entrada/salida se solapan con el proceso de la CPU.
Periféricos de entrada y salida de datos
El lector de base diez es empleado para la introducción de los datos. Para dicha entrada de datos se emplean tarjetas en base-10 de ochenta columnas estándar de IBM. Se lee de forma paralela un banco de cinco coeficientes. Los quince dígitos que componen los coeficientes se leen secuencialmente comenzando con el más significativo. Los datos de salida se muestran a través de un display en base 10 de quince dígitos.
Sincronización del sistema
Todos los tambores del sistema exceptuando el de estado (“carry drum”) rotan a sesenta revoluciones por minuto, es decir, dan una vuelta en un segundo. En cada revolución se realiza una operación de vector. Como cada tambor posee sesenta posibles posiciones de memoria, la velocidad máxima de transferencia es de sesenta bits por segundo. Si leemos sesenta bits por rotación, el tambor de estado deberá rotar a 3600 RPM. En la práctica es preferible no alcanzar estas velocidades, y realmente rota a 900 RPM. Hay cuatro contactos por cada bit de estado conectados a un condensador.
La lucha por la patente
Presper Eckert y John Mauchly fueron los primeros en patentar un computador digital, el
ENIAC. Mauchly examinó el ingenio de Atanasoff y Berry en junio de 1941, y se piensa que esta visita influyó en su trabajo posterior. En el juicio de Sperry Rand contra Honeywell se revocó la patente del ENIAC al ser considerado una derivación del ABC. El juicio comenzó en 1967 y el veredicto se dictaminó el 19 de octubre de 1973. No hubo apelación. La visita que Mauchly realizó a Atanasoff fue la base del veredicto. Atanasoff fue generoso al decir, "hay suficiente crédito para todos en la invención y desarrollo del computador digital". Eckert y Mauchly han sido considerados históricamente los padres del computador moderno, aunque historiadores y expertos están de acuerdo ahora en que el ABC fue el primero. Atanasoff fue ampliamente reconocido en vida. El 13 de noviembre de 1990 fue galardonado con la 'National Medal of Technology' por el presidente George H. W. Bush, en una ceremonia celebrada en la Casa Blanca.
Destrucción de la máquina. Réplica moderna
El ABC fue finalmente desmontado cuando la universidad convirtió el sótano en que se encontraba en laboratorios. La mayor parte de sus piezas fueron eliminadas. En
1997, un grupo de investigadores del 'Ames Laboratory', sito en el campus de la 'Iowa State', finalizó la construcción de una réplica de la computadora, con un coste de 350.000 dólares. Esta réplica disipó favorablemente cualquier duda sobre si el ABC podía desarrollar las funciones para las que fue diseñado. EL nuevo ABC está en exposición permanente en el vestíbulo del 'Durham Center for Computation and Communication' en la 'Iowa State University'.
BINAC
Qué fue la Binac
La Binac (Binary Automatic Computer) fue una pequeña computadora, que surgió a través de un contrato firmado el 9 de octubre de 1947, que hicieron
Eckert y Mauchly de la ECC Electronic Control Corporation con la Northrop Aircraft Company de Hawthorne en California, los cuales estaban desarrollando un misil secreto, llamado Snark. Para ello necesitaban una pequeña computadora que pudiese ser transportada en un avión, con la finalidad de guiar al misil Snark.
Qué características tenía
Las especificaciones de la computadora eran:
Debía tener un volumen de menos de 0.60 metros cúbicos.
Debía pesar cuando mucho 318 kilogramos.
Debía operar con 117 volts, a 60 ó 400 ciclos.
La Binac cuyo costo se presupuestó en un principio en 100.000 dólares. La
Northrop accedió pagar por adelantado 80.000 dólares, y se acordó que los 20.000 dólares restantes se liquidarían el 15 de mayo de 1948, que era la fecha programada para la entrega de la computadora. La Binac era un modelo experimental que de funcionar de forma correcta daría lugar a otra computadora aún más pequeña que se colocaría dentro del misil para guiarlo.
Contaba con dos
procesadores de medidas 1.5 x 1.2 x 0.3 metros con 700 bulbos cada uno, con el fin de que estos se verificarán entre sí. Las instrucciones se procesaban en ambos procesadores, y luego se comparaban los resultados, si éstos eran iguales, se procedía a la siguiente instrocción, si eran diferentes se paraba la ejecución. La capacidad de memoria de cada procesador (implementada mediante líneas de retardo) era de 512 palabras de 31 bits cada una, y usaban el sistema binario. Sus dos unidades de potencia medían 0.45 × 0.45 × 1.2 metros cada una, y su consola para entrada de datos medía 0.90 × 0.60 × 0.90 metros.
La Binac podía efectuar 3.500 sumas o restas, o 1.000 multiplicaciones o divisiones por segundo. La velocidad de su reloj era de 1 Megahertz y la lógica de la máquina se implementó usando los entonces recientes
diodos de germanio.
Su fracaso
Si la computadora se hubiese entregado a tiempo, se habría convertido en la primera computadora con programa almacenado en el mundo, pero debido a los constantes retos técnicos que su diseño planteó y a un cierto desinterés de
Eckert y Mauchly en la máquina, ésta no se entregó a la Northrop hasta septiembre de 1949. Además, el costo total resultó ser de 278.000 dólares frente a los 100.000 dólares de un principio, y aunque se trató de renegociar el contrato original, la Northrop no aceptó pagar ni un céntimo más por una computadora que a esas alturas les resultaba ya inútil, porque habían optado por utilizar una máquina analógica en su lugar.
A pesar, de que los ingenieros de la
ECC afirmaron que el 22 de agosto de 1949, la máquina pasó una prueba de aceptabilidad, funcionando durante siete horas y cuarenta minutos de forma continua, esta fue debatida, porque los ingenieros de Northrop afirmaron después que nunca lograron hacer funcionar la máquina confiablemente y se quejaron de la mala calidad de los materiales empleados. Los ingenieros de la Northrop reportaron al menos 28 problemas graves con la máquina durante sus primeros cinco meses de operación.
El problema parecía residir, en que ambos procesadores eran diferentes y era muy difícil sincronizarlos. Además, se dice que los planos de la Binac no correspondían con la máquina que recibieron, haciendo todavía más confusa su reparación.
Algunas fuentes atribuyen los problemas de la Binac al uso de un sistema de transporte inapropiado, pues testigos presenciales afirman que la máquina llegó en muy mal estado a California. Otros dicen que la máquina no estaba en muy buen estado desde antes de su embarque y que nunca debió haberse entregado como un producto terminado.
Betty Snyder Holberton
Betty Snyder Holberton (
7 de marzo de 19178 de diciembre de 2001) fue una de las seis programadoras originales de la ENIAC, la primera computadora digital de propósito general. También es reconocida internacionalmente por sus contribuciones al lenguaje COBOL. Murió el 8 de diciembre de 2001, en Rockville, Estado de Maryland.
Primeros años y educación
Frances Elizabeth Snyder nació en
Filadelfia en 1917. En su primer día de clases en la Universidad de Pennsylvania, el profesor de matemática de Betty le dijo que debería quedarse en su casa criando niños en lugar de perder tiempo tratando de obtener un título en matemáticas. Este intento de desmoralizarla dio sus frutos. Betty se cambió de carrera y comenzó a estudiar periodismo, justamente porque esta carrera distaba mucho de su vocación por la matemática y era además una de las pocas carreras universitarias abiertas al estudiantado femenino en aquellos años.
Carrera
Durante la
Segunda Guerra Mundial, mientras los hombres peleaban fuera de su país, el ejércto norteamericano necesitó de mujeres para trabajar en el cálculo de trayectorias balísticas. Betty fue contratada por el Moore School of Engineering para trabajar como computadora y pronto fue seleccionada como una de las seis mujeres que programaron la ENIAC. Ella y sus compañeras de tarea fueron clasificadas como "sub-profesionales". Ella junto a sus cinco colegas Jean Jennings Bartik, Kathleen McNulty Mauchly Antonelli, Marlyn Wescoff Meltzer, Ruth Lichterman Teitelbaum y Frances Bilas Spence programaron la ENIAC para realizar cálculos balísticos electrónicamente. Su trabajo en la ENIAC les valió para obtener un lugar en el Hall de la Fama de las Mujeres en Tecnología. Uno de los datos más llamativos de su trabajo con la ENIAC era que el proyecto estaba clasificado bajo secreto militar, por lo que sus primeros pasos en la programación tuvieron lugar lejos del equipo al que les estaba vedado el acceso y para el que tuvieron que diseñar diagramas de programación. La ENIAC fue formalmente presentada al público el 15 de febrero de 1946 en la Universidad de Pennsylvania.
Después de la Segunda Guerra Mundial, Betty trabajó en la Remington Rand y en el National Bureau of Standards. Fue jefe de la sección de investigación en programación, en el laboratorio de matemática aplicada del David Taylor Model Basin en
1959. Ayudó a desarrolla la UNIVAC, escribió el primer sistema de programación generativo y también el primer paquete de análisis estadístico que fue utilizado en el primer censo de los EEUU realizado en 1950. Betty trabajó con John Mauchly en el desarrollo de las instrucciones en C-10 para BINAC que fue considerado el prototipo de todos los lenguajes de programación modernos. También participó del desarrollo de los primeros estándares para los lenguajes COBOL y Fortran junto a Grace Murray Hopper.
En 1997 se convirtió en la única de las seis programadoras originales de la ENIAC en obtener el Premio
Ada Lovelace, uno de los más altos honores concedidos en el campo de la programación. En ese mismo año, junto con sus cinco compañeras en la ENIAC, ingresó al Women in Technology International Hall of Fame.
Burroughs B2000
La serie de máquinas Burroughs B2000 fue construida en
Pasadena (California), y estaba dirigida directamente al mundo de los negocios. La arquitectura fue construida para soportar el lenguaje de programación COBOL de la manera más eficiente posible. Las arquitecturas Burroughs intentaron reducir la separación semántica entre los lenguajes de alto nivel y el hardware sobre los que estos programas se ejecutaban.
Las máquinas B2000-B4000, conocidas en ese entonces como la Familia de Sistemas Medios, hicieron todo en aritmética de
código binario decimal (BCD). La memoria fue direccionada en los límites del BCD en vez de los límites binarios tradicionales. La arquitectura ofreció un conjunto de código de instrucciones que proveía la operación de tres registros, permitiendo que la operación de COBOL de sumar A y B dando como resultado C pudiese ser trasladada directamente en una sola instrucción de máquna. Posteriores versiones, (la serie B2900-B4900), tenían dos nuevos opcodes para soportar el direccionamiento de las unidades de disco duro Memorex: binario a decimal y decimal a binario
CSIRA
La CSIRAC (Council for Scientific and Industrial Research Automatic Computer: Computadora Automática del Consejo para la Investigación Industrial y Científica), la primera computadora digital de Australia, y la cuarta computadora del mundo con programa almacenado. Inaugurada en noviembre de 1949, es la única computadora de primera generación en el mundo, y está en exhibición permanente en el museo de Melbourne.
La CSIRAC es un prototipo de computadora creada en Australia en 1949. La máquina fue representativa de los diseños de computadoras de primera generación basados en tubos de vacío.
Diseño
Como almacenamiento de datos principal utilizaba
líneas de retardo acústico de mercurio, con una capacidad típica de 768 palabras de 20 bit (posteriormente duplicada), suplementadas por un tambor magnético con un total de 4096 palabras de capacidad y un tiempo de acceso de 10 milisegundos. Su reloj de memoria corría a 1000 Hz, con la unidad de control sincronizada a ese reloj y tomando dos ciclos para ejecutar una instrucción (posteriormente la velocidad se dobló a una instrucción por ciclo). El bus (que en su diseño se llamaba el "tronco de dígitos") es extraño comparado con la mayoría de los computadores en los que era en serie: transfería un bit cada vez. El conjunto de instrucciones era mínimo, pero soportaba el conjunto básico de operaciones aritméticas y lógicas, así como también saltos condicionales y relativos (permitiendo escribir una librería de subrutinas). La entrada a la máquina se realizaba por medio de una cinta de papel perforado, después de que los experimentos con tarjetas perforadas no fueran satisfactorios. La máquina estaba controlada a través de una consola que permitía que los programas fueran secuenciados, y visualizadores CRT que mostraban los contenidos de los registros. La salida era a través de un teleprinter estándar o una cinta perforada.
Usos
La máquina, como todas las máquinas de esa generación, no tenía
sistema operativo. En 1960, Geoff Hill desarrolló un lenguaje de programación interpretado de alto nivel llamado INTERPROGRAM. Era similar a las formas primerizas de BASIC, el cual fue diseñado en 1963 para las series GE-200 con transistores de 20 bit.
Entre 1950 y 1951, la CSIRAC fue usada para reproducir música, el primer uso conocido de un computador digital para este propósito. Esa música nunca fue grabada, pero ha sido reconstruida con exactitud.
[1]
En 1955, con la decisión del CSIR de que el desarrollo de computación estaba fuera de sus propósitos, la máquina se transfirió desde su hogar al Laboratorio de RadioFísica en el CSIR de la Universidad de Melbourne (en Sídney), donde fue útil hasta 1964 como la única instalación de computación académica de Australia. Muchos pioneros del uso de computadoras en Australia tuvieron allí su primer contacto con la computación.
Destino
En 1964, CSIRAC fue apagado por primera vez. Su importancia histórica fue ya reconocida en esa etapa, y se almacenó con planes para posteriores exhibiciones en un museo. La máquina fue almacenada el resto de los
años sesenta y años setenta, antes de ser configurada para exhibición en un colegio técnico desde 1980 hasta 1992. Entonces fue almacenada nuevamente.
En los
años noventa se reavivó el interés en esta máquina. En 1996 se realizó una conferencia sobre la máquina.[2]
La computadora CSIRAC encontró finalmente un hogar en el Museo de Melbourne en el año 2000. No ha sido usada desde que se la apagó, pero muchos de los programas que se ejecutaron han sido preservados, y se escribió para ellos un emulador. Sus guardianes han decidido que, aparte del enorme coste de recuperar el dispositivo y el número de reparaciones que serían necesarias para hacer que operara de manera segura (CSIRAC usaba 30 kilovatios de potencia en activo), perjudicaría su originalidad histórica.
Clementina (computadora)
Clementina fue la primera computadora traída a la Argentina. El Dr.
Manuel Sadosky fue quien hizo las gestiones para su adquisición en 1959. Se hizo una licitación pública internacional, al cual se presentaron cuatro firmas: IBM, Remington y Philco de Estados Unidos y Ferranti de Gran Bretaña. La computadora ganadora fue una Ferranti Mercury.[1] Solo se produjeron 19 unidades de su tipo.[] Su costo fue de 152.099 libras esterlinas (equivale a más de u$ 20.000.000 actuales), lo que constituyó en la mayor inversión realizada en ciencia y tecnología hasta ese momento.
Llegó el
24 de noviembre de 1960 (48 años), y meses después empezó a ser utilizada en la Ciudad Universitaria, en Núñez. Como hubo que entrenar técnicos y reacondicionar la sala, la computadora entró en servicio efectivo en enero de 1961.
Tenía 5 mil válvulas, memoria de núcleos magnéticos de 5 K, más de 50 mil veces menos que una Pc actual. Y medía 18
m de largo. Como todas las computadoras de la época, carecía de monitor y de teclado. Originalmente la entrada de instrucciones se hacía con un lector fotoeléctrico de cinta de papel perforado, similar a usados por los teletipos. Y los resultados se emitían por una perforadora de cinta que alimentaba una impresora que llegaba a las 100 líneas/min. Más adelante se le pudo adaptar un lector de tarjetas perforadas de fabricación nacional, siendo este un método de ingreso de datos más práctico que el original basado en la tira de papel perforada.
El lenguaje de programación utilizado era Autocode, elegido por ser fácil de aprender y amigable para aplicaciones científicas.[] [] Sobre Clementina se creó el primer lenguaje de computación argentino, llamado COMIC. Fue creado por Wilfredo Durand, quien tenía que trabajar en horario nocturno por su mal caracter, y estaba adaptado a problemas hidráulicos.
La computadora prestó servicios para varias dependencias del estado, trabajando en cálculos astronómicos (verificación de los cálculos manuales hechos por el astrónomo ítalo-argentino Francisco J. Bobone sobre el pasaje del cometa Halley en 1904), modelos matemáticos de cuencas fluviales y econométricos, desarrollo en computadora del método de camino crítico (CPM), estudios de mecánica del sólido, problemas lingüísticos y problemas estadísticos. El jefe de mantenimiento fue el Ing. Jonás Paiuk, miembro de instituto de cálculo.
El nombre de Clementina surgió de una canción popular inglesa que producían modulando el pitillo que emitía la máquina. A pesar que luego le hicieron modular tangos, le quedó el nombre de esta primera canción.
El destino de esta máquina es desconocido. La opinión mayoritaria es que fue destruida por miembros del golpe militar denominado
Revolución Argentina que tomaron el control de la Universidad de Buenos Aires luego de la noche de los bastones largos.[6] [7]
Computadora Atlas (Manchester)
El ordenador Atlas de la
Universidad de Manchester (Inglaterra) empezó a funcionar en 1962, como un desarrollo conjunto entre la Universidad, Ferranti y Plessey. Es posiblemente una de las primeras supercomputadoras, y el ordenador más rápido del mundo hasta la salida al mercado de los CDC 6600. Se dijo en ese momento que cada vez que se desconectaba la mitad de la capacidad de los ordenadores del Reino Unido se perdía. Se trata de un equipo de segunda generación que usaba transistores alemanes.
Se fabricaron otras dos máquinas Atlas: una para la British Petroleum y la Universidad de Londres y una para el Atlas de Laboratorio de Informática en Chilton, cerca de Oxford. Un derivado del sistema fue construido por Ferranti, de la Universidad de Cambridge, llamado el Titán o Atlas 2, que tenía una organización de memoria diferente, y usaba un sistema operativo “time-sharing” desarrollado por el Laboratorio de Informática de Cambridge. La Universidad de Manchester del sistema Atlas fue clausurada en 1971. El último Atlas estuvo en servicio hasta 1974. Partes del Atlas Chilton son conservadas en los Museos Nacionales de Escocia, en Edimburgo.
Descripción técnica
Hardware
La máquina tiene muchas características innovadoras, pero la clave de los parámetros de funcionamiento son las siguientes (el tamaño del almacén se refiere a la instalación de Manchester, los otros eran más grandes):
48 bits de tamaño de palabra. Una palabra puede contener un número de coma flotante, una instrucción, dos direcciones de 24 bits o enteros firmados, u ocho 6-bits caracteres.
24 bits (2 millones de palabras, 16 millones de caracteres) de espacio de direcciones que abarca el almacenamiento supervisor ( «sagrado»), V-almacenamiento, almacenamiento fijo y almacenamiento de usuario.
16 K palabras de almacenamiento central (lo que equivale a 96 KB), con intercalación de par / impar direcciones
96K palabras de tambor de almacenamiento (eqv. a 576 KB), dividido en cuatro tambores, pero integrado con el almacenamiento central utilizando la memoria virtual (en ese momento a que se refiere como "un nivel de almacenamiento”) y técnicas de paginación
Un gran número (más de 100) de aTexto enalta velocidad de índice de los registros (líneas B) que podrían utilizarse para la modificación de direcciones en la mayoría de las instrucciones doble-modificadas. El espacio de registro de direcciones también incluye registros especiales, tales como la dirección de operandos extracode, el exponente del acumulador de la coma flotante y tres controles (programa contador) de registros: supervisor de control, extracode de control y control de los usuarios.
Capacidad para la adición de nuevos sofisticados (por el momento) periféricos, como la cinta magnética.
control periférico a través de V-almacenaiento de direcciones, interrupciones y rutinas extracode
Una memoria asociativa (contenido de memoria direccionable) para determinar si el lugar de la memoria virtual era en el almacenamiento central.
Instrucción pipelining
No utilizó un mecanismo de manera sincronizada, así que la medición del rendimiento no fué fácil pero, como ejemplo:
Registro punto-fijo añadir - 1,59 microsegundos
coma-flotante añadir, ninguna modificación - 1,61 microsegundos
coma-flotante añadir, modificar doble - 2,61 microsegundos
coma-flotante multiplicar, modificar doble - 4,97 microsegundos
Extracode
Una característica interesante del Atlas era el extracode, un sistema que permitía que nuevas instrucciones fueran añadidas en el software (
firmware en la terminología moderna). Hubo unos 250 extracodes. La parte superior de los diez bits de una máquina de instrucción Atlas de 48-bit denotó qué operación debe ser realizada. Si el bit más significativo se ponía a cero, se trataba de una simple máquina de instrucción ejecutada directamente por el hardware. Si el bit superior se estableció se ponía a uno, se trataba de un Extracode y fue implementadp como un tipo especial de salto subrutina a una dirección fija en el almacén (ROM), donde esa dirección era determinada por los otros nueve bits. El modo extracode tuvo su propio programa de la dirección contraria. Muchos de los extracodes eran lo que hoy en día se podría llamar microcodes , eran simples procedimientos de cálculo que habría sido demasiado ineficiente implementarlos en hardware, por ejemplo seno, logaritmo, raíz cuadrada. Sin embargo, alrededor de la mitad de los códigos fueron diseñados como funciones Supervisor, los cuales invocaron procedimientos del sistema operativo. Ejemplos típicos serían "Imprimir el carácter especificado en la corriente especificada" o "Leer un bloque de 512 palabras de cinta lógica N". Extracodes eran el único medio por el que un programa podía comunicarse con el programa Supervisor.
Software
Un único programa de control conocido como el Atlas Supervisor administró el tiempo de procesamiento del ordenador (que es calificado en terminología moderna como un planificador de tareas avanzadas, o un simple sistema operativo). Uno de los primeros lenguajes de alto nivel disponibles en el Atlas fue nombrado AutoCode Atlas, que fue contemporáneo a Algol60 y creado específicamente para hacer frente a los defectos de ese idioma que Tony Brooker percibió. Sin embargo, el Atlas apoyó a Algol 60, así como a Fortran y COBOL. Siendo una máquina universitaria, fue patrocinada por un gran número de la población estudiantil que incluso tuvieron acceso a un código de protección de máquina para el desarrollo del medio ambiente.
Differential analyser
Kay McNulty, Alyse Snyder, y Sis Stump operan el differential analyzer en el sótano de la Escuela Moore de Ingeniería Eléctrica, Universidad de Pennsylvania, en Filadelfia, alrededor de 1942-1945.
El Differential analyser (Analizador Diferencial) fue un
computador analógico mecánico diseñado para solucionar ecuaciones diferenciales por integración, usando mecanismos de ruedas y discos para realizar la integración. Fue uno de los primeros dispositivos de computación avanzados en ser usados operacionalmente.
El analizador fue inventado en 1876 por
James Thomson, hermano de Lord Kelvin. Una versión práctica fue primero construida por H. W. Nieman y Vannevar Bush comenzando en 1927 en el MIT. Ellos publicaron un informe detallado sobre el dispositivo en 1931. D. R. Hartree, de la Universidad de Manchester, trajo el diseño a Inglaterra, donde construyó su primer modelo (con su estudiante, Arthur Porter) en 1934. Durante los cinco años siguientes fueron añadidos tres más: uno en la Universidad de Cambridge, en la Queen's University de Belfast, y en la Royal Aircraft Establishment en Farnborough. En los Estados Unidos, los analizadores diferenciales fueron construidos en la base de la Fuerza Aérea Wright-Patterson y en el sótano la Escuela Moore de Ingeniería Eléctrica en la Universidad de Pennsylvania a principios de los años 1940; el último fue usado extensivamente en la línea de montaje de las tablas de fuego de la artillería antes de la invención del ENIAC, que, de muchas maneras, fue modelado después del analizador diferencial. Algunos años más tarde, otro computador, el UTEC, fue construido en la Universidad de Toronto, pero aparece que vio poco o ningún de uso.
El analizador diferencial fue utilizado en el desarrollo de la
Bomba de rebote, usada para atacar las represas hidroeléctricas alemanas durante la Segunda Guerra Mundial. Los analizadores diferenciales también han sido usados en el cálculo de la erosión del suelo por las autoridades de control del ríos. Eventualmente se volvió obsoleto por las computadoras electrónicas analógicas y posteriormente por computadores digitales.
Más recientemente, la construcción de analizadores diferenciales usando piezas de
Meccano se ha convertido en un proyecto popular entre los aficionados serios al hobby de Meccano.
Un analizador diferencial es mostrado en operación en la película de
1956 La Tierra vs. los platillos voladores, y en la película de 1951 Cuando los mundos chocan.
EDSAC
La EDSAC (acrónimo proveniente de la frase Electronic Delay Storage Automatic Calculator), fue una antigua
computadora británica (una de las primeras computadoras creadas). La máquina, inspirada en el curso de verano dictado por John William Mauchly y J. Presper Eckert, en el cual mostraron su trabajo realizado en la construcción de ENIAC, fue construida por Maurice Wilkes y su equipo en la Universidad de Cambridge en Inglaterra.
La EDSAC fue el primer calculador electrónico en el mundo, en contar con órdenes internas, aunque no la primera computadora con programas internos (ese honor le corresponde a la
SSEM).
El proyecto estuvo patrocinado por J. Lyons & Co. Ltd., una firma británica que fue recompensada con la primer computadora comercialmente aplicada,
LEO I, basada en el diseño de la EDSAC. La EDSAC puso en funcionamiento sus primeros programas el 6 de mayo de 1949, calculando una tabla de números al cuadrado y una lista de números primo.
El primer videojuego de la historia,
OXO fue desarrollado para funcionar en esta computadora.
EDVAC
La EDVAC (Electronic Discrete Variable Automatic Computer) por sus siglas en inglés, fue una de las primeras
computadoras electrónicas. A diferencia de la ENIAC, no era decimal, sino binaria y tuvo el primer programa diseñado para ser almacenado. Este diseño se convirtió en el estándar de arquitectura para la mayoría de las computadoras modernas.
El diseño de la EDVAC es considerado un éxito en la
historia de la informática.
El diseño de la EDVAC fue desarrollado aún antes de que la ENIAC fuera puesta en marcha y tenía la intención de resolver muchos de los problemas encontrados en el diseño de la ENIAC. Así como la ENIAC, la EDVAC fue construida por el laboratorio de investigación de balística de Estados Unidos de la universidad de Pensilvania . A los diseñadores de la ENIAC,
J. Presper Eckert y John William Mauchly se les unió el gran matemático John von Neumann. Un contrato para construirla fue firmado en abril de 1946 con un presupuesto inicial de 100.000 USD y el contrato llamó al aparato el Calculador Discreto Electrónico Automático Variable (Electronic Discrete Variable Automatic Calculator en inglés).
El costo de la EDVAC fue similar al de la ENIAC, justo por debajo de los 500.000 USD.
La computadora fue diseñada para ser binaria con adición, sustracción y multiplicación automática y división programada. También poseería un verificador automático con capacidad para mil palabras (luego se estableció en 1.024). Físicamente la computadora fue construida de los siguientes componentes: Un lector-grabador de
cinta magnética, una unidad de control con osciloscopio, una unidad para recibir instrucciones del control y la memoria y para dirigirlas a otras unidades, una unidad computacional para realizar operaciones aritméticas en un par de números a la vez y mandarlos a la memoria después de corroborarlo con otra unidad idéntica, un cronómetro, y una unidad de memoria dual.
Una preocupación importante en el diseño era balancear fiabilidad y economía.
La EDVAC poseía físicamente casi 6.000
tubos de vacío y 12.000 diodos. Consumía 56 kilowatts de potencia. Cubría 45,5 m² de superficie y pesaba 7.850 kg.
El personal operativo consistía de treinta personas para cada turno de ocho horas.
La EDVAC fue entregada al laboratorio militar en agosto de
1949 y después de varios ajustes, comenzó a operar hasta 1951. En 1960 corría por más de 20 horas diarias con lapsos sin error de 8 horas, en promedio.
La EDVAC recibió varias actualizaciones, incluyendo un dispositivo de entrada/salida de tarjetas perforadas en 1953, memoria adicional en un tambor magnético en 1954 y una unidad de aritmética de coma flotante en 1958.
La EDVAC corrió hasta 1961 cuando fue reemplazada por BRLESC. En su vida, demostró ser altamente confiable y productiva.
ENIAC
ENIAC es un acrónimo de Electronic Numerical Integrator And Computer (Computador e Integrador Numérico Electrónico), utilizada por el Laboratorio de Investigación Balística del
Ejército de los Estados Unidos.
Modalidad
Fue la primera
computadora de propósito general. Además está relacionada con el Colossus, que fue usado para descifrar código alemán durante la Segunda Guerra Mundial y destruido tras su uso para evitar dejar pruebas, siendo recientemente restaurada para un museo británico. Era totalmente digital, es decir, que ejecutaba sus procesos y operaciones mediante instrucciones en lenguaje máquina, a diferencia de otras máquinas computadoras contemporáneas de procesos analógicos. Presentada en público el 15 de febrero de 1946.
La ENIAC fue construida en la
Universidad de Pennsylvania por John Presper Eckert y John William Mauchly, ocupaba una superficie de 167 y operaba con un total de 17.468 válvulas electrónicas o tubos de vacío. Físicamente, la ENIAC tenía 17.468 tubos de vacío, 7.200 diodos de cristal, 1.500 relés, 70.000 resistencias, 10.000 condensadores y 5 millones de soldaduras. Pesaba 27 Tm, medía 2,4 m x 0,9 m x 30 m; utilizaba 1.500 conmutadores electromagnéticos y relés; requería la operación manual de unos 6.000 interruptores, y su programa o software, cuando requería modificaciones, tardaba semanas de instalación manual.
La ENIAC elevaba la temperatura del local a 50ºC. Para efectuar las diferentes operaciones era preciso cambiar, conectar y reconectar los cables como se hacía, en esa época, en las centrales telefónicas, de allí el concepto. Este trabajo podía demorar varios días dependiendo del cálculo a realizar.
Uno de los mitos que rodea a este aparato es que la ciudad de
Filadelfia, donde se encontraba instalada, sufría de apagones cuando la ENIAC entraba en funcionamiento, pues su consumo era de 160 kW.
A las 23.45 del
2 de octubre de 1955, la ENIAC fue desactivada para siempre.
Prestaciones
La computadora podía calcular trayectorias de proyectiles, lo cual fue el objetivo primario al construirla. En 1,5 segundos era posible calcular la potencia 5000 de un número de hasta 5 cifras.
La ENIAC podía resolver 5.000 sumas y 360 multiplicaciones en 1 segundo. Pero entre las anécdotas estaba la poco promisoria cifra de un tiempo de rotura de 1 hora.
Las programadoras de ENIAC
Si bien fueron los ingenieros de ENIAC, Mauchly y Eckert, los que pasaron a la historia de la computación, hubo seis mujeres que se ocuparon de programar la ENIAC, cuya historia ha sido silenciada a lo largo de los años y recuperada en las últimas décadas. Clasificadas entonces como "sub-profesionales", posiblemente por una cuestión de género o para reducir los costos laborales, este equipo de programadoras destacaba por ser hábiles matemáticas y lógicas y trabajaron inventando la programación a medida que la realizaban.
Betty Snyder Holberton, Jean Jennings Bartik, Kathleen McNulty Mauchly Antonelli, Marlyn Wescoff Meltzer, Ruth Lichterman Teitelbaum y Frances Bilas Spence prácticamente no aparecen en los libros de historia de la computación, mas dedicaron largas jornadas a trabajar con la máquina utilizada principalmente para cálculos de trayectoria balística y ecuaciones diferenciales y contribuyeron al desarrollo de la programación de computadoras. Cuando la ENIAC se convirtió luego en una máquina legendaria, sus ingenieros se hicieron famosos, mientras que nunca se le otorgó crédito alguno a estas seis mujeres que se ocuparon de la programación.
Muchos registros fotográficos de la época muestran la ENIAC con mujeres de pie frente a ella. Hasta la década del 80, se dijo incluso que ellas eran sólo modelos que posaban junto a la máquina ("Refrigerator ladies"). Sin embargo, estas mujeres sentaron las bases para que la programación fuera sencilla y accesible para todos, crearon el primer set de rutinas, las primeras aplicaciones de software y las primeras clases en programación. Su trabajo modificó drásticamente la evolución de la programación entre las décadas del 40 y el 50.
Ferranti Mark I
El Ferranti Mark I, también conocido como el Computador Electrónico de Manchester (Manchester Electronic Computer)
[1] fue el primer computador electrónico comercialmente disponible de propósito general del mundo.[2] La primer máquina fue entregada a la Universidad de Manchester en febrero de 1951, antes que la UNIVAC I, que fue entregada a la Oficina de Censos de Estados Unidos un mes más tarde.
La máquina fue construida por
Ferranti del Reino Unido. Estaba basada en el Manchester Mark I, la cual fue diseñada en la Universidad de Manchester por Freddie Williams y Tom Kilburn. El Manchester Mark I sirvió como prototipo del Ferranti Mark I; las principales mejoras fueron el tamaño de la memoria primaria y secundaria, un multiplicador más rápido e instrucciones adicionales.
El Mark I usaba palabras de 20-bit almacenadas en una línea de puntos en un
tubo Williams, cada tubo almacenaba un total de 64 "lineas" de puntos. Cada instrucción se almacenaba en una palabra, mientras que los números eran almacenados en dos palabras. La memoria principal consistía en ocho tubos, cada uno almacenaba una "página" de 64 palabras. Otros tubos almacenaban un acumulador (A) de 80 bits, el registro cociente/multiplicador (MQ) de 40 bits y ocho "líneas-B", o índices de registros, los cuales eran una de las características únicas del diseño Mark I. El acumulador podía ser direccionado como dos palabras de 40 bits. Un extra de 20 bits por tubo almacenaban valores de desplazamiento en la memoria secundaria. La memoria secundaria estaba implementada en un tambor magnético de 512 páginas, almacenando 2 páginas por pista, con un tiempo de revolución de 30 milisegundos por vuelta. El tambor tenía ocho veces la capacidad del diseño Manchester original.
La instrucciones, como en la máquina de Manchester, usaban un formato de direccionameinto simple en el que los operandos eran modificados y puestos en el acumulador. Tenía alrededor de 50 instrucciones en total. El tiempo básico por ciclo era de 1,2 milisegundos, y una multiplicación podía completarse en la nueva unidad paralela en alrededor de 2,16 milisegundos (unas cinco veces más rápido que el diseño original). El multiplicador usaba cerca de un cuarto de las 4.050
válvulas de la máquina.[3] Varias instrucciones fueron agregadas para copiar una palabra de memoria de un tubo Williams a la máquina de cinta de papel, o para leerla desde dicha cinta de papel. Muchas instrucciones se agregaron al diseño original de Manchester, incluyendo una instrucción de números aleatorios y varias otras para manejar las "lineas-B".
El Mark I original tenía que ser programado ingresando caracteres que representaban valores de 5 bits que podían representarse en una cinta de papel. Los ingenieros decidieron usar un relación simple entre las perforaciones de la cinta y los dígitos binarios que representaban, pero la relación entre los agujeros del papel y la codificación física nunca inentó ser un "mapeo" binario. Como resultado, los caracteres representados por los valores 0 a 31, parecían generados al azar: /E@A:SIU½DRJNFCKTZLWHYPQOBG"MXV£. Cada isntrucción era representada por un sólo carácter.
La primer máquina fue vendida a la Universidad de Manchester. Ferranti tuvo grandes esperanzas de vender otras máquinas, y recibieron un pedido del Atomic Energy Research Establishment (Reino Unido) para ser entregado en el otoño (boreal) de 1952. Sin embargo, mientras la máquina era construida cambió el gobierno, y el nuevo canceló todos los contratos por arriba de las ₤100.000. Una Mark I parcialmente terminada quedó en Ferranti, y fue comprada más tarde por la
Universidad de Toronto a precio "de emergencia". La máquina de la UdeT, apodada "FERUT", fue ampliamente usada en negocios, ingeniería y academia.
Después de las dos primeras máquinas, se lanzó una máquina revisada. Conocida como el Ferranti Mark I* o el Ferranti Star (Ferranti Estrella). Las revisiones principalmente depuraron el juego de instrucciones para un mejor uso. En lugar de un "mapeo" de los agujeros de la cinta de papel que parecía producido al azar, la nueva máquina tenía un mapeo con agujeros en orden, para producir un juego mucho más simple: ø£½0@:$ABCDEFGHIJKLMNPQRSTUVWXYZ. Además varios comandos para manejar los registros de índices tenían efectos secundarios que producían programas extravagantes, pero se modificaron para no tenerlos. La instrucción de máquina JUMP saltaba a una posición anterior de la deseada, por la misma manera que los índices tenían comportamientos extraños. Se provó que esto era bueno sólo en teoría, pero en la práctica era muy molesto y también fue corregido. La Entrada/Salida fue modificada, con números de 5 bits escritos con el dígito menos significativo a la derecha, como es típico en la escritura de números. Todo esto, junto con muchos otros cambios, mejoraron mucho la facilidad de programar la nueva máquina. Se vendieron al menos 7 máquinas Mark I* entre 1951 y 1957, una de ellas a los laboratorios de
Shell en Ámsterdam.
Música
Incluídas con el juego de instrucciones del Ferranti Mark 1, había un comando para emitir un sonido, el que permitía a la máquina dar a los operadores una retroalimentación auditiva. El sonido generado podía ser alterado en frecuencia, una característica del Mark 1 que fue explotada para hacer la primera grabación conocida de música de computadora, tocando un popurrí que incluyó "
God Sabe te Quien, "Baa Baa Black Sheep" (canción de cuna), y "In the Mood".[4] La grabación fue hecha por la BBC hacia fines de 1951, y la programación fue hecha por Christopher Strackey, un profesor de matemática en Harrow School y amigo de Alan Turing. No fue el primer computador en tocar música. El primero fue el CSIRAC, el primer computador digital de Australia, con una versión de la Marcha del Coronel Bogey.[5]
Frances Bilas Spence
Frances Bilas Spence (
2 de marzo, 1922) fue una de las programadoras originales de la Computadora ENIAC.
Nació en
Filadelfia en 1922 y asistió a la Universidad Temple, donde ganó una beca para el Chestnut Hill College. Se graduó en Matemática con orientación en física en el año 1942. Mientras estudiaba conoció a Kathleen McNulty, quien también se convirtió luego en una de las seis mujeres que programaron ENIAC. McNulty y Spence fueron empleadas en la Moore School of Engineering para trabajar en cálculo de trayectorias balísticas. Ambas fueron seleccionadas para ser parte del primer equipo de programadores de ENIAC, una máquina que fuera diseñada especialmente para realizar este tipo de cálculos.
En 1947, un año después de la presentación en sociedad de la Máquina ENIAC, Bilas se casó con Homer Spence, un ingeniero electrónico de la armada que provenía del Aberdeen Proving Grounds, quien luego comenzó a trabajar también en el proyecto ENIAC. Poco tiempo después de casarse, Bilas Spence renunció a su puesto para dedicarse a formar una familia.
GE-645
El GE-645 fue un
ordenador construido por General Electric donde se instaló el sistema operativo experimental Multics, el cuál sirvió de referencia para crear UNIX
Grandes sistemas de Burroughs
Los grandes sistemas de Burroughs fueron los más grandes de tres series de computadores
mainframes de Burroughs Corporation. Fundada en los años 1880, Burroughs era la más vieja entidad continuamente operando en el área de la computación, pero por finales de la década de 1950 su equipo computación todavía estaba limitado a las máquinas de contabilidad electromecánicas tales como la Sensimatic; las cuales no tenían nada para competir con sus rivales tradicionales como IBM y NCR que habían comenzado a producir computadores de mayor escala, o con la recientemente fundada UNIVAC. La primera máquina, el B5000, fue diseñada en 1961 y Burroughs buscaba resolver su tardía entrada en el mercado con la estrategia de un diseño completamente diferente basado en las más avanzadas ideas computacionales disponibles en ese tiempo. Los computadores usando esta arquitectura todavía estaban en producción en 2005 como con las máquinas ClearPath/MCP de Unisys. Ahora, Unisys usa los procesadores Intel Xeon, y corre en sus servidores los sistemas operativos MCP, Microsoft Windows y Linux.
B5000
El primer miembro de la serie, el B5000, fue diseñado a principios de 1961 por un equipo bajo la dirección de
Robert (Bob) Barton. Fue una máquina única, muy adelantada a su tiempo. Ha sido listada por el influyente arquitecto de computadores John Mashey como una de las arquitecturas que más admira. "Yo siempre pensé que era uno de los más innovadores ejemplos de diseño combinado de hardware/software que haya visto, y mucho más adelantado a su tiempo".[1]
Características únicas
Todo el código es automáticamente
reentrante (La figura 4.5 de la Monografía ACM muestra en pocas palabras el por qué): los programadores no tienen que hacer nada, sino solo usar los dos simples primitivos mostrados, para tener cualquier código en cualquier lenguaje de programación distribuido a través de los procesadores. Éste es quizás el canónico pero no significa el único beneficio de estas importantes características que distinguen a esta arquitectura:
Arquitectura data-driven tagged y basada en descriptor
El hardware fue diseñado para soportar los requerimientos del software
El hardware diseñado para soportar exclusivamente
lenguajes de programación de alto nivel
No hay
lenguaje ensamblador o assembler; todo el software del sistema está escrito en una variedad extendida de ALGOL
No hay registros accesibles al programador
Conjunto de instrucciones simplificado
Arquitectura de
Pila (para soportar lenguajes algorítmicos de alto nivel)
Soporte para
sistema operativo de alto nivel (Master Control Program)
Soporte para multiprocesamiento maestro/esclavo
Soporte para otros lenguajes como
COBOL
Manipulaciones poderosas de
cadenas de caracteres
Arquitectura segura prohibiendo acceso no autorizado a datos o disrupciones de operaciones
Temprana detección de error soportando el desarrollo y las pruebas (testing) de software
La primera implementación comercial de la
memoria virtual
Los sucesores todavía existen en las máquinas ClearPath/MCP de
Unisys
Influenció muchas de las técnicas computacionales de hoy
En el texto siguiente, las designaciones de la máquina, B5000, Serie A, y ClearPath/MCP son usadas intercambiablemente aunque éstas combinan innecesariamente las características y conceptos de varias máquinas y deberán ser corregidas algún día para mantener claramente las distinciones entre el 5000, 5500, 6500 y secuencia, y la Serie A.
Diseño de sistema único
El B5000 fue revolucionario en su tiempo al ser la arquitectura y el conjunto de instrucciones diseñados tomando en consideración las necesidades del software. Esto era un alejamiento del diseño del sistema de computación de ese tiempo, donde un procesador y su conjunto de instrucciones serían diseñados y después entregados a la gente del software, y todavía es así. Es decir, las arquitecturas modernas como el
x86 o el PPC son esencialmente arquitecturas basadas en conjuntos de instrucciones tradicionales en vez de diseños holísticos como los sistemas originales de Burroughs.
Soporte de lenguaje
El B5000 fue diseñado para soportar exclusivamente lenguajes de alto nivel. Esto ocurió en un tiempo en que tales lenguajes comenzaban a ser prominentes con
FORTRAN y luego COBOL. FORTRAN y COBOL eran considerados lenguajes débiles por algunos, comparado con técnicas modernas de software, así que fue adoptado un lenguaje nuevo que no había sido probado, ALGOL-60. El dialecto del ALGOL seleccionado para el B5000 fue el Elliott ALGOL, primero diseñado e implementado por C.A.R. Hoare en un Elliot 503. Éste era una extensión práctica del ALGOL con instrucciones de I/O (que el ALGOL había ignorado) y poderosas instrucciones de procesamiento de cadenas. La famosa conferencia de Turing de Hoare fue sobre este tema.
Así el B5000 fue basado en un lenguaje muy poderoso. La mayoría de los otros proveedores solamente podían soñar en implementar un compilador ALGOL y la mayor parte de la industria descartó el ALGOL pues no lo podían implementar. Sin embargo, un brillante joven estudiante llamado
Donald Knuth había implementado previamente el ALGOL-58 en una máquina anterior de Burroughs durante tres meses de verano. Muchos descartaron el ALGOL, creyendo equivocadamente que los lenguajes de alto nivel no podían tener la misma potencia que el ensamblador, y así no se dieron cuenta del potencial del ALGOL como lenguaje de programación de sistemas, una opinión no revisada hasta el desarrollo del lenguaje de programación C.
El compilador del ALGOL de Burroughs era muy rápido - éste impresionó al científico holandés
Edsger Dijkstra cuando sometió un programa para ser compilado en la planta de Pasadena del B5000. Su mazo de tarjetas fue compilado casi inmediatamente y él quiso inmediatamente varias máquinas para su universidad (Universidad Técnica de Eindhoven) de regreso en Europa. El compilador era rápido por varias razones, pero la razón primaria era que era un "compilador de un solo paso" (one-pass compiler). Los computadores tempranos no tenían suficiente memoria para almacenar el código fuente, así que los compiladores (e incluso los ensambladores) usualmente necesitaban leer el código fuente más de una vez. La sintaxis del ALGOL requiere que cada variable (u otro objeto) sea declarada antes de ser usada, así que es factible escribir un compilador ALGOL que lea los datos solamente una vez. Este concepto tiene implicaciones teóricas profundas, pero también permite la compilación muy rápida. Los grandes sistemas de Burroughs podían compilar tan rápidamente como leían el código fuente de las tarjetas perforadas, y tenían los lectores de tarjetas más rápidos en la industria.
El poderoso compilador COBOL de Burroughs era también un compilador de un paso e igualmente rápido. Un programa COBOL de 4000 tarjetas se compilaba tan rápidamente como las 1000 tarjetas por minuto en que los lectores podían leer el código. El programa estaba listo para usarse tan pronto como las tarjetas pasaran a través del lector.
Historia
Plantilla:Expand-section
El primero de los grandes sistemas de Burroughs fue el B5000. Diseñado en 1961, era un computador de segunda generación usando lógica de transistor discreto y memoria de núcleo magnético. Las máquinas sucesoras siguieron las tendencias de desarrollo de hardware para reimplementar la arquitectura en nueva lógica durante los próximos 25 años, con el B5500, B6500, B5700, B6700, B7700, B6800, B7800, y finalmente la Serie A de Burroughs. Después de que Burroughs se convirtió en parte de Unisys, Unisys continuó desarrollando nuevas máquinas basadas en el MCP CMOS ASIC. Estas máquinas iban desde el Libra 100 hasta el Libra 500, con el Libra 590 siendo anunciado en el año 2005. Posteriores Libras, incluyendo el 590, también incorporaron los procesadores Intel Xeon y pueden correr la arquitectura de grandes sistemas de Burroughs en emulación así como en los procesadores MCP CMOS. No está claro si Unisys continuará el desarrollo de nuevos MCP CMOS ASICs.
ALGOL
Los grandes sistemas de Burroughs implementaron una
arquitectura de pila derivada del ALGOL, a diferencia de arquitecturas lineares tales como las del PDP-11, Motorola M68k, e Itanium y arquitecturas segmentadas como x86 y Texas Instruments. (Esto se refiere a la disposición de la memoria y cómo un programa la usa).
Mientras que el B5000 fue diseñado específicamente alrededor del ALGOL, esto fue solamente un punto de partida. Otros lenguajes orientados a los negocios como
COBOL también eran bien soportados, más notablemente por los poderosos operadores de string que fueron incluidos para el desarrollo de compiladores rápidos.
El ALGOL usado en el B5000 es un subconjunto extendido del ALGOL. Incluye poderosas instrucciones de manipulación de string pero excluye ciertas construcciones del ALGOL, notablemente los parámetros formales no especificados. Un mecanismo DEFINE responde a un propósito similar a los #defines encontrados en C, pero está completamente integrado en el lenguaje en lugar de ser un preprocesador. El tipo de datos EVENT facilita la coordinación entre los procesos, y los bloques ON FAULT activan el manejo de fallas del
ALGOL
Los grandes sistemas de Burroughs implementaron una
arquitectura de pila derivada del ALGOL, a diferencia de arquitecturas lineares tales como las del PDP-11, Motorola M68k, e Itanium y arquitecturas segmentadas como x86 y Texas Instruments. (Esto se refiere a la disposición de la memoria y cómo un programa la usa).
Mientras que el B5000 fue diseñado específicamente alrededor del ALGOL, esto fue solamente un punto de partida. Otros lenguajes orientados a los negocios como
COBOL también eran bien soportados, más notablemente por los poderosos operadores de string que fueron incluidos para el desarrollo de compiladores rápidos.
El ALGOL usado en el B5000 es un subconjunto extendido del ALGOL. Incluye poderosas instrucciones de manipulación de string pero excluye ciertas construcciones del ALGOL, notablemente los parámetros formales no especificados. Un mecanismo DEFINE responde a un propósito similar a los #defines encontrados en C, pero está completamente integrado en el lenguaje en lugar de ser un preprocesador. El tipo de datos EVENT facilita la coordinación entre los procesos, y los bloques ON FAULT activan el manejo de fallas del programa.
El nivel de usuario del ALGOL no incluye muchas de las construcciones inseguras necesarias por el sistema operativo u otro software de sistema. Dos niveles de extensiones del lenguaje proporcionan las construcciones adicionales: ESPOL y NEWP para escribir el MCP y el software estrechamente relacionado, y DCALGOL y DMALGOL para proporcionar extensiones más específicas para las clases específicas de software de sistema.
ESPOL y NEWP
Originalmente, el sistema operativo MCP del B5000 fue escrito en una extensión ALGOL llamada Executive Systems Programming Oriented Language (ESPOL), (Lenguaje Orientado a la Programación de Sistemas Ejecutivos). A mediados de los años 1970 fue remplazado por un lenguaje llamado NEWP. Aunque NEWP probablemente solo significaba "New Programming language" (Nuevo Lenguaje de Programación), las leyendas rodean el nombre. Una historia común (quizás apócrifa) alrededor de Burroughs en ese entonces sugirió que el nombre viene de "No Executive Washroom Privileges" (No Privilegios al Servicio Ejecutivo). Otra historia es que aproximadamente en 1976, John McClintock de Burroughs (el ingeniero de software que desarrolló el NEWP) llamado el lenguaje "NEWP" después de que se le preguntó, otra vez, "¿ya tiene un nombre?": contestando "nyoooop" (no), él adoptó eso como un nombre. NEWP, era también un subconjunto de la extensión del ALGOL, pero fue más seguro que ESPOL, y eliminó algunas complejidades poco usadas del ALGOL. De hecho, todas las construcciones inseguras son rechazadas por el compilador NEWP a menos que haya un bloque específicamente marcado para permitir esas instrucciones. Estos bloques marcadores proporcionan un mecanismo de protección multi-nivel.
Los programas de NEWP que contienen construcciones inseguras son inicialmente no ejecutables. El administrador de seguridad de un sistema tienen la capacidad de "bendecir" tales programas y hacerlos ejecutables, pero los usuarios normales no pueden hacer esto. (Incluso los "usuarios privilegiados", quienes normalmente tienen privilegios de
root, pueden no estar capacitados para hacer esto dependiendo de la configuración elegida por el sitio). Mientras NEWP puede ser usado para escribir programas generales y tiene un número de características diseñadas para los grandes proyectos de software, no soporta todo lo que hace ALGOL.
NEWP tiene un número de facilidades para permitir proyectos de software en grande, tales como el sistema operativo, incluyendo interfaces nombradas (funciones y datos), grupos de interfaces, módulos, y supermódulos. Los módulos agrupan datos y funciones juntos, permitiendo el fácil acceso a los datos como globales dentro del módulo. Las interfaces permiten a un módulo importar y exportar funciones y datos. Los supermódulos permiten que los módulos sean agrupados.
DCALGOL y el Message Control Systems (MCS)
El segundo de nivel intermedio de seguridad entre el código del sistema operativo (en NEWP) y los programas de usuario (en ALGOL) es para los programas
middleware, que son escritos en Data Comms ALGOL (DCALGOL). Esto se utiliza para la recepción y despacho de mensajes, que remueve mensajes los queues de entrada y los coloca en los queues para manejar otros procesos en el sistema. El middleware como COMS (introducido alrededor de 1984) recibe mensajes desde alrededor de la red y despacha estos mensajes a procesos de manejo específicos o a un Message Control System (MCS) (sistema de control de mensaje) como por ejemplo "Command AND Edit" (CANDE) (Comando y edita), el ambiente de desarrollo de programas.
Los MCS son elementos de software dignos de mención - ellos controlan las sesiones de usuario y proporcionan seguimiento del estado del usuario sin tener que correr procesos por usuario puesto que una sola pila de MCS puede ser compartido por muchos usuarios. El balance de carga también puede ser alcanzado a nivel del MCS. Por ejemplo diciendo que se quieren manejar 30 usuarios por pila, en este caso si se tienen 31 a 60 usuarios, se tendrán dos pilas, de 61 a 90 usuarios, tres pilas, etc. Esto da a las máquinas B5000 una gran ventaja de desempeño en un servidor puesto que no se necesita iniciar otro proceso de usuario y así crear una nueva pila cada vez que un usuario se conecta al sistema. Así que se pueden servir efectivamente los usuarios con los MCSs (independientemente de si requieren estado o no). Los MCSs también proporcionan la espina dorsal del procesamiento transaccional a gran escala.
El MCS hablaba con un coprocesador externo, el Terminal Control Processor (TCP) (procesador de control de terminal). Este era un
minicomputador de 24 bits con una arquitectura de registro convencional y capacidad de hardware de entrada-salida para manejar miles de terminales remotos. El TCP y el B6500 se comunicaban por mensajes en memoria, esencialmente paquetes, en términos de hoy, y el MCS hacía el procesamiento de esos mensajes del lado del B6500. El TCP tenía un ensamblador, pero éste era el compilador ALGOL del B6500. Había una función del ALGOL para cada clase de instrucción del TCP, y si se llamara esa función entonces los correspondientes bits de instrucción TCP serían emitidos a la salida. Un programa TCP era un programa ALGOL que no abarcaba nada más que una lista larga de llamadas a estas funciones, una para cada declaración de lenguaje ensamblador. Esencialmente el ALGOL actuaba como el paso macro de un macro ensamblador. El primer paso era el compilador de ALGOL; el segundo paso corría el programa resultante (en el B6500) que entonces emitiría el binario para el TCP.


DMALGOL y las bases de datos
Otra variante del ALGOL es el Data Management ALGOL (DMALGOL) (ALGOL de gestión de datos). DMALGOL es ALGOL extendido para compilar el software de
bases de datos DMSII desde los archivos de descripción de base de datos creados por el compilador DASDL. Los diseñadores y los administradores de base de datos compilan descripciones de base de datos para generar el código DMALGOL adaptado para las tablas y los índices especificados. Los administradores nunca necesitan escribir ellos mismos en DMALGOL. Los programas a nivel de usuario normales obtienen el acceso a la base de datos al usar el código escrito en lenguajes de aplicación, principalmente ALGOL y COBOL, extendidos con instrucciones de base de datos y directivas de tratamiento transaccional. La característica más notable de DMALGOL son sus mecanismos de procesamiento para generar el código para manejar las tablas y los índices.
El procesamiento de DMALGOL incluye variables y bucles, y puede generar nombres basados en variables de tiempo de compilación. Esto permite la adaptación mucho más allá de lo que puede ser hecho por facilidades de procesamiento que carecen bucles.
El DMALGOL es usado para proporcionar las rutinas de acceso adaptadas para las bases de datos DMSII. Después de que una base de datos es definida usando el Data Access and Structure Definition Language (DASDL) (Lenguaje de Definición Estructurado y de Acceso de Datos), el esquema es traducido por el preprocesador en rutinas adaptadas de acceso DMALGOL y después compilado. Esto significa que, a diferencia de otras implementaciones de
DBMS, a menudo no hay necesidad de código if/then/else específico de base de datos en tiempo de ejecución. En los años 1970, estas "adaptaciones" fueron usadas muy extensivamente para reducir el tamaño y el tiempo de ejecución del código. Fue usado mucho menos en años posteriores, en parte porque el ajuste fino de bajo nivel para la memoria y la velocidad llegó a ser menos crítico, y en parte porque eliminando el preprocesamiento hace la codificación más simple y por lo tanto permitiendo optimizaciones más importantes.
En años posteriores, ya no siendo una preocupación el tamaño de código del compilador, la mayor parte de las construcciones de preprocesamiento fueron hechas disponibles en el nivel de usuario de ALGOL. Solamente las construcciones inseguras y el procesamiento directo del archivo de descripción de la base de datos permanecen restringidas a DMALGOL.
Roy Guck de Burroughs fue uno de los principales desarrolladores de DMSII.
Arquitectura de pila
En muchos de los primeros sistemas y lenguajes, a menudo se les decía a los programadores que no hicieran sus rutinas demasiado pequeñas porque las llamadas y retornos de procedimiento eran operaciones costosas, tenían que ser realizados un número de operaciones para mantener el
pila. El B5000 fue diseñado como una máquina de pila - todos los datos del programa eran guardados en la pila a excepción de los arreglos (que incluyen strings y objetos). Esto significó que las operaciones de la pila fueron optimizadas para la eficacia. Como una máquina orientada a pila, no habían registros direccionables para el programador.
La
multitarea también era muy eficiente en las máquinas B5000. Hay una instrucción específica para realizar cambios de proceso - MVST (mueve pila).[] Cada pila representa un proceso (una tarea o un hilo) y las tareas pueden resultar bloqueadas esperando peticiones de recursos (que incluye esperar a un procesador para correr en él si la tarea ha sido interrumpida debido a la multitarea preemptiva). Los programas de usuario no pueden realizar un MVST, y en el sistema operativo hay solamente una línea de código donde es hecho esto.
Así que un cambio de proceso procede algo similar a esto - un proceso pide un recurso que no está disponible inmediatamente, quizá una lectura de un registro de un archivo desde un bloque que no está actualmente en memoria, o el temporizador del sistema (timer) ha disparado una
interrupción. Entonces se entra al código del sistema operativo y corre encima de la pila del usuario. Apaga los temporizadores del proceso del usuario. El proceso actual es puesto en la cola (queue) apropiada para el recurso pedido, o la cola esperando por el procesador si esto es un cambio de contexto preemtivo. El sistema operativo determina el primer proceso en la cola e invoca la instrucción move_stack, que hace al proceso en la cabeza de la cola activo.
Ventajas de la estructura de la pila
Una cosa agradable de la estructura de la pila es que si un programa falla, es tomada una descarga de la pila y es muy fácil para un programador descubrir exactamente cuál era el estado del programa cuando estaba corriendo. Compare eso a los vaciados de memoria (memory dumps) y el intercambio de paquetes de otros sistemas.
Otra cosa acerca de la estructura de la pila es que los programas son implícitamente
recursivos. El FORTRAN no era una lenguage recursivo y era quizás un obstáculo a la comprensión de la gente, de cómo el ALGOL debía ser implementado para tener recursión. En el B5000, esto no era un problema - de hecho, tenían el problema reverso, cómo evitar que los programas fueran recursivos. Al la final ellos no le prestaron atención, incluso el compilador FORTRAN de Burroughs era recursivo, puesto que era improductivo pararlo para que no fuera así.
Así el FORTRAN de Burroughs fue mejor que cualquier otra implementación de FORTRAN.[
cita requerida] de hecho, Burroughs comenzó a ser conocido por sus superiores compiladores e implementaciones de lenguajes, incluyendo el orientado a objetos Simula (un sobreconjunto del ALGOL), y Kenneth Iverson, el diseñador del APL, declaró que la implementación de Burroughs del APL era la mejor que él había visto.[cita requerida] Por otro lado, John McCarthy, el diseñador del lenguaje LISP, discrepó, puesto que el LISP fue basado en código modificable,[cita requerida] a él no le gustabael código no modificable del B5000,[cita requerida] pero de todos modos la mayoría de las implementaciones del LISP correrían en un ambiente interpretativo.
Observe también que las pilas automáticamente usan tanta memoria como es necesaria para un proceso. No había que hacer SYSGENs en los sistemas de Burroughs, como con los sistemas de la competencia, para preconfigurar las particiones de la memoria en las cuales correrían las tareas. De hecho, Burroughs era realmente campeón en "
plug and play" en el sentido que los periféricos adicionales se podían enchufar en el sistema sin tener que recompilar el sistema operativo con nuevas tablas de periféricos. Así estas máquinas podían verse como los precursores de los dispositivos de hoy como el USB y el firewire.
Influencia del B5000
Indudablemente, hay influencia directa del B5000 en la gama actual del rango de mainframes ClearPath de Unisys, que son los descendientes directos del B5000 y todavía tienen el sistema operativo MCP después de 40 años de desarrollo consistente. Ahora la esta arquitectura es llamada emode (por modo de emulación), puesto que la arquitectura B5000 puede ser implementada en muchas plataformas. También iba a estar un nmode (modo nativo), pero este fue eliminado, así que a menudo se puede oír que las máquinas sucesoras del B5000 son referidas como "máquinas emode".
Las máquinas B5000 fueron programadas exclusivamente en lenguajes de alto nivel, no hay ensamblador, obviamente esto no se aplicaría al emode, el cual es entrado para correr en el hardware base y rompe así la base fundamental de la arquitectura arriba indicada excepto cuando se indica abajo.
La arquitectura de pila del B5000 inspiró a
Chuck Moore, el diseñador del lenguaje de programación Forth, quien encontró al B5500 mientras estaba en el MIT. En Forth - The Early Years, Moore describió la influencia, observando que las instrucciones DUP, DROP y SWAP del Forth vinieron de las instrucciones correspondientes del B5500 (DUPL, DLET, EXCH).
Los sistemas de
Hewlett-Packard (HP) fueron influenciados por el B5000, puesto que algunos ingenieros de Burroughs encontraron luego un empleo diseñando máquinas para HP y éstas también eran máquinas de pila. El trabajo de Bob Barton sobre la notación polaca inversa (RPN) encontró su camino en las calculadoras HP comenzando con la HP 9100A, y notablemente la HP-35 y las calculadoras subsecuentes.
Los sistemas
NonStop diseñados por Tandem Computers a finales de los años 1970 y principios de los 1980 eran también máquinas de pila, influenciadas por el B5000 indirectamente a través de la conexión con HP, ya que varios de los primeros ingenieros de Tandem venían de HP. Alrededor 1990, estos sistemas migraron a una arquitectura RISC y ahora contienen solamente peculiares vestigios de su arquitectura de pila.
Bob Barton era también muy influyente en
Alan Kay. Kay también fue impresionado por la arquitectura data-driven tagged del B5000 y ésto influenció su pensamiento en sus desarrollos de la programación orientada a objetos y el Smalltalk.
Otra faceta de la arquitectura B5000 fue que era una arquitectura segura que corría directamente en el hardware. Esta técnica tiene descendientes en las
máquinas virtuales de hoy en sus tentativas de proporcionar ambientes seguros. Un notable producto es la máquina virtual de Java, que proporciona una caja de arena segura en la cual corren las aplicaciones.
El valor de la arquitectura de hardware atando lo que existió antes del emode sería substancialmente preservado en el
Intel iAPXx86 hasta el punto que el MCP fuera el único programa de control pero el soporte proporcionado por los hardwares comunes sigue siendo inferior al del modo nativo. Una arquitectura de procesador Intel poco conocida que realmente precedió al iAPXx86 (el Intel iAPX 432) había proporcionado una base física equivalente, puesto que esencialmente también era una arquitectura de flujo de datos orientada al objeto
Harvard Mark I
El Harvard Mark I o Mark I fue el primer
ordenador electromecánico construido en la Universidad Harvard por Howard H. Aiken en 1944, con la subvención de IBM. Tenía 760.000 ruedas y 800 kilómetros de cable y se basaba en la máquina analítica de Charles Babbage.
El computador Mark I empleaba señales electromagnéticas para mover las partes mecánicas. Esta máquina era lenta (tomaba de 3 a 5 segundos por cálculo) e inflexible (la secuencia de cálculos no se podía cambiar); pero ejecutaba operaciones matemáticas básicas y cálculos complejos de ecuaciones sobre el movimiento parabólico de proyectiles.
Funcionaba con relés, se programaba con interruptores y leía los datos de cintas de papel perforado.
Características
La Mark I era una
máquina digna de admirar, pues sus longitudes eran grandiosas, medía unos 15,5 metros de largo, unos 2,40 metros de alto y unos 60 centímetros de ancho, pesaba aproximadamente unas cinco toneladas. Pero lo más impresionante fueron unas cubiertas de cristal que dejaban que se admirara toda la maquinaria de su interior.
La Mark I recibía sus secuencias de
instrucciones (programas) y sus datos a través de lectoras de cinta perforada de papel y los números se transferían de un registro a otro por medio de señales eléctricas. Tal vez por eso no deba sorprendernos que a pesar de medir sólo 15 metros de largo, el cableado interno de la Mark I tenía una longitud de más de 800 kilómetros, con más de tres millones de conexiones. Los resultados producidos se imprimían usando máquinas de escribir eléctricas o perforadoras de tarjetas, en la más pura tradición de IBM.
Aunque tenía componentes electromecánicos era una máquina automática eléctrica. Era capaz de realizar 5 operaciones aritméticas (
suma, resta, multiplicación, división y referencia a resultados anteriores). Su interior estaba compuesto por 750.000 piezas de diferentes variedades (ruedas rotatorias para los registros, relevadores…).
Estaba compuesta de más de 1.400 interruptores rotatorios de diez posiciones en el frente de la máquina para visualizar los valores de los registros constantes que se le introducían. Pero además de los registros constantes la máquina contenía 72 registros mecánicos. Cada unos de los registros mecánicos era capaz de almacenar 23 dígitos, los dígitos que se usaban para el signo era un 0 para signo positivo y un 9 para el signo negativo.
La posición de la coma decimal estaba fija durante la solución de un problema, pero podía ajustarse previamente de manera que estuviera entre dos dígitos cualquiera. La máquina contaba también con mecanismos que permitían efectuar cálculos de doble precisión (46 decimales), mediante la unión de dos registros, en una forma análoga a la Máquina Analítica de Babbage.
Funcionamiento
La Mark I se programaba recibiendo sus secuencias de instrucciones a través de una cinta de papel en la cual iban perforadas las instrucciones y números que se transferían de un registro a otro por medio de señales eléctricas.
Cuando la máquina estaba en funcionamiento el ruido que producía era similar al que haría un habitación llena de personas mecanografiando de forma sincronizada. El tiempo mínimo de transferencia de un número de un registro a otro y en realizar cada una de sus operaciones básicas(resta, suma, multiplicación y división) era de 0,3 segundos. Aunque la división y la multiplicación eran más lentas.
La capacidad de modificación de la secuencia de instrucciones en base a los resultados producidos durante el proceso de cálculo era pequeño. La máquina podía escoger de varios algoritmos para la ejecución de cierto cálculo. Sin embargo, para cambiar de una secuencia de instrucciones a otra era costoso, ya que la maquina se tenía que detener y que los operarios cambiaran la cinta de control. Por tanto, se considera que la Mark I no tiene realmente saltos incondicionales. Aunque, posteriormente se le agregó lo que fue llamado
Mecanismo Subsidiario de Secuencia (era capaz de definir hasta 10 subrutinas, cada una de las cuales podía tener un máximo de 22 instrucciones), que estaba compuesto de tres tablones de conexiones que se acompañaban de tres lectoras de cinta de papel. Y se pudo afirmar que la Mark I, podía transferir el control entre cualquiera de las lectoras, dependiendo del contenido de los registros.
Historia del hardware
El
hardware ha sido un componente importante del proceso de cálculo y almacenamiento de datos desde que se volvió útil para que los valores numéricos fueran procesados y compartidos. El hardware de computador más primitivo fue probablemente el palillo de cuenta;[1] después grabado permitía recordar cierta cantidad de elementos, probablemente ganado o granos, en contenedores. Algo similar se puede encontrar cerca de las excavaciones de Minoan. Estos elementos parecen haber sido usadas por los comerciantes, contadores y los oficiales del gobierno de la época.
Los dispositivos de ayuda provenientes de la computación han cambiado de simples dispositivos de grabación y conteo al
ábaco, la regla de cálculo, el computadora analógica y los más recientes, la computadora u ordenador. Hasta hoy, un usuario experimentado del ábaco usando un dispositivo que tiene más de 100 años puede a veces completar operaciones básicas más rápidamente que una persona inexperta en el uso de las calculadoras electrónicas, aunque en el caso de los cálculos más complejos, los computadores son más efectivos que el humano más experimentado.
Los dispositivos más antiguos
La humanidad ha usado dispositivos de cómputo por milenios. Un ejemplo es el dispositivo para establecer la igualdad de peso: las
clásicas balanzas. Una máquina más aritmética es el ábaco. Se piensa que la forma más antigua de este dispositivo —el ábaco de polvo— fue inventado en Babilonia. El ábaco egipcio del grano y del alambre datan del año 500 A.C.
En la antigüedad y en la edad media se construyeron algunos computadores analógicos para realizar cálculos de astronomía. Entre ellos estaba: el
Mecanismo de Anticitera, un mecanismo de la antigua Grecia (aprox. 150-100 aC), el Planisferio; algunas de las invenciones de Al-Biruni (aprox. 1000 d. C.), el Ecuatorio de Azarquiel (alrededor de AD 1015), y otros computadores analógicos de astrónomos e ingenieros musulmanes.
Introducción
Los computadores pueden ser separados en
software y hardware. El hardware de computación es la máquina física, que bajo la dirección de un programa, almacena y manipula los datos. Originalmente, los cálculos fueron hechos por seres humanos, quienes fueron llamados computadores, como título del trabajo o profesión. Este artículo cubre los principales desarrollos en la historia del hardware de computación, y procura ponerlos en contexto. Para una detallada línea de tiempo vea el artículo línea de tiempo de la computación. El artículo Historia de la computación trata de los métodos previstos para la pluma y el papel, con o sin la ayuda de tablas. Puesto que las calculadoras digitales confían en el almacenamiento digital, y tienden a estar limitadas por el tamaño y la velocidad de la memoria, la historia del almacenamiento de datos del computador está unido al desarrollo de las computadoras.
Primeras calculadoras
Durante milenios, la humanidad ha usado dispositivos para ayudar en los cálculos. El dispositivo de contar más temprano fue probablemente una cierta forma de
palito de contar. Posteriores ayudas para mantener los registros incluyen la arcilla de Fenicia que representaban conteos de artículos en contenedores, probablemente ganado o granos. Una máquina más orientada hacia la aritmética es el ábaco. La forma más temprana de ábaco, el ábaco de polvo, había sido usado en Babilonia tan temprano como en 2.400 A.C.. Desde entonces, muchas otras formas de tablas de contar han sido inventadas, por ejemplo en una casa de cuenta medieval, un paño a cuadros sería colocado en una mesa, como una ayuda para calcular sumas de dinero, y los marcadores se movían alrededor en ella según ciertas reglas.
Un número de
computadores análogos fueron construidos en épocas antiguas y medioevales para realizar cálculos astronómicos. Éstos incluyen el mecanismo de Anticitera y el astrolabio de la Grecia antigua (c. 150-100 A.C.). Estos dispositivos son usualmente considerados como las primeras computadoras análogas. Otras versiones tempranas de dispositivos mecánicos usados para realizar ciertos tipos de cálculos incluyen el Planisferio; algunas de las invenciones de Al-Biruni (c. AD 1000); el Equatorium de Azarquiel (c. AD 1015); y los computadores astronómicos análogos de otros astrónomos e ingenieros musulmanes medievales.
John Napier (1550-1617) observó que la multiplicación y la división de números pueden ser realizadas por la adición y la sustracción, respectivamente, de los logaritmos de esos números. Mientras producía las primeras tablas logarítmicas Napier necesitó realizar muchas multiplicaciones, y fue en este punto que diseñó los huesos de Napier, un dispositivo similar a un ábaco usado para la multiplicación y la división.
Puesto que los
números reales pueden ser representados como distancias o intervalos en una línea, la regla de cálculo fue inventada en los años 1920 para permitir que las operaciones de multiplicación y de división se realizarán perceptiblemente más rápidamente que lo que era posible previamente. Las reglas de cálculo fueron usadas por generaciones de ingenieros y de otros trabajadores profesionales con inclinación matemática, hasta la invención de la calculadora de bolsillo. Los ingenieros del programa Apollo para enviar a un hombre a la Luna, hicieron muchos de sus cálculos en reglas de cálculo, que eran exactas a tres o cuatro dígitos significativos.
En 1623,
Wilhelm Schickard construyó la primera calculadora mecánica digital y por lo tanto se convirtió en el padre de la era de la computación.[2] Puesto que su máquina usó técnicas tales como dientes y engranajes desarrollados primero para los relojes, también fue llamada un 'reloj calculador'. Fue puesto en uso práctico por su amigo Johannes Kepler, quien revolucionó la astronomía.
Una original calculadora de
Pascal (1640) es presentada en el museo de Zwinger. Siguieron las máquinas de Blaise Pascal (la Pascalina, 1642) y de Gottfried Wilhelm von Leibniz (1671). Alrededor 1820, Charles Xavier Thomas de Colmar creó la primera calculadora mecánica excitosa producida en serie, El Aritmómetro de Thomas, que podía sumar, restar, multiplicar, y dividir. Estaba basado principalmente en el trabajo de Leibniz. Las calculadoras mecánicas, como el Addiator de base diez, el Comptómetro, la calculadora Monroe, el Curta y el Addo-X permanecieron en uso hasta los años 1970.
Leibniz también describió el
sistema de numeración binario, un ingrediente central de todas las computadoras modernas. Sin embargo, hasta los años 1940, muchos diseños subsecuentes fueron basados en el difícil de implantar sistema decimal, incluyendo las máquinas de Charles Babbage de los años 1800 e incluso el ENIAC de 1945.
1801: Tecnología de tarjeta perforada
Sistema de tarjeta perforada de una máquina de música.
Tan temprano como en 1725,
Basile Bouchon, quien fue alumno de Carlos Bruné, usó un lazo de papel perforado en un telar para establecer el patrón a ser reproducido en la tela, y en 1726 su compañero de trabajo, Jean-Baptiste Falcon, mejoró su diseño al usar tarjetas perforadas de papel unidas una a la otra para la eficacia en adaptar y cambiar el programa. El telar de Bouchon-Falcon era semiautomático y requería la alimentación manual del programa.
En 1801,
Joseph Marie Jacquard desarrolló un telar en el que el patrón que era tejido era controlado por tarjetas perforadas. La serie de tarjetas podría ser cambiada sin cambiar el diseño mecánico del telar. Esto un hito en programabilidad.
En 1833,
Charles Babbage avanzó desde desarrollar su máquina diferencial a desarrollar un diseño más completo, la máquina analítica, que, para su programación, tomaría prestada directamente las tarjetas perforadas del telar Jacquar.
En
1835 Charles Babbage describió su máquina analítica. Era el plan de una computadora programable de propósito general, empleando tarjetas perforadas para la entrada y un motor de vapor para la energía. Una invención crucial fue usar engranajes para la función servida por los granos de un ábaco. En un sentido real, todos los ordenadores contienen ábacos automáticos (técnicamente llamados como la unidad aritmético lógica o la unidad de punto flotante).
Su idea inicial era usar las tarjetas perforadas para controlar una máquina que podía calcular e imprimir con precisión enorme las tablas
logarítmicas (una máquina de propósito específico). La idea de Babbage pronto se desarrolló en una computadora programable de propósito general, su máquina analítica.
A pesar que su diseño era brillante y los planes eran probablemente correctos, o por lo menos
depurables, el proyecto fue retardado por varios problemas. Babbage era un hombre difícil para trabajar con él y discutía con cualquier persona que no respetara sus ideas. Todas las partes para su máquina tenían que ser hechas a mano. En una máquina con miles de partes, a veces los pequeños errores en cada elemento pueden acumularse, terminando en grandes discrepancias. Esto requería que estas partes fueran mucho mejores que las tolerancias que podían obtenerse con la tecnología de esa época. El proyecto se disolvió en conflictos con el artesano que construyó las partes y fue terminado cuando se agotó el financiamiento del gobierno.
Ada Lovelace, hija de Lord Byron, tradujo y agregó notas al "Sketch of the Analytical Engine" por Federico Luigi, Conte Menabrea. Ella ha sido asociada cercanamente con Babbage. Algunos afirman que ella fue la primer programador de computadoras del mundo, no obstante esta afirmación y el valor de sus otras contribuciones son discutidos por muchos.
Una reconstrucción la
Máquina Diferencial II, un diseño anterior, más limitado, ha estado operacional desde 1991 en el Museo de Ciencia de Londres. Con algunos cambios triviales, trabaja como Babbage la diseñó y demuestra que Babbage estaba correcto en teoría.
El museo usó
máquinas herramientas operadas por computador para construir las partes necesarias, siguiendo las tolerancias que habría podido alcanzar un maquinista de ese período. Algunos creen que la tecnología de ese tiempo no podía producir partes de suficiente precisión, aunque esto aparece ser falso. La falla de Babbage en terminar la máquina puede ser principalmente atribuida a dificultades no solamente relacionadas con la política y el financiamiento, pero también con su deseo de desarrollar una computadora cada vez más sofisticada. Hoy, muchos en el campo de la computación llaman a esta clase obsesión creeping featuritis (algo así como "caracterititis creciente", es decir, el deseo de agregar cada vez más y más características).
En 1890, la
Oficina del Censo de los Estados Unidos usó tarjetas perforadas, las máquinas de ordenamiento, y las máquinas tabuladoras diseñadas por Herman Hollerith para manejar la inundación de datos del censo decenial ordenado por la constitución de Estados Unidos. La compañía de Hollerith eventualmente se convirtió en el núcleo de IBM. La IBM desarrolló la tecnología de la tarjeta perforada en una poderosa herramienta para el procesamiento de datos de negocios y produjo una extensa línea de equipos de registros de unidades?? especializados. Por 1950, la tarjeta de IBM había llegado a ser ubicua en la industria y el gobierno. La advertencia impresa en la mayoría de las tarjetas previstas para la circulación como documentos (cheques, por ejemplo), "No doblar, no perforar ni mutilar", se convirtió en un lema para la era posterior a la Segunda Guerra Mundial.[3]
Siguiendo los pasos de Babbage, aunque ignorante de este anterior trabajo, Percy Ludgate, un contable de Dublín, Irlanda, diseñó independientemente una computadora mecánica programable, que describió en un trabajo que fue publicado en 1909.
Los artículos de
Leslie Comrie sobre métodos de tarjetas perforadas, y las publicaciones de Wallace Eckert sobre Métodos de Tarjetas Perforadas en la Computación Científica en 1940, describieron técnicas que fueron suficientemente avanzadas para solucionar ecuaciones diferenciales, realizar multiplicación y división usando representaciones de punto flotante, todo ello hecho con tarjetas perforadas y las máquinas de registro de unidades??. La Oficina de Computación Astronómica Thomas J. Watson, de la Universidad de Columbia realizó cálculos astronómicos representando el estado del arte en la Computación.
En muchas instalaciones de computación, las tarjetas perforadas fueron usadas hasta (y después) del final de los años 1970. Por ejemplo, en muchas universidades alrededor del mundo los estudiantes de ciencia e
ingeniería someterían sus asignaciones de programación al centro de computación local en forma de una pila de tarjetas, una tarjeta por línea de programa, y entonces tenían que esperar que el programa estuviera en cola para ser procesado, compilado, y ejecutado. En espera para la impresión de cualquier resultado, marcado con la identificación de quien lo solicitó, sería puesto en una bandeja de salida fuera del centro de computación. En muchos casos estos resultados serían solamente un listado de mensajes de error con respecto a la sintaxis, etc, del programa, necesitando otro ciclo de edición-compilación-ejecución[2]. Ver también Programación de la computadora en la era de la tarjeta perforada.
Las tarjetas perforadas todavía son usadas y manufacturadas a este día, y sus dimensiones distintivas (y la capacidad de 80 columnas) todavía pueden ser reconocidas en formas, registros, y programas alrededor del mundo.
1930s-1960s: Calculadoras de escritorio
Por los años 1900, las primeras calculadoras mecánicas, cajas registradoras, máquinas de contabilidad, etcétera fueron rediseñadas para usar motores eléctricos, con la posición de engranajes como representación para el estado de una variable. Desde los años 1930, compañías como
Friden, Marchant Calculator y Monroe hicieron calculadoras mecánicas de escritorio que podían sumar, restar, multiplicar y dividir. La palabra "computador" era un título de trabajo asignado a la gente que usaba estas calculadoras para realizar cálculos matemáticos. Durante el Proyecto Manhattan, el futuro laureado premio Nobel, Richard Feynman, fue el supervisor de un cuarto lleno de computadoras humanas, muchos de ellos eran matemáticos mujeres, que entendían las ecuaciones diferenciales que eran solucionadas para el esfuerzo de la guerra. Después de la guerra, incluso el renombrado Stanislaw Ulam fue presionado en servicio para traducir las matemáticas a aproximaciones computables para la bomba de hidrógeno.
En 1948, fue introducido el
Curta. Éste era una calculadora mecánica pequeña y portable, que tenía el tamaño aproximado de una amoladora de pimienta. Con el tiempo, durante los años 1950 y los años 1960 aparecieron en el mercado una variedad de diferentes marcas de calculadoras mecánicas.
La primera calculadora de escritorio completamente electrónica fue la
ANITA Mk.VII británica, que usaba una pantalla de tubo Nixie y 177 tubos tiratrón subminiatura. En junio de 1963, Friden introdujo la EC-130 de cuatro funciones. Tenía un diseño completamente transistorizado, la capacidad 13 dígitos en un CRT de 5 pulgadas (130 mm), e introdujo la notación polaca inversa (RPN) al mercado de las calculadoras con un precio de $2200. El modelo EC-132 añadió la raíz cuadrada y funciones recíprocas. En 1965, los laboratorios Wang produjeron el LOCI-2, una calculadora de escritorio transistorizada de 10 dígitos que usaba una exhibición de tubo Nixie y podía computar logaritmos.
Con el desarrollo de los
circuitos integrados y los microprocesadores, las calculadoras grandes y costosas fueron sustituidas por dispositivos electrónicos más pequeños.
Computadoras análogas avanzadas
Antes de la
Segunda Guerra Mundial, las computadoras análogas mecánicas y eléctricas eran consideradas el "estado del arte", y muchos pensaban que eran el futuro de la computación.
Las computadoras análogas toman ventaja de las fuertes similitudes entre las matemáticas de propiedades de pequeña escala -- la posición y el movimiento de ruedas o el voltaje y la corriente de componentes electrónicos -- y las matemáticas de otros fenómenos físicos, ej. trayectorias balísticas, inercia, resonancia, transferencia de energía, momento, etc.
Modelar los fenómenos físicos con las propiedades eléctricas rinde una gran ventaja sobre usar modelos físicos:
los componentes eléctricos son más pequeños y baratos; son más fácilmente construidos y ejercitados.
Aunque de otra manera similar, los fenómenos, eléctricos se pueden hacer que ocurran en marcos de tiempo convenientemente cortos.
Centralmente, los sistemas trabajaron creando análogos eléctricos de otros sistemas, permitiendo a los usuarios predecir el comportamiento de los sistemas de interés al observar los análogos eléctricos. La más útil de las analogías fue la manera en que el comportamiento en pequeña escala podía ser representado con ecuaciones integrales y diferenciales, y por lo tanto podía ser usado para solucionar esas ecuaciones. Un ingenioso ejemplo de tal máquina fue el
integrador de agua construido en 1928; un ejemplo eléctrico es la máquina de Mallock construida en 1941.
A diferencia de las computadoras digitales modernas, las computadoras análogas no eran muy flexibles, y necesitan ser reconfiguradas (es decir, reprogramadas) manualmente para cambiarlas para trabajar de un problema a otro. Las computadoras análogas tenían una ventaja sobre los primeros computadores digitales en que podían ser usadas para solucionar problemas complejos usando comportamientos análogos mientras que las primeras tentativas en las computadoras digitales eran absolutamente limitadas. Pero a medida que las computadoras digitales han venido siendo más rápidas y usaban memorias más grandes (ej.
RAM o almacenamiento interno), han desplazado casi completamente a las computadoras análogas, y la programación de computadores, o codificación ha surgido como otra profesión humana.
Puesto que las computadoras eran raras en esta era, las soluciones eran a menudo
hard-coded en las formas de papel como gráficas y nomogramas, que entonces podían producir soluciones análogas a esos problemas, tales como la distribución de presiones y temperaturas en un sistema de calefacción.
Algunas de las computadoras análogas más extensamente desplegadas incluyeron dispositivos para apuntar armas, tales como los sistemas
Norden bombsight y Fire-control system para embarcaciones navales. Algunos de éstos permanecieron en uso por décadas después de la segunda guerra mundial. Un ejemplo es el Mark I Fire Control Computer, desplegado por la Armada de los Estados Unidos en una variedad de naves desde los destructores a los acorazados.
Otros ejemplos incluyeron el
Heathkit EC-1, y la computadora hidráulica MONIAC.
El arte de la computación análoga alcanzó su cenit con el
Differential analyser, inventado en 1876 por James Thomson y construido por H. W. Nieman y Vannevar Bush en el MIT comenzando en 1927. Fueron construidas menos de una docena de estos dispositivos; el más poderoso fue construido en la Escuela Moore de Ingeniería Eléctrica en la Universidad de Pensilvania, donde también fue construido el ENIAC. Las computadoras electrónicas digitales, como el ENIAC, significaron el fin para la mayoría de las máquinas análogas de computación, pero las computadoras análogas híbridas, controladas por electrónica digital, permanecían en substancial uso en los años 1950 y los años 1960, y más adelante en algunas aplicaciones especializadas.
Primeros computadores digitales
La era de computar moderno comenzó con un explosivo desarrollo antes y durante la
Segunda Guerra Mundial, a medida que los circuitos electrónicos, los relés, los condensadores, y los tubos de vacío reemplazaron los equivalentes mecánicos y los cálculos digitales reemplazaron los cálculos análogos. Las máquinas como el Atanasoff–Berry Computer, Z3, Colossus, y el ENIAC fueron construidas a mano usando circuitos que contenían relés o válvulas (tubos de vacío), y a menudo usaron tarjetas perforadas o cintas perforadas para la entrada y como el medio de almacenamiento principal (no volátil).
En esta era, un número de diferentes máquinas fueron producidas con capacidades que constantemente avanzaban. Al principio de este período, no existió nada que se asemejara remotamente a una computadora moderna, excepto en los planes perdidos por largo tiempo de Charles Babbage y las visiones??? matemáticas de
Alan Turing y otros. Al final de la era, habían sido construidos dispositivos como el EDSAC, y son considerados universalmente como computadores digitales. Definir un solo punto en la serie, como la "primera computadora", pierde muchos sutiles detalles.
El texto escrito por Alan Turing en 1936 probó ser enormemente influyente en la computación y ciencias de la computación de dos maneras. Su principal propósito era probar que había problemas (nombrados el
problema de la parada) que no podían ser solucionados por ningún proceso secuencial. Al hacer eso, Turing proporcionó una definición de una computadora universal, una construcción que vino a ser llamada máquina de Turing, un dispositivo puramente teórico que formaliza el concepto de ejecución de algoritmo, reemplazando el engorroso lenguaje universal basado en en aritmética de Kurt Gödel. Excepto por las limitaciones impuestas por sus almacenamientos de memoria finitos, se dice que las computadoras modernas son Turing completo, que es como decir que tienen la capacidad de ejecución de algoritmo equivalente a una máquina universal de Turing. Este tipo limitado de la cualidad de Turing completo es algunas veces visto como la capacidad umbral que separa las computadoras de uso general de sus precursores de propósito específico.
Para que una máquina de computación sea una computadora de propósito general práctica, debe haber algún mecanismo de lectura/escritura conveniente, como por ejemplo la cinta perforada. Para la completa versatilidad, la
arquitectura de Von Neumann usa la misma memoria para almacenar tanto los programas como los datos; virtualmente todas las computadoras contemporáneas usan esta arquitectura (o alguna variante). Mientras que es teóricamente posible implementar una computadora completa mecánicamente (como demostró el diseño de Babbage), la electrónica hizo posible la velocidad y más adelante la miniaturización que caracterizan las computadoras modernas.
En la era de la Segunda Guerra Mundial habían tres corrientes paralelas en el desarrollo de la computadora, y dos fueron ignoradas en gran parte o deliberadamente mantenidas en secreto. La primera fue el trabajo
alemán de Konrad Zuse. La segunda fue el desarrollo secreto de la computadora Colossus en el Reino Unido. Ninguna de éstas tuvieron mucha influencia en los varios proyectos de computación en los Estados Unidos. La tercera corriente de desarrollo de la computadora, el ENIAC y el EDVAC de Eckert y Mauchly, fue publicada extensamente.
Trabajando aisladamente en
Alemania, en 1936 Konrad Zuse comenzó la construcción de sus primeras calculadoras de la Z-series que ofrecían memoria y programabilidad (limitada inicialmente). La Z1 de Zuse, que aunque puramente mecánica ya era binaria, fue finalizada en 1938. Nunca trabajó confiablemente debido a problemas con la precisión de las partes.
La subsecuente máquina de Zuse, el
Z3, fue finalizada en 1941. Fue basada en relés telefónicos y trabajó satisfactoriamente. El Z3 se convirtió así en la primera computadora funcional, de todo propósito, controlada por programa. De muchas maneras era muy similar a las máquinas modernas, siendo pionera en numerosos avances, tales como números de punto flotante. El reemplazo del difícil de implementar sistema decimal, usado en el diseño temprano de Charles Babbage, por el más simple sistema binario, significó que las máquinas de Zuse eran más fáciles de construir y potencialmente más confiables, dadas las tecnologías disponibles en aquel tiempo. Esto a veces es visto como la razón principal por la que Zuse tuvo éxito donde Babbage falló.
Los programas fueron alimentados en el Z3 por medio de películas perforadas. Faltaban los
saltos condicionales, pero desde los años 1990 se ha probado teóricamente que el Z3 seguía siendo un computador universal (ignorando sus limitaciones de tamaño físico de almacenamiento). En dos aplicaciones de patente de 1936, Konrad Zuse también anticipó que las instrucciones de máquina podían ser almacenadas en el mismo almacenamiento usado para los datos - la idea clave de lo que sería conocido como la arquitectura de Von Neumann y fue implementada por primera vez en el posterior diseño del EDSAC británico (1949). Zuse también decía haber diseñado el primer lenguaje de programación de alto nivel, (Plankalkül), en 1945 (que fue publicado en 1948) aunque fue implementado por primera vez en 2000 por un equipo alrededor de Raúl Rojas en la Universidad Libre de Berlín - cinco años después de que murió Zuse.
Zuse sufrió reveses durante la Segunda Guerra Mundial cuando algunas de sus máquinas fueron destruidas en el curso de las campañas aliadas de bombardeos. Aparentemente su trabajo en gran parte siguió siendo desconocido a los ingenieros en el Reino Unido y los E.E.U.U. hasta mucho más tarde, aunque al menos la
IBM estaba enterada de ellos pues financiaron a su compañía de lanzamiento de posguerra en 1946 en el retorno por una opción en las patentes de Zuse.
Colossus
Durante la Segunda Guerra Mundial, los británicos en
Bletchley Park alcanzaron un número de éxitos al romper las comunicaciones militares alemanas cifradas. La máquina de cifrado alemana, Enigma, fue atacada con la ayuda de máquinas electromecánicas llamadas bombes. La bombe, diseñada por Alan Turing y Gordon Welchman, después de la bomba criptográfica polaca (1938), eliminaba ajustes posibles del Enigma al realizar cadenas deducciones lógicas implementadas eléctricamente. La mayoría de las posibilidades conducían a una contradicción, y las pocas restantes se podían probar a mano.
Los alemanes también desarrollaron una serie de sistemas de cifrado de
teleimpresora, muy diferentes del Enigma. La máquina Lorenz SZ 40/42 fue usada para las comunicaciones de alto nivel del ejército, llamada "Tunny" por los británicos. Las primeras intercepciones de los mensajes Lorenz comenzaron en 1941. Como parte de un ataque contra los Tunny, el profesor Max Newman y sus colegas ayudaron a especificar el colossus. El Mk I colossus fue construido entre marzo y diciembre de 1943 por Tommy Flowers y sus colegas en el Post Office Research Station en Dollis Hill en Londres y después enviado a Bletchley Park.
El colossus fue el primer dispositivo de computación totalmente electrónico. El colossus usó una gran cantidad de válvulas (
tubos de vacío). Tenía entrada de cinta de papel y era capaz de ser configurado para realizar una variedad de operaciones de lógica booleana en sus datos, pero no era Turing completo. Fueron construidos nueve Mk II Colossi (el Mk I fue convertido en un Mk II haciendo diez máquinas en total). Los detalles de su existencia, diseño, y uso fueron mantenidos secretos bien entrados los años 1970. Winston Churchill personalmente publicó una orden para su destrucción en piezas no más grandes que la mano de un hombre. debido a este secreto los Colossi no fueron incluidos en muchas historias de la computación. Una copia reconstruida de una de las máquinas Colossus está ahora en exhibición en Bletchley Park.
Desarrollos norteamericanos
En 1937,
Claude Shannon produjo su tesis magistral en el MIT que por primera vez en la historia implicaba el álgebra booleana usando relés y conmutadores electrónicos. La tesis de Shannon, intitulada A Symbolic Analysis of Relay and Switching Circuits (Un análisis simbólico de circuitos de conmutación y relés), esencialmente funda el diseño de circuitos digitales prácticos.
En noviembre de 1937,
George Stibitz, entonces trabajando en los Laboratorios Bell, terminó una computadora basada en relés que calculaba con la adición binaria y apodó con el nombre de "Modelo K" (por "kitchen" (cocina), donde él la había ensamblado). A finales de 1938, los Laboratorios Bell autorizaron un programa de investigación completo con Stibitz al timón. Su Complex Number Calculator, terminado el 8 de enero de 1940, podía calcular números complejos. En una demostración del 11 de septiembre de 1940 en la conferencia de la American Mathematical Society en el Dartmouth College, Stibitz pudo enviar, al Complex Number Calculator, comandos remotos sobre líneas telefónicas por un teletipo. Fue la primera máquina de computación usada remotamente, en este caso sobre una línea telefónica. Algunos participantes en la conferencia que atestiguaron la demostración eran John Von Neumann, John Mauchly, y Norbert Wiener, quien escribió sobre ello en sus memorias.
En 1939,
John Vincent Atanasoff y Clifford E. Berry de Iowa State University desarrollaron el Atanasoff Berry Computer (ABC), una calculadora electrónica digital de propósito especial para solucionar sistemas de ecuaciones lineares. La meta original era solucionar 29 ecuaciones simultáneas de 29 incógnitas cada una, pero debido a errores en el mecanismo del perforador de tarjetas la máquina terminada solamente podía solucionar algunas ecuaciones. El diseño usaba más de 300 tubos de vacío para alta velocidad y empleaba para la memoria condensadores fijados en un tambor que rotaba mecánicamente. Aunque la máquina ABC no era programable, fue la primera en usar circuitos electrónicos. El co-inventor del ENIAC, John Mauchly, examinó el ABC en junio de 1941, y su influencia en el diseño de la posterior máquina ENIAC es una cuestión de controversia entre los historiadores del computador. El ABC fue en gran parte olvidado hasta que se convirtió en el foco del pleito legal Honeywell vs. Sperry Rand, la decisión invalidó la patente de ENIAC (y varias otras), entre muchas razones por haber sido anticipado por el trabajo de Atanasoff.
En 1939, en los laboratorios Endicott de la IBM comenzó el desarrollo del
Harvard Mark I. Conocido oficialmente como el Automatic Sequence Controlled Calculator, el Mark I fue una computadora electromecánica de propósitos generales construida con el financiamiento de la IBM y con la asistencia del personal de la IBM, bajo dirección del matemático de Harvard, Howard Aiken. Su diseño fue influenciado por la Máquina Analítica de Babbage, usando ruedas de aritmética y almacenamiento decimal e interruptores rotatorios además de relés electromagnéticos. Era programable vía una cinta de papel perforado, y contenía varias unidades de cálculo trabajando en paralelo. Versiones posteriores contuvieron varios lectores de cinta de papel y la máquina podía cambiar entre los lectores basados en una condición. Sin embargo, la máquina no era absolutamente Turing completa. El Mark I fue trasladado a la universidad de Harvard y comenzó la operación en mayo de 1944.
ENIAC
El ENIAC (Electronic Numerical Integrator and Computer), construido en los Estados Unidos, fue el primer computador electrónico de propósito general. Construido bajo la dirección de
John Mauchly y John Presper Eckert en la universidad de Pennsylvania, era 1.000 veces más rápido que sus contemporáneos. El desarrollo y la construcción del ENIAC duró desde 1943 hasta estar operativo completamente al final de 1945.
Cuando su diseño fue propuesto, muchos investigadores creyeron que los millares de delicadas válvulas (es decir tubos de vacío) se quemarían tan frecuentemente que el ENIAC estaría con tanta frecuencia inactivo por reparaciones que sería inútil. Sin embargo, era capaz de miles de operaciones por segundo por horas enteras entre las fallas de válvulas. Validó abiertamente el uso de la electrónica para la computación en gran escala. Esto fue crucial para el desarrollo del cómputo moderno.
El ENIAC era inequívocamente un dispositivo Turing completo. Sin embargo, un "programa" en el ENIAC era definido por los estados de sus cables de remiendo e interruptores, una decepcionante disparidad con las máquinas electrónicas de
programa almacenado que se desarrollaron a partir del ENIAC. Programarlo significaba recablearlo. Las mejoras completadas en 1948 hicieron posible ejecutar programas almacenados fijados en memoria de tabla de función, que hizo la programación menos un esfuerzo "único/realizado solo una vez/único en su tipo"??, y más sistemático.
La máquina de von Neumann de primera generación y otros trabajos
Incluso antes de que el ENIAC estuviera terminado, Eckert y Mauchly reconocieron sus limitaciones y comenzaron el diseño de una nueva computadora, el
EDVAC, que debía tener programa almacenado. John von Neumann escribió un reporte de ámplia circulación que describía el diseño del EDVAC en el que tanto los programas como los datos de trabajo estaban almacenados en un solo unificado almacén. Este diseño básico, que sería conocido como la arquitectura de von Neumann, serviría como la base para el desarrollo de las primeras computadoras digitales de propósito general realmente flexibles.
En esta generación, el almacenamiento temporal o de trabajo fue proporcionado por
líneas de retardo acústico, que usaban el tiempo de propagación del sonido a través de un medio como el mercurio líquido (o a través de un alambre) para almacenar datos brevemente. Una serie de pulsos acústicos eran enviados a lo largo de un tubo; después de un tiempo, en lo que el pulso alcanzaba el extremo del tubo, el circuito detectaba si el pulso representaba un 1 ó un 0 y causaba al oscilador volver a reenviar el pulso. Otros usaron los tubos de Williams, que utilizan la capacidad de un tubo de imagen de televisión para almacenar y de recuperar datos. Por 1954, la memoria de núcleo magnético rápidamente desplazó la mayoría de las otras formas de almacenamiento temporal, y dominó el campo hasta mediados de los años 1970.
Archivo:Baby-MSIM.jpg
La primera máquina funcional de von Neumann fue el "Baby" ("Bebé") de Manchester o
Small-Scale Experimental Machine, construida en la universidad de Manchester en 1948; fue seguida en 1949 por el computador Manchester Mark I que funcionó como un sistema completo usando el tubo Williams y el tambor magnético para la memoria, y también introdujo los registros de índice. El otro competidor para el título de "primer computador digital de programa almacenado" había sido el EDSAC, diseñado y construido en la Universidad de Cambridge. Operacional en menos de un año después de la Manchester "Baby", también era capaz de abordar problemas reales. EDSAC fue inspirado de hecho por los planes para el EDVAC (Electronic Discrete Variable Automatic Computer), el sucesor del ENIAC; estos planes ya estaban en el lugar correcto para el tiempo en que el ENIAC fue operacional exitosamente. A diferencia del ENIAC, que usaba el procesamiento paralelo, el EDVAC usó una sola unidad de procesamiento. Este diseño era más simple y fue el primero en ser implementado en cada exitosa onda de miniaturización, y creciente confiabilidad. Algunos ven al Manchester Mark I/EDSAC/EDVAC como las "Evas" de la cuales casi todas las computadoras actuales derivan su arquitectura.
La primera computadora programable universal en la
Unión Soviética fue creada por un equipo de científicos bajo dirección de Sergei Alekseyevich Lebedev del Instituto Kiev de Electrotecnología, Unión Soviética (ahora Ucrania). El computador MESM (МЭСМ, Small Electronic Calculating Machine) estuvo operacional en 1950. Tenía cerca de 6.000 tubos de vacío y consumida 25 kW de energía. Podía realizar aproximadamente 3.000 operaciones por segundo. Otra máquina temprana fue el CSIRAC, un diseño australiano que corrió su primer programa de prueba en 1949. CSIRAC es el computador más viejo todavía en existencia y el primero en haber sido usado para ejecutar música digital.[4]
En octubre de 1947, los directores de J. Lyons & Company, una compañía británica del famosa por sus tiendas de té (pequeños restaurantes) pero con fuertes intereses en las nuevas técnicas de gerencia de oficinas, decidido a tomar un papel activo en promover el desarrollo comercial de los computadores. Por 1951 el computador LEO I estuvo operacional y corrió el primer job de computador de oficina rutinario regular del mundo.
La
máquina de la universidad de Manchester se convirtió en el prototipo para la Ferranti Mark I. La primera máquina Ferranti Mark I fue entregada a la Universidad en febrero de 1951 y por lo menos otras nueve fueron vendidas entre 1951 y 1957.
En junio de 1951, el
UNIVAC I (Universal Automatic Computer) fue entregado a la Oficina del Censo de los Estados Unidos. Aunque fue fabricada por Remington Rand, la máquina con frecuencia fue referida equivocadamente como la "IBM UNIVAC". Eventualmente Remington Rand vendió 46 máquinas en más de $1 millón por cada una. El UNIVAC era el primer computador 'producido en masa'; todos los predecesores habían sido unidades 'únicas en su tipo'. Usó 5.200 tubos de vacío y consumía 125 kW de energía. Usó para la memoria una línea de retardo de mercurio capaz de almacenar 1.000 palabras de 11 dígitos decimales más el signo (palabras de 72 bits). A diferencia de las máquinas de la IBM no fue equipado de un lector de tarjetas perforadas sino con una entrada de cinta magnética de metal al estilo de los años 1930, haciéndola incompatible con algunos almacenamientos de datos comerciales existentes. La cinta de papel perforado de alta velocidad y las cintas magnéticas del estilo moderno fueron usados para entrada/salida por otras computadoras de la era.
En noviembre de 1951, la compañía J. Lyons comenzó la operación semanal de un Job de valuaciones de panadería en el
LEO (Lyons Electronic Office). Éste fue la primera aplicación de negocio en tener vida en un computador de programa almacenado.
En 1952, la IBM anunció público el
IBM 701 Electronic Data Processing Machine, la primera en su excitosa 700/7000 series y su primer computador IBM mainframe. El IBM 704, introducido en 1954, usó la memoria de núcleo magnético, que se convirtió en el estándar para las máquinas grandes. El primer lenguaje de programación de propósitos generales de alto nivel implementado, FORTRAN, también fue desarrollado en la IBM para los 704 durante 1955 y 1956 y lanzado a principios de 1957. (El diseño en 1945 del leguaje de alto nivel Plankalkül, de Konrad Zuse, no fue implementado en aquel tiempo).
En 1954 la IBM introdujo un computador más pequeño y más económico que probó ser muy popular. El
IBM 650 pesaba más de 900 Kg, la fuente de alimentación pesada alrededor 1.350 Kg y ambos fueron contenidos en gabinetes separados de más o menos 1,5 x 0,9 x 1,8 metros. Costaba $500.000 o podía ser arrendada por $3.500 al mes. Su memoria de tambor tenía originalmente solamente 2.000 palabras de diez dígitos, y requería una programación arcana para una eficiente computación. Las limitaciones de la memoria tales como ésta iban a dominar la programación por décadas posteriores, hasta la evolución de las capacidades del hardware y un modelo de programación que eran más benévolos al desarrollo del software.
En 1955,
Maurice Wilkes inventó la microprogramación, que fue posteriormente ámpliamente usada en los CPUs y las unidades de punto flotante de los mainframes y de otras computadoras, tales como las series del IBM 360. La microprogramación permite al conjunto de instrucciones base ser definido o extendido por programas incorporados en el hardware (ahora a veces llamado como firmware, microcódigo, o milicódigo).
En 1956, la IBM vendió su
primer sistema de disco magnético, RAMAC (Random Access Method of Accounting and Control). Usó 50 discos de metal de 24 pulgadas (610 mm), con 100 pistas por lado. Podía almacenar 5 megabytes de datos y costaba $10.000 por megabyte. (En 2006, el almacenamiento magnético, en la forma de discos duros, costaba menos de un décimo de un centavo por megabyte).
Segunda generación: Transistores
Inicialmente, se creía que serían producidos o utilizados muy pocos computadores. Esto era debido en parte a su tamaño, al costo, y a la falta de previsión en los tipos de usos a los que podían ser aplicados los computadores.
En 1951 inicia la primera máquina de cálculo hecha en serie y hay un gran desarrollo de estas máquinas, debido a la introducción de nuevas técnicas, de nuevas unidades y métodos de programación. En 1953 el número de máquinas de cálculo en todo el mundo se eleva hasta cerca de 100 unidades.
En 1958 solamente los Estados Unidos tienen cerca de 2.500 modelos en total.
En
Italia la primera máquina de cálculo fue colocada en 1954 en la Universidad Politécnico de Milán y solamente en 1957 es usada por una firma. En 1958 es colocada en Italia un décimo de las máquinas de cálculo, que apoyan cerca de 700 empleados meccanográficos. En la conclusión de la Primera Generación, al final de los años 1950, las máquinas electrónicas de cálculo han ganado la confianza de sus usuarios. Al principio eran consideradas, más como instrumentos de cálculo y útiles para la investigación en la universidad, que máquinas útiles por sus capacidades de procesar información, para las corporaciones o las necesidades operativas de las firmas.
Las máquinas de cálculo superan más y más las restricciones debido a alguna construcción y técnicas de programación no refinadas.
Su uso no representa más una "aventura" para las firmas y las corporaciones que las colocan, sino que responden a la necesidad de solucionar los varios problemas operativos.
Alrededor de finalles de los años 1950 los tubos fueron sustituidos por
transistores. Esto levanta lo que se conoce como la "segunda generación" de máquinas de cálculo.
Usando los transistores y mejorando las máquinas y los programas, la máquina de cálculo se vuelve más rápida y económica y esto difunde en diez mil modelos en todo el mundo. Por la situación económica general cambiante, el continuo crecimiento de las firmas, la introducción de nuevas técnicas de organización y la gerencia de una firma, pasa de un uso prevalente de contabilidad y estadístico a algunas aplicaciones más complejos que se refieren a todos los sectores de activos.
El
transistor fue realizado en 1948 por los norteamericanos John Bardeen, Walter Brattain y William Shockley que compartieron por su invención el Premio Nobel de Física de 1956. El transistor es un dispositivo electrónico hecho de cristal de silicio o germanio en los que diferentes átomos de materiales son oportunamente insertados.
Para algunos valores de tensión eléctrica a la cual es expuesta el transistor, tiene la capacidad de transmitir o no la corriente, así que puede representar el 1 ó el 0 que son reconocidos por la máquina. Comparado a las válvulas, el transistor tiene muchos ventajas: tienen un precio de fabricación más pequeño y una velocidad diez veces mayor, pasando de la posición 1 a 0 en algunas millonésimas de segundo. Los tamaños de un transistor son de algunos milímetros comparado a los muchos centímetros del tubo de vacío. Las direcciones de operación segura son incrementadas porque los transistores, trabajando "en frío", evitan las roturas que eran frecuentes en las válvulas debido al calentamiento. Así, las máquinas son construidas con decenas de miles de circuitos complejos que son incluidos en un pequeño espacio.
Entre los sistemas de la segunda generación marcamos el
IBM 1401, que fue instalado desde 1960 hasta 1964 en más de cientos de miles de modelos, monopolizando alrededor de un tercio del mercado mundial. En este período también estuvo la única tentativa italiana: el ELEA de Olivetti, producido en 110 modelos.
El desarrollo notable de las máquinas de cálculo y de sus aplicaciones en este período no es debido solamente a la característica del
CPU (Unidad Central de Proceso), pero también a las continuas mejoras hechas en las memorias auxiliares y en las unidades para la toma y emisión de datos.
Las memorias de discos pueden manejar decenas de millones de letras o dígitos. Más unidades puedn ser conectadas al mismo tiempo a la máquina de cálculo, llevando así la capacidad de memoria total a algunos cientos de millones de caracteres.
Cerca de los discos que están conectados firmemente con la unidad central son introducidas algunas unidades en las cuales las pilas de discos son móviles y pueden ser fácilmente reemplazados por otra pila en pocos segundos.
Incluso si la capacidad de discos móviles es más pequeña comparada a las fijas, su intercambiabilidad garantiza una capacidad ilimitada de datos que están listos para la elaboración.
Las máquinas de cálculo de la segunda generación, a través de un dispositivo particular hecho para ordenar los datos interiores, pueden sobreponer diferentes operaciones, esto significa leer y perforar las tarjetas al mismo tiempo, ejecutar cálculos y tomar decisiones lógicas, escribir y leer la información en cintas magnéticas.
Para garantizar el continuo cambio de información entre el centro y la periferia, surgen las unidades terminales que tienen que transmitir los datos a la máquina de cálculo central que también puede estar a una distancia de cientos de kilómetros gracias a una conexión telefónica.
Post-1960: Tercera generación y más allá
La explosión en el uso de computadores comenzó con los computadores de la 'tercera generación'. Éstos dependían en la invención independiente de
Jack St. Clair Kilby y Robert Noyce, el circuito integrado (o microchip), que condujo más adelante a la invención del microprocesador, por Ted Hoff y Federico Faggin en Intel.
Durante los años 1960 había un considerable solapamiento entre las tecnologías de la segunda y la tercera generación. Tan tarde como en 1975, Sperry Univac continuaba la fabricación de máquinas de segunda generación como el
UNIVAC 494.
El microprocesador condujo al desarrollo del
microcomputador, computadores pequeños, de bajo costo, que podía ser poseído por individuos y pequeñas empresas. Los primeros microcomputadores aparecieron en los años 1970, y llegaron a ser ubicuos en los años 1980 y más allá. Steve Wozniak, cofundador de Apple Computer, es acreditado por desarrollar el primer computador casero comercializado masivamente. Sin embargo, su primera computadora, el Apple I, vino algún tiempo después del KIM-1 y el Altair 8800, y la primera computadora de Apple con capacidades de gráficos y de sonidos salió bien después del Commodore PET. La computación se ha desarrollado con arquitecturas de microcomputador, con características añadidas de sus hermanos más grandes, ahora dominantes en la mayoría de los segmentos de mercado.
Una indicación de la rapidez del desarrollo de este campo puede ser deducido por el artículo seminal de Burks, Goldstein, von Neuman, documentado en la revista Datamation de septiembre-octubre de 1962, que fue escrito, como versión preliminar 15 años más temprano. (ver las referencias abajo). Para el momento en que cualquier persona tuviera tiempo para escribir cualquier cosa, ya era obsoleto.
IBM 1400
La Serie IBM 1400 fue una serie de
computadoras transistorizadas de segunda generación de rango medio orientadas a tareas administrativas que IBM comercializó a principios de 1960. Podían ser operadas como sistemas independientes, junto con un equipo perforador de tarjetas IBM, o como equipo auxiliar de otros sistemas de computadoras.
Las máquinas de la serie 1400 almacenaban información en una memoria de núcleos magnéticos (también llamada "de núcleos de
ferrita") como cadenas de caracteres de longitud variable, terminadas en una bandera especial. La aritmética se realizaba carácter a carácter. La entrada y salida era sobre tarjeta perforada, cinta magnética e impresoras de línea de alta velocidad. Los primeros discos magnéticos estaban disponibles.
Características
Las características que destaca en ellos son las siguientes:
Sistema de
procesamiento de alta velocidad
Componentes de "estado sólido"
Flexibilidad de
programación
Entrada-Salida de alta velocidad
Capacidad
aritmética y lógica
Admiten tarjetas perforadas y, según el modelo,
cintas magnéticas y discos. La unidad de impresión modelo IBM 1403 era una impresora de líneas (1100 líneas por minuto) que permitía la impresión de líneas de hasta 132 caracteres a 10 caracteres por pulgada y 6 u 8 líneas por pulgada. La lectograbadora de tarjetas perforadas correspondía al modelo IBM 1402.
Estos equipos tenían
memoria de núcleos magnéticos, con 2 bits de zona y 4 bits para dígitos que permitían el almacenamiento en código BCD mas 1 bit llamado de "marca de palabra" y 1 bit de paridad. Una memoria podría tener 1.400 "núcleos" (configuración básica) hasta llegar a 16.000 "núcleos" mediante el agregado de la Unidad de Almacenamiento 1406.
Para la entrada/salida tenían definidas posiciones fijas de memoria:
1 a 80 recibían los datos de la tarjeta perforada cuya lectura se había ordenado.
101 a 180 contenían los datos que se deseaban perforar en tarjeta.
301 a 332 contenían los datos de la línea que se deseaba imprimir.
Lectora de cinta de papel IBM 1011
Lectora de caracteres magnéticos IBM 1419
Lectora óptica de caracteres IBM 1418
Unidad terminal de transmisión de cinta magnética IBM 7701
Perforadora de cinta de papel IBM 1012
Unidad de almacenamiento en discos IBM 1405
Consola de consulta IBM 1407
etc.
El 1401 fue el primer miembro de la serie IBM 1400. El
IBM 1410 era similar en diseño, pero con mayor espacio de direccionamiento. El IBM 1460 era idéntico en la lógica, pero no físicamente, a un 1401 completo con memoria de 16.000 bytes. El 1240 era un sistema de banco, equivalente al sistema 1440 con soporte MICR.
Miembros de la serie 1400 incluían:
IBM 1240 - 1963 «banking system».
IBM 1401 - 1959
IBM 1410 - 1960
IBM 1420 - 1962 «
high-speed bank transit system».
IBM 1440 - 1962
IBM 1450 - 1968 «Bank Data Processing System for small banks».
IBM 1460 - 1963
IBM 7010 - 1962
Lenguajes de programación
Los
Lenaguajes de Programación para la serie 1400 incluían Symbolic Programming System (SPS, un lenguaje assembler), Autocoder (lenguaje assembler), COBOL, FORTRAN, Report Program Generator (RPG) and FARGO.
Retiro
La Serie 1400 fue reemplazada por el
System/360 y máquina de bajo nivel como la IBM System/3 y las subsecuentes System/32, System/34, System/36, System/38 and AS/400.
El 1400 se retiró oficialmente a principios de 1970, sin embargo algunos periféricos de la serie 1400 se vendieron con los sistemas de tercera generación.
Un computador
IBM 1401 está siendo restaurado en forma completa y operacional por el Computer History Museum.
IBM 1440
El IBM 1440, un miembro de la
Serie IBM 1400, fue un computador de IBM diseñado como sistema de bajo costo para tareas de oficina pequeñas. fue anunciado por IBM el 11 de octubre de 1962 y desctalogado el 8 de febrero de 1971.
Con una variedad de modelos y características disponible para el IBM 1440, un sistema podía adaptarse para satisfacer en forma inmediata los requerimientos de procesamiento de datos de una oficina y posteriormente expandirse según se incrementaran la demanda. Programas originalmente escritos para el 1440 podían adaptarce facilmente al
IBM 1401.
El sistema básico consistía de:
IBM 1441 Unidad de Procesamiento conteniendo
memoria de núleos y circuitos de aritmética y lógica
hasta 16.000 posiciones alfanuméricas estaban disponibles
Consola de operador
IBM 1447
El Modelo 1 proveía control de procesamiento básico del sistema
El Modelo 2 sumaba una máquina de escribir eléctrica
Los siguientes perfiféricos estaban disponibles:
Lectora/perforadora de tarjetas
IBM 1442
El Modelo 1 leía hasta 300 tarjetas por minuto y perforaba hasta 80 columnas por segundo
El Modelo 2 leía hasta 400 tarjetas por minuto y perforaba hasta 160 columnas por segundo
IBM 1443 Flying Typebar Printer
Lvelocidad básica era de 150 lineas/minuto hasta 430 lineas/minuto, dependiendo del typebar
Typebars intercambiables con sets de 13, 39, 52, y 63 caracteres
Unidad de disco
IBM 1311
Capacidad de 2 millones de caracteres en cada pack removible
Con la característica opcional "Move Track Record", la capacidad se incrementaba a 2.980.000 de caracteres en cada pack
Cada pack pesaba menos de 5 kg
Se podían poner hasta cinco unidades 1311
El costo de compra y alquiler eran:
Precio de compra: desde $90.000, dependiendo de la configuración del sistema.
Precio de alquiler: desde $1.500, por mes, dependiendo de la configuración del sistema.
Una instalación notable incluia un 1440 "tope de línea" en el Departemento de policía de
Chicago, instalado por el superintendente reformista Orlando Wilson a principios de los '60s.
IBM 305 RAMAC
El IBM 305 RAMAC fue el primer ordenador comercial que utilizaba disco duro de cabeza móvil (unidad de disco magnético) como
almacenamiento secundario. IBM lo lanzó el 4 de septiembre de 1956. RAMAC eran las iniciales en inglés de "Sistema de Contabilidad con Memoria de Acceso Aleatorio" ("Random Access Memory ACcounting System"). Su diseño estuvo motivado por la necesidad de sustituir el fichero de tarjetas perforadas utilizado por la mayoría de las oficinas de la época. El primer RAMAC destinado a ser usado en la industria del automóvil estadounidense fue instalado en la Chrysler's MOPAR Division en 1957. Sustituyó a un gigantesco fichero que era parte del sistema de procesamiento para el control de inventario y pedidos de piezas de MOPAR. El 305 fue uno de los últimos ordenadores de tubo de vacío construídos por IBM. El sistema de disco IBM 350 almacenaba cinco millones de caracteres de siete bits (aproximadamente 4,2 MiB). Tenía cincuenta discos de veinticuatro pulgadas de diámetro. Dos brazos independientes se desplazaban verticalmente seleccionar un disco y horizontalmente para seleccionar una pista de grabación, todo para control de servomecanismos. El tiempo medio de posicionamiento en un registro era de seiscientos milisegundos. En la década de 1950 se añadieron varios modelos mejorados. El ordenador IBM RAMAC 305 con almacenamiento en disco 350 tenía un coste en "leasing" de 3.200 dólares mensuales en dólares de 1957, equivalente a un precio de compra de unos 160.000 dólares. Se construyeron más de 1.000 unidades. La producción terminó en 1961, el RAMAC pasó a ser obsoleto en 1962 con el lanzamiento del IBM 1401 y retirado del mercado en 1969.
En los Juegos Olímpicos de Invierno de
1960 en Squaw Valley (EEUU) IBM proporcionó el primer sistema de procesamiento electrónico de datos para los Juegos. El sistema consistía en un ordenador IBM RAMAC 305, una colección de datos en tarjetas perforadas, y equipamiento de impresión.
La programación del 305 no sólo requería la escritura de instrucciones en
lenguaje máquina para su almacenamiento en la memoria de tambor, sino que, además, casi todos los elementos del sistema (incluyendo el propio ordenador) se programaban insertando conectores en un panel de conexión.
El sistema 305 RAMAC original podía alojarse en una habitación de alrededor de nueve por quince metros; la unidad de disco 350 medía 2,3 metros cuadrados aproximadamente. La primera unidad de disco duro fue entregada el
13 de septiembre de 1956. Los componentes adicionales del ordenador eran una perforadora de tarjetas, una CPU, una fuente de alimentación, una unidad lectora de tarjetas/consola de operador, y una impresora.
Currie Munce, vicepresidente de investigación de
Hitachi Global Storage Technologies, la cual adquirió el negocio de almacenamiento de IBM, dijo en una entrevista publicada en el Wall Street Journal que el RAMAC completo pesaba más de una tonelada, que tenían que utilizarse grúas para moverlo y que era transportado utilizando grandes aviones de carga. Según Munce, si bien la capacidad de almacenamiento podría haberse incrementado por encima de los cinco megabytes, el departamento de marketing de IBM era contrario a este incremento porque no sabían cómo vender un producto con más capacidad de almacenamiento.
Arquitectura
El 305 era un ordenador decimal (
BCD) de longitud de "palabra" variable orientado a carácter, con una memoria de tambor que giraba a 600 revoluciones por minuto y que almacenaba 3200 caracteres alfanuméricos. Para almacenamiento temporal durante la transferencia de datos utilizaba un buffer de 100 caracteres en memoria de ferrita.
Cada carácter constaba de siete bits, y estaba compuesto por dos bits de zona ("X" y "O"), cuatro bits BCD para el valor del dígito y un bit de paridad ("R") con el formato siguiente: X O 1 2 4 8 R
Las
instrucciones sólo podían almacenarse en veinte pistas de la memoria de tambor y eran de longitud fija (diez caracteres), con el formato siguiente:
Las "palabras" de datos de
coma fija podían ser de cualquier tamaño entre uno y cien dígitos decimales, almacenándose el signo (magnitud con signo) en el bit X del dígito menos significativo.
Los registros de datos podían ser de cualquier tamaño entre uno y cien caracteres.
Memoria de tambor
La memoria de tambor estaba organizada en 32 pistas de cien caracteres cada una.
El código de color de la tabla siguiente es:
Amarillo – Almacenamiento
Azul – Aritmética
Verde – Entrada/Salida
Rojo – Función especial
L y M seleccionaban la misma pista, que contenía diez "
Acumuladores" de 10 caracteres. Como destino, L especificaba suma y M especificaba resta. (Los números en esos acumuladores se almacenaban en complemento a diez, con el signo representado por el bit X del dígito más significativo. El signo de cada acumulador se mantenía también en un relé. Sin embargo, el 305 convertía automáticamente entre su formato estándar de magnitud con signo y este formato sin necesidad de programación especial.)
Saltos
El conjunto de instrucciones del 305 no incluía saltos, sino que estos eran programados en el tablero de conexión:
Salto incondicional: El código de salida del programa (campo P) especificaba un conector de salida del programa en el tablero de conexión. Este conector y el conector de entrada que especificaba la instrucción a la que ceder control se ponían en contacto por medio de un cable.
Salto condicional: El código de salida del programa (campo P) especificaba un conector de salida del programa en el tablero de conexión. Este conector y el conector común del Selector de Condición apropiado se ponían en contacto por medio de un cable. A su vez, los dos conectores de salida del Selector de Condición tenían cables insertados que les ponían en contacto, bien con los conectores de entrada que especificaban las instrucciones a las que ceder control o bien con el conector de avance de programa para continuar con la secuencia de instrucciones. Podían establecerse condiciones complejas implicando muchos Selectores de Condición para ser ejecutadas en una única instrucción (por ejemplo, analizando los estados de signo y cero de varios acumuladores), activando uno de varios conectores de entrada de programa.
Salto múltiple (multi-way): La pista destino (campo T2) se hacía igual a "-" y los conectores de los Selectores de Carácter apropiados en el tablero de conexón tenían cables que los conectaban con los conectores de Entrada de Programa que especificaban las instrucciones a las que ceder el control, o con el conector de Avance de Programa para continuar en secuencia.
Temporización
Todas las señales de temporización del 305 se obtenían a partir de una Pista de Reloj grabada en fábrica en el tambor. La pista de reloj contenía 816 pulsos separados doce µs con un hueco de 208 µs para sincronización.
La lectura o escritura de un carácter necesitaba 96 µs.
Una instrucción típica del 305 necesitaba tres rotaciones completas del tambor (30 ms): una (fase I) para leer la instrucción, una (fase R) para leer el operando origen y copiarlo al core buffer, y una (fase W) para escribir el operando destino desde el core buffer. Si el campo P (código de salida de Programa) era distinto de blanco, entonces se añadían dos (fase D y fase P) rotaciones adicionales del tambor (20 ms) para permitir la captura de los relés. Podía instalarse la opción Improved Processing Speed (Velocidad de Procesamiento Mejorada), que permitía que las tres fases de la instrucción (IRW) se sucedieran de forma inmediata la una a la otra en lugar de esperar a la siguiente rotación para empezar; con esta opción y optimizando adecuadamente el código y la ubicación de los operandos una instrucción típica podía ejecutarse en una única rotación del tambor (10 ms).
No obstante, algunas instrucciones podían necesitar bastante más que los típicos 30 a 50 ms. Por ejemplo, la multiplicación precisaba de seis a diecinueve rotaciones del tambor (60 a 190 ms) y la división (una opción) precisaba de diez a treinta y siete giros completos del tambor (100 a 370 ms). Las instrucciones de Entrada/Salida podían bloquear el procesador durante tantas rotaciones del tambor como necesitara el hardware.
IBM 350
El almacenamiento en discos magnéticos es un componente crítico en la revolución de la computadora. IBM fue un pionero en esta área.
El IBM 350 era parte del
IBM 305 RAMAC, la computadora que introdujo al mundo la tecnología de almacenamiento en discos, el 4 de septiembre de 1956. RAMAC "Random Access Method of Accounting and Control". Su diseño fue motivado por la necesidad de sustituir las tarjetas perforadas usadas por la mayoría de los negocios del tiempo. Los IBM 350 podían almacenar 5 millones de caracteres de 7 bit (cerca de 4,4 megabytes). Tenía cincuenta discos de 61 cm (24 pulgadas) de diámetro con 100 superficies de grabación. Cada superficie tenía 100 pistas. Los discos giraban a 1200 RPM. La tasa de transferencia de datos era de 8800 caracteres por segundo. Dos cabezales de acceso independientes se movían hacia arriba y hacia abajo para seleccionar un disco y adentro y hacia fuera para seleccionar una pista de grabación, todo esto controlado por un servo. Se agregó un tercer cabezal opcional. En los años 50 se añadieron varios modelos mejorados. La computadora IBM RAMAC 305 con el disco de almacenamiento IBM 350 se podía alquilar por unos 3200 dólares al mes. Los IBM 350 fueron retirados oficialmente en 1969.
Las dimensiones del IBM 350 eran 1,52 metros de largo, 1,73 metros de alto y 74 cm ancho. IBM tenía una regla terminante, que todos sus productos no deben sobrepasar el estándar de 75 cm (29,5 pulgadas). Puesto que los IBM 350 fueron montados horizontalmente, esta regla dictó probablemente el diámetro máximo de los discos.
En una entrevista publicada en el
Wall Street Journal a Currie Munce, el vice presidente de investigación de Hitachi Global Storage Technologies, que adquirieron el negocio del almacenaje de IBM, dijo que la unidad entera de RAMAC pesaba mas de una tonelada y tuvo que ser trasladada con montacargas y ser entregada usando grandes aviones de carga. Según Munce, mientras que la capacidad de almacenamiento podía ser aumentada a unos 5 megabytes, el departamento de marketing de IBM estaba en contra del aumento de la capacidad porque no sabían vender un producto con más almacenaje.
Hoy en día, el Museo de historia de la computadora, situado en
Mountain View, California, dispone de una restauración del disco de almacenamiento del RAMAC.
El IBM 650 fue uno de los primeros
ordenadores de IBM, y el primero que fue fabricado a gran escala. Fue anunciado en 1953, y se produjeron 2000 unidades desde 1954 (la primera venta) hasta 1962. En 1969, IBM dejó de dar servicio técnico para el 650 y sus componentes.
El 650 es una máquina que codifica tanto datos como direcciones de memoria en
sistema decimal, guardando cada cifra en código biquinario. Este código guarda, mediante varios bits, dos variables: una con 2 posibles estados, y otra con 5 posibles estados.
Componentes
IBM diseñó este ordenador para los usuarios de máquinas contables anteriores, como las
tabuladoras electromecánicas (con tarjetas perforadas) o el modelo IBM 604.
Un sistema 650 venía con 3 unidades (del tamaño de armarios):
Consola (tipo 650)
Alimentación (tipo
655)
Lector de tarjetas y Perforador (tipo
533 o 537)
Otros equipos opcionales que se le podían añadir son:
Unidad de disco (
355)
Lector de tarjetas (tipo
543)
Perforador de tarjetas (tipo
544)
Unidad de control (tipo
652)
Unidad auxiliar (tipo
653)
Unidad alfabética auxiliar (tipo
654)
Unidad de cinta magnética (tipo
727)
Estación de consultas (tipo
838)
El IBM 650 pesaba alrededor de 900 kg, y su unidad de alimentación unos 1350. Cada unidad estaba en un armario separado, de 1,5 x 0,9 x 1,8 metros. El ordenador costaba 500.000 dólares, pero podía alquilarse por 3.500 al mes.
Acceso a memoria
La memoria estaba en el
tambor giratorio, que proporcionaba 2000 palabras, cada una con signo y de 10 dígitos (5 caracteres por palabra). Las direcciones de estos 2000 registros iban de 0000 a 1999 (en decimal).
Una desventaja del tambor giratorio es que hacía muy lento el acceso a memoria (tiempo de acceso medio: 2,5
ms), ya que para leer o escribir una dirección de memoria, había que esperar a que el área apropiada del tambor pasara por debajo del cabezal de lectura/escritura.
Para optimizar esto, el código de instrucciones se encontraba salteado por el tambor, a intervalos que dependían en cada momento del tiempo de ejecución de la instrucción anterior. Por eso, era necesario guardar junto con cada instrucción la dirección de la próxima instrucción a ejecutar.
Unidad auxiliar
La unidad auxiliar opcional (
IBM 653) fue presentada el 3 de mayo de 1955, y ofrecía:
memoria de ferrita con capacidad para 60 palabras más (de 10 dígitos cada una), en las direcciones 9000 a 9059. Es una memoria pequeña pero rápida (tiempo de acceso medio de 96 µs), y hacía falta para hacer de buffer de datos en operaciones de entrada/salida en cinta o en disco
3
registros índices de 4 dígitos, en las direcciones 8005 a 8007. Se indexaba la memoria del tambor sumando 2000, 4000 y 6000, y la memoria de ferrita sumando 0200, 0400 y 0600.
Instrucciones aritméticas de
coma flotante con una mantisa de 8 dígitos y 2 característicos (exponente): MMMMMMMMCC. Esto permitía usar números en el rango ±0,10000000x10-50 a ±0,99999999x10+49
Software
Entre los
programas incluidos estaba FORTRANSIT, una versión de FORTRAN que compilaba a IT (un lenguaje interpretado de la época), y que luego se compilaba a SOAP (Symbolic Optimized Assembler Program), que finalmente sería ensamblado para convertirse en lenguaje máquina.
Otro programa era una rutina interpretativa de
Bell, que mediante SOAP compilaba en dos pasos, el código SPACE (Simplified Programming Anyone Can Enjoy), un lenguaje orientado a gestión.
IBM 700/7000
La Serie IBM 700/7000 fue una serie de
computadores de gran tamaño (Mainframe) construida por IBM desde los años 1950 hasta inicios de los 1960s. La serie incluía varias arquitecturas de procesador incompatibles. Los 700s usaban lógica de tubos de vacío y se volvieron obsoletos con la introducción de los 7000s transistorizados. Los 7000s, en su momento, fueron reemplazados por el System/360, el cual fue anunciado en 1964. Sin embargo el 360/65, el primer 360 completo capaz de reemplazar a los 7000s, no estuvo disponible hasta noviembre de 1965. Problemos iniciales con el OS/360 y el alto costo de convertir el software mantuvo en servicio a muchos computadores 7000s por varios años.
Arquitecturas
La serie IBM 700/7000 tenía seis formas completamente diferentes de almacenar datos e instrucciones:
Primero (
palabras de 36/18 bit): 701 (Computador de Defensa)
Científico (palabras de 36 bit):
704, 709, 7090, 7094, 7040, 7044
Comercial (
cadenas de caracteres de largo variable): 702, 705, 7080
Serie 1400 (
cadenas de caracteres de largo variable): 7010
Decimal (palabras de 10 dígitos):
7070, 7072, 7074
Supercomputdor (palabras de 64 bit):
7030 "Stretch" ("agrandada")
La clase 700 usaba
válvulas termoiónicas, la clase 7000 estaba transistorizada. Todas las máquinas usaban (como muchos computadores de la época) memoria de núcleo magnético; excepto en los primeros modelos 701 y 702, los cuales usaban memoria CRT. Mientras que las arquitecturas eran diferentes, la máquinas compartían la misma clase de tecnología electrónica y generalmente usaban los mismos periféricos incluyendo las unidades de cinta (IBM 727 y 729), lectores de tarjetas, perforadoras de tarjetas e impresoras. Los primeros periféricos adoptaron la tecnología de las máquina de contabilidad de IBM e incluso usaban los plugboards. Posteriormente los perfiféricos fueron adoptados por la Serie IBM 1400 de linea media.
Los primeros computadores se vendieron sin software. Cuando surgieron los
sistemas operativos, con cuatro diferentes arquitecturas de mainframes más la arquitectura de línea media de la serie 1400, se convirtió en un importante problema para IBM, ya que significa por lo menos cuatro desarrollos de software diferentes.
El System/360 combinaba la mejores características de la arquitectura de las series 7000 y 1400 en un sólo diseño, sin embargo algunos modelos 360 tenían características opcionales que permitían emular las instrucciones del 1400 y 7000. Uno de los argumentos de venta del
IBM System/370 fue la emulación de la serie 1400/7000 mejorada (permitía hacerlo bajo control del sistema operativo, en lugar de reiniciar el sistema y arrancar en modo emulación, como se hacía con el 360).
Primera Arquitectura (701)
Conocido como el Computador de Defensa durante el desarrollo en el IBM Poughkeepsie Laboratory, esta máquina se dio a conocer oficialmente el
7 de abril de 1953 como la Máquina de Procesamiento de Datos Electrónica IBM 701.
Formatos de Datos
Los números tenían una longitud de 36 o 18 bits, y sólo de coma fija. (Ver:
¿por qué palabras de 36 bits?)
Los números de coma fija eran almacenados en binario con
formato de signo/magnitud.
Formato de Instrucciones
Las
instrucciones eran de 18 bits de largo, de direccionamiento simple.
Signo (1 bit) - Direccionamiento de operandos de palabra completa (-) o media palabra (+)
Opcode (5 bits) - 32 instrucciones
Direccionamiento (12 bits) - 4096 direcciones de media palabra
Para expandir la memoria de 2048 a 4096 palabras, una 33ra instrucción se añadia para usar el bit más significativo del campo de dirección para seleccionar el banco (Esta instrucción fue creada probablemente usando la instrucción "No OP", la cual parece haber sido la única instrucción con bits no usados, y que originalmente ignoraba su campo de dirección. Sin embargo, la documentación sobre esta nueva instrucción no está disponible actualmente).
Registros
Los
registros del procesador consisitian en :
AC -
Acumulador de 38-bit
MQ - Coeficiente multiplicador de 36-bit
Memoria
2.048 o 4.096 palabras binarias de 36 bits, con caracteres de 6 bits
Arquitectura Cientifíca (704/709/7090/7094)
Formatos de Datos
Los números son de 36 bits, con coma fija y flotante.
Los números de coma fija son almacenados en binario en formato de signo/magnitud.
Los números de precisión simple
coma flotante tenían signo, 8-bit exceso/128 bit de exponente, y magnitud de 29 bits
Los números de doble precisión, introducidos en el 7094, tenían signo, 17-bit exceso-65536 exponente, y una magnitud de 54
Los caracteres
alfanuméricos tenían 6-bit en formato BCD
Formato de Instrucciones
El formato de instrucciones básico tenía 3 bit de prefijo, 15 bit de decremento, 3 bit de etiqueta("tag"), y 15 bit de direccionamiento. El campo de prefijo especificaba el tipo de instrucción. El campo de decremento a menudo contenía un operando inmediato que modificaba el resultado de la operación, o era usado para definir el tipo de instrucción. Los 3 bits de etiqueta especificaban tres (siete en el 7094) índices de registro, el contenido de cada uno era restado de la dirección para obtener la dirección efectiva. El campo de dirección contenía tanto una dirección como un operando inmediato.
Registros
Los registros del procesador consisitían en:
AC -
Acumulador de 38-bit
MQ - Coeficiente multiplicador de 36-bit
XR - Índice de registro de 15-bit (tres o siete)
SI - Indicador de estado de 36-bit
Los registro del acumulador (y el coeficiente multiplicador) estaban en
formato de signo/magnitud.
Los Índices de registros opaeraban usando el formato de
Complemento a 2 y cuando se usaban para modificar una dirección de instrucción eran restados de la dirección en la instrucción. En máquinas con tres índices de registro, si la etiqueta ("tag") tenía un set de 2 o 3 bits (p.e. selección de multiples registros) entonces sus valores eran juntados antes la resta. El IBM 7094, con siete índices de registro tenía un modo "compatibilidad" para poder usar los programas de las primeras máquinas.
Los indicadores de estado permitían interactuar con el operador a través de un panel con interruptores y luces.
Memoria
704
4.096, 8.192 o 32.768; palabras binarias de 36 bit con caracteres de 6 bit
709, 7090, 7094, 7094 II
32.768; 36-bit palabras binarias de 36 bit con caracteres de 6 bit
Entrada/Salida
La serie 709/7090 usaba Canales Sincronizadores de Datos para la entrada/salida de alta velocidad, como cinta y discos. Los CSDs ejecutaban sus propios programas simples de la memoria del computador que controlaban la transferencia de datos entre la memoria y los dispositivos de E/S. La E/S de la perforadora de tarjetas y de la
impresora de alta velocidad eran a menudo transferido a cintas magnéticas y manejada desde una IBM 1401 separada. Mas adelante, los canales de datos fueron usados para conectar un 7094 y un 7044 para formar el IBM 7094/7044 Direct Coupled System (DCS) ("Sistema Directo Acoplado"). En esta configuración, el 7044 manejaba principalmente la E/S.
Programa Ensamblador FORTRAN
El Programa Ensamblador FORTRAN (FORTRAN Assembly Program, FAP) fue el macro
ensamblador por defecto para el 709, 7090, y el 7094.
Su pseudo-operación BSS, usada para reservar memoria, es el origen del nombre común de la "sección
BSS", que aun se usa en muchos lenguajes ensamblador hoy día para designar rangos de direcciones de memoria reservada del tipo que no tiene que ser grabada en la imagen ejecutable.
Arquitectura Comercial (702/705/7080)
El IBM 702 y el IBM 705 eran similares y el 705 podía correr muchos de los programas del 702 sin modificaciones, pero no eran totalmente compatibles.
El IBM 7080 fue la versión transitorizada del 705, con varias mejoras. Para compatibilidad hacia abajo, podía correr en modo 705 I, modo 705 II, modo 705 III o en modo 7080 completo.
Formato de Datos
Los datos eran representados por cadenas de longitud variables finalizadas con una marca de grabación.
Formato de Instruciones
Cinco caracteres: un caracter de opcode y 4 caracteres de dirección - OAAAA
Registros
702
dos acumuladores (A & B) - 512 caracteres
705
un acumulador - 256 characters
14 unidades de almacenaje auxiliar - 16 caracteres
1 unidades de almacenaje auxiliar - 32 caracteres
7080
1 acumulador - 256 caracteres
30 unidades de almacenaje auxiliar - 512 characters
32 unidades de almacenaje de comunicación - 8 characters
Memoria
702
2.000 to 10.000 caracteres en
tubos Williams (en incrementos de 2.000 caracteres)
Tasa de ciclo de caracteres - 23 microsegundos
705 (modelos I, II, o III)
20.000 o 40.000 o 80.000 caracteres de
memoria de núcleo magnético
Tasa de ciclo de caracteres - 17 microsegundos o 9,8 microsegundos
7080
80.000 or 160.000 caracteres de memoria de núcleo magnético
Tasa de ciclo de caracteres - 2,18 microsegundos
Arquitectura Serie 1400 (7010)
La arquitectura comercial del 700/7000 estaba inspirada en la muy exitosa
Serie IBM 1400 de computadoras administrativas de linea media. Posteriormente IBM introdujo la versión mainframe del IBM 1410 llamado IBM 7010.
Formato de Datos
Los datos eran representados por cadenas de longitud variables finalizadas con una marca de palabra
Formato de Instrucciones
Largo variable: 1, 2, 6, 7, 11, o 12 caracteres.
Registros
Ninguno, todas las instrucciones operaban en la memoria.
Memoria
100.000 caracteres.
Arquitectura Decimal (7070/7072/7074)
El
IBM 7070, IBM 7072 y el IBM 7074 eran máquinas decimales, con palabras de longitud fija. Usaban 10 dígitos como el pequeño y mas antiguo IBM 650, pero su juego de instrucciones no era compatible con éste.
Formato de Datos
Largo de palabra - 10 dígitos decimales más el signo
Codificación de Dígito -
código two-out-of-five
Coma Flotante - opcional. Exponente de dos dígitos.
Tres signos para cada palabra - Mas, Menos y Alfa
Mas y Menos indicaban valores númericos de 10 dígitos.
Alfa indicaba 5 caracteres de textos codificados por pares de dígitos. 61 = A, 91 = 1.
Formato de Instrucciones
Todas las instrucciones eran de una palabra
2 dígitos de op code (incluyendo sólo signo, Más o Menos)
2 dígitos de índice de registro
2 dígitos para campo de control - permitía seleccionar el set de dígitos, desplazamiento a la izquierda o derecha
4 dígitos de dirección
Registros
Todos los registros eran de una palabra, podían ser direccionados como memoria
Acumuladores - 3 (direcciones 9991, 9992, y 9993 - estánar; 99991, 99992, y 99993 - 7074 extendido)
Registro de Programa - 1 (dirección 9995 - estándar; 99995 - 7074 extendido)
Direccionable de consola solamente. Almacena la dirección actual.
Contador de Instrucción - 1 (dirección 9999 - estándar; 99999 - 7074 extendido)
Direccionable de consola solamente.
Índice de Registro - 99 (direcciones 0001-0099)
Memoria
5.000 a 9.990 palabras (estándar)
15.000 a 30.000 palabras (7074 extendido)
Tiempo de Acceso - 6 microsegundos (7070/7072), 4 microsegundos (7074)
Tiempo de suma - 72 microsegundos (7070), 12 microsegundos (7072), 10 microsegundos (7074)
IBM 701
IBM 701, conocido como la "calculadora de Defensa" mientras era desarrollado, fue anunciado al público el 29 de abril de 1952 y era la primera computadora científica comercial de IBM.
[1] Sus hermanos en la computación de oficina eran el IBM 702 y el IBM 650.
Características
El sistema utilizó
tubos Williams para la memoria, consistiendo en 72 tubos con una capacidad de 1024 bits, dando una memoria total de 2048 palabras de 36 bits cada uno. Cada uno de los 72 tubos de eran de 76 mm de diámetro.
La memoria se podía ampliar a un máximo de 4096 palabras de 36 bits por la adición de un segundo sistema de 72 tubos o substituyendo la memoria entera por memoria de
núcleos magnéticos. El tiempo de acceso de la memoria de tubos y de la de núcleo de ferrita era 12 microsegundos. La memoria de tubos necesitaba "refrescarse" periódicamente. Una operación entera de suma tomaba 5 ciclos de máquina de 12 microsegundos (60 microsegundos), multiplicaba y dividia en 38 ciclos de la máquina de 12 microsegundos (456 microsegundos).
Instrucciones y Datos
Las instrucciones eran de 18 bits de largo, de direccionamiento simple.
Signo (1 bits) - dirección del operando de palabra entera (-) o media palabra (+)
Opcode (5 bits) - 32 instrucciones
Dirección (12 bits) - 4096 direcciones de media palabra
Los números eran 36 bits o 18 bits de largo, consigno, coma fija.
IBM 701 tenía solamente 2 registros accesibles por el programador:
El acumulador tenía 38 bits de largo (agregando 2 bits de desbordamiento).
El multiplicador/cociente tenía 36 bits de largo.
Componentes
El sistema IBM 701 estaba compuesto por las siguientes unidades:
IBM 701 - Unidad Central de Proceso (CPU)
IBM 706 - Unidad de Almacenamiento Electroestático (2048 palabras en tubos Williams)
IBM 711 - Lectora de Tarjetas Perforadas (150 Tarj./min.)
IBM 716 - Impresora (150 Lineas/min.)
IBM 721 - Perforadora de Tarjetas (100 Tarj./min.)
IBM 726 - Unidad de Cinta Magnética (39 Bits/cm)
IBM 727 - Unidad de Cinta Magnética (78 Bits/cm)
IBM 731 - Tambor Magnético
IBM 736 - Fuente de energía Nº1
IBM 737 - Unidad de Núcleos Magnéticos (4096 palabras en memoria de núcleos de ferrita)
IBM 740 - Grabadora de la Salida de los Tubos de Rayos Catódicos (CRT)
IBM 741 - Fuente de energía Nº2
IBM 746 - Unidad de Distribución de Energía
IBM 753 - Unidad de Control de Cinta Magnética (controlaba hasta diez IBM 727s)
Se instalaron diecinueve sistemas IBM 701.[] La
Universidad de California en Livermore desarrolló un lenguaje con su sistema de compilación y ejecución para su IBM 701, llamado el "KOMPILER". IBM no desarrolló un compilador FORTRAN hasta la aparición del IBM 704.
El 701 puede reclamar se el primer computador que demostró el potencial de la
inteligencia artificial con el juego de Damas de Arthur Samuel.
El sucesor del 701 fue el
IBM 704, que estaba equipado con registros, introducido 4 años después del 701; sin embargo, el 704 incrementó el tamaño de las instrucciones de 18 bits a 36 bits para soportar las características adicionales.
IBM 702
Sistema IBM 702: de izquierda a derecha: memoria
CRT, CPU 702, Impresora 717, consola del operador, unidad de control de impresora 757, unidad de control de cinta 752, cinco unidades de cinta 727, tambor de almacenamiento 732, y unidades de cinta 727, lector de tarjetas, perforadora de tarjetas, y unidades de control de las lectoras perforadoras.
El sistema usaba almacenamiento electroestático, consistente de 14, 28, 42, 56, or 70
tubos Williams con una capacidad de 100 bits cada uno para memoria principal, formando una memoria de 2.000 a 10.000 caracteres de 7 bits cada uno (en incrementos de 2.000 caracteres), y 14 tubos Williams con una capacidad de 512 bits cada uno para los dos acumuladores de 512 caracteres.
Un sistema completo incluía las siguientes unidades:
IBM 702 Unidad Central de Procesamiento (
CPU)
IBM 712 Lectora de Tarjetas
IBM 756 Unidad de control de la lectora de tarjetas
IBM 717 Impresora
IBM 757 Unidad de control de la impresora
IBM 722 Perforadora de tarjetas
IBM 758 Unidad de control de la Perforadora de tarjetas
IBM 727 Unidad de cinta magnética
IBM 752 Unidad de control de la cinta magnética
IBM 732 Unidad de almacenamiento de tambor magnético
IBM 704
IBM 704, fue la primera
computadora producida en masa con hardware basado en aritmética de punto flotante, fue introducida por IBM en abril de 1954. La 704 mejoró significativamente a la IBM 701 en términos de arquitectura e implementación se puede decir que no fue compatible con su predecesora.
Características Hardware
Modificaciones para la 701 incluyen el uso de
memoria de núcleos (en lugar de los tubos de Williams) y la adición de tres index register. Para respaldar estas nuevas características, las instrucciones fueron expandidas para usar completamente expresiones de 36-bit. El nuevo conjunto de instrucciones se convirtió en la base para la serie de computadoras científicas de la serie IBM 700/7000.
IBM afirmó que el dispositivo era capaz de ejecutar por encima de 40,000 instrucciones por segundo. IBM vendió 123 tipos de sistemas 704 desde
1955 hasta 1960.
Software Dedicado
Fueron inicialmente desarrollados para la 704 los
lenguajes de programación: FORTRAN y LISP, así como el MUSIC 1, que se puede decir el primer programa de música para computadora de Max Mathews.
Usos de la computadora
En
1961 el matemático del MIT, Edward O. Thorp, usó la IBM 704 para descubrir primero y resolver después, la razón por la que el BlackJack no es un juego cien por ciento de azar.[1] Nacía el conteo de cartas. Lo que descubrió Thorp era que cuantas más cartas bajas salgan, más ventajas tiene el jugador y a mayor cartas altas, más ventajas tiene la banca. El libro "Beat the Dealer" (1966) descubría el método completo y provocaba el terror entre los casinos de Las Vegas y Reno en EE.UU.. Curiosamente Thorp no jugaba BlackJack, tuvo que aprender, y su experimento de campo sólo duró un fin de semana en los casinos para demostrar que tenía razón, invirtió US$ 10.000 y ganó US$ 21.000, unos US$ 70.000 de hoy.
En 1962 el físico
John Larry Kelly, Jr, creó uno de los más famosos eventos en la historia de Bell Labs al usar una IBM 704 para sintetizar el habla. El sintetizador de voz de Kelly vocoder recreó la canción Daisy Bell, con acompañamiento musical de Max Mathews. Arthur C. Clarke, autor del guión y la novela de la película 2001: A Space Odyssey, hizo famoso a M. Mathew y a su colega John Pierce ya que en una visita a los edificios de los Bell Labs Murray Hill le enseñaron una aplicación que demostraba la síntesis de voz, inspirando una de las últimas escenas de la película,[2] donde HAL 9000, el ordenador de abordo de la nave espacial, canta la misma canción.[3]
IBM 7040
El IBM 7040, una versión reducida del
IBM 7090 introducido por IBM en abril de 1963, fue uno de los últimos miembros de la serie de computadores científicos IBM 700/7000. No era totalmente compatible con el 7090. Alguna características del 7090, incluyendo índices de registros, caracteres de instrucciones y coma flotante, eran opciones a costo extra. También tenía una arquitectura de entrada/salida basada en el sincronizador de datos del IBM 1414, permitiendo usar los periféricos más modernos de IBM.
IBM 7070
¿Que es el IBM 7070?
Según el artículo referente al IBM 7070 de la Wikipedia Inglesa y diversos documentos que circulan por el mundo extenso de Internet, el IBM 7070 fue un sistema de arquitectura decimal intermedia de procesamiento de datos introducido por IBM en junio de 1960. Un procesador totalmente transistorizado que fue diseñado para aplicaciones científicas y comerciales. Fue una parte del IBM 700/7000 series, y estaba basado en transistores discretos, en vez de los tubos de vacío (vacuum tubes) utilizados en la década de los 50.
CARACTERISTICAS
Los datos utilizados tenían una longitud de palabra de 10 dígitos decimales más el signo. Los dígitos eran codificados usando
two-out-of-five code (posee exactamente diez combinaciones). La máquina se entregaba con una memoria de 5000 hasta 9990 palabras, y la velocidad de la CPU se acercaba a 27KIPS. Un sistema típico era vendido por $17.400 por mes o podía comprarse por $813.000.
El 7070 fue diseñado para ofrecer una mejora al “transistorizado
IBM 650”, el tambor de memoria del 650 fue reemplazado por un núcleo de memoria mucho más rápido. El 7070 no fue diseñado para ser compatible con el conjunto de instrucciones del 650, tardaba hasta un segundo en cada instrucción para permitir una utilización óptima del tambor, algo innecesario y suponía el despilfarro en un computador con memoria de acceso aleatorio. Se agregó un emulador para poder correr programas viejos. El 7070 también se comercializó como un IBM 705 actualizado, pero fracasó miserablemente debido a su incompatibilidad; incluida la incapacidad de representar el conjunto de caracteres del 705. IBM se vio obligado diseñar rápidamente el IBM 7080 como un "transistorizado IBM 705", que era totalmente compatible.
Gracias a sus dispositivos internos, podía procesar simultáneamente lectura y perforación de
tarjetas, cálculos y decisiones lógicas, grabar y leer información en cinta magnética, etc. Tenía capacidad de preparar 80.000 facturas por hora. Dotado de varias lectoras y perforadoras de tarjetas, la IBM 7070 podía leer 400 tarjetas por minuto, perforar 250 e imprimir 1.000 líneas por minuto. Su memoria principal de núcleos almacena 100.000 caracteres. La memoria auxiliar de discos magnéticos podía almacenar 24.000.000 de números o letras mientras que las unidades de cinta magnética podían grabar o leer 750.000 caracteres por segundo.
LENGUAJES
El lenguaje utilizado a la hora de crear el IBM 7070 fue un lenguaje ensamblador denominado Autocoder. Contenía una especie de macros, en su mayoría utilizados para la definición de la cinta de gestión de errores (IOCS). Las macros de Autocoder no podían definir otras macros. También se utilizaba el
RPG (Report Program Generator, Programa Generador de Informes), un archivo de procesamiento de lenguaje dónde se especifica el formato de registro de entrada, el formato de salida deseado, y cálculos sencillos que hacer en cada registro. Dr Louis S. Kassel de UOP también había escrito un compilador Fortran que utilizaron para los cálculos más científicos.
SISTEMA OPERATIVO
La operación normal para cargar programas y datos era desde las
tarjetas o desde las cintas. No había realmente ningún sistema operativo: cada trabajo tiene toda su máquina en sí misma. No hubo traslado de cargador: todas las compilaciones producían una salida. En 1963 se experimentó con un monitor llamado TOPSY, Tape OPerating System, que en realidad podía ejecutar una secuencia de trabajos de la cinta, recuperar el control al final de un trabajo suficiente para cargar el siguiente, pero algunos programas no podían almacenar los pocos centenares de localizaciones que incluía TOPSY.
IBM 709
El IBM 709 fue unos de los primeros sistemas de
computadoras introducidos por IBM en Agosto de 1958. Era una versión mejorada del IBM 704 y un miembro de la familia de computadores científicos IBM 700/7000.
Características
El IBM 709 agregaba entrada/salida superpuesta, direccionamiento indirecto, y tres instrucciones de "conversión" (las cuales proveían soporte de aritmética decimal, indicador de supresión de cero, y muchas otras operaciones). El 709 tenía una memoria de 32.768 palabras de
36 bit y podía ejecutar 42.000 instrucciones de suma o resta por segundo o 5.000 multiplicaciones por segundo.
Un
hardware emulador opcional permitía ejecutar programas nativos de IBM 704 en el IBM 709. Fue el primer emulador comercialmente disponible antes de 1960. Los registros y las instrucciones de 704 usadas frecuentemente eran emuladas en el hardware del 709. Las instrucciones del 704 complejas eran emuladas por software.
El 709 fue construido usando
válvulas. En noviembre de 1959 IBM introdujo la versión transistorizada del 709, llamado IBM 7090.
El
FORTRAN Assembly Program fue creado inicialmente para el 709.
Formato de Datos e Instrucciones
El formato básico de las instrucciones tenía 3 bits de prefijo, 15 bits de decremento, 3 bits de etiqueta, y 15 bit de dirección. El campo de prefijo especificaba la clase de instrucción. El campo de decremento a menudo contenía un operando inmediato para modificar el resultado de la operación, o era usado para definir con más precisión el tipo de instrucción. Los 3 bits de la etiqueta especificaban tres índices de
registro, de los cuales el contenido era restado de la dirección para producir una dirección efectiva. El campo de dirección contenía tanto una dirección como un operando inmediato.
Número de coma fija eran almacenados en formato
binario.
Número de coma flotante de precisión simple tenían signo, 8 bit de exceso, 128 de exponente y 29 bits de magnitud.
Caracteres alfanuméricos eran
BCD de 6 bits, se empaquetaban seis para formar una palabra.
El IBM 709 no incluía instrucciones decimales, per se. Sólo aceptaba instrucciones binarias, principalmente en los formatos de enteros de 36 bits con signo y de 36 bits con coma flotante. PAra enteros grandes, el Acumulador y los registros M-Q podían combinarse mediante el programa para representar enteros de 71 bits más 1 bit para el signo (representaba el doble). Las funciones de índice de registro proveían adicionalmente aritmética sin signo de 15 bits (sólo suma y resta). Los datos decimales requerían ser convertidos a binario antes de ser procesados.
Canal de E/S
La principales mejoras del 709 sobre el modelo anterior, el 704, incluían una memoria de núcleos magnéticos y el que aparentemente fue el primer uso de canales de E/S independientes. Mientras que la E/S en el 704 era programada como una función en el procesador central (las palabras eran transferidas a o desde el registro de E/S, una por vez, usando una intrucción "copy"), el 709 tenía el Sincronizador de Datos IBM-766, el cual proveía canales de E/S independientes "programables". Hasta tres Sincronizador de Datos podían conectarse al 709, cada uno tenía capacidad para controlar hasta 20 unidades de cinta y un conjunto de impresora/lectora de tarjetas/perforadora de tarjetas. Esto permitía conectar en el 709 una cantidad de dispositivos seis veces mayor a la que era posible en el 704, pudiendo realizar, además, E/S en varios dispositivos al mismo tiempo mientras la ejecución del programa continuaba en paralelo.
El Almacenamiento de Núcleo Magnético IBM-738 usado en el 709 fue también un hito en la tecnología híbrida. Aunque los controladores de la matriz de la memoria de núcleo eran con tubos de vacio, los amplificadores de los sensores de lectura se utilizaron transistores, siendo este uno de los primeros usos de los mismos en computación.
IBM 727
Un
mainframe IBM 704 con unidades de cinta IBM 727 a la izquierda. (imagen cortesía del LLNL)
La Unidad de Cinta Magnética IBM 727 fue presentada para el
IBM 701 y el IBM 702 el 25 de septiembre de 1953. Se convirtió en la unidad de cinta estándar de IBM para sus primeros computadores de la era de las válvulas. Los últimos equipos de válvulas y los equipos transitorizados usaron las unidades de cinta de la serie IBM 729. El 727 fue descatalogado el 12 de mayo de 1971.
La cinta tenía 7
pistas paralelas, seis para datos y una para mantener la paridad. Las cintas con datos en forma de caracteres (BCD) se grababan con paridad par. Las cintas binarias se grababan con paridad impar. Entre un metro y un metro y medio de cinta de aluminio se pegaban al final y al inicio de la cinta para servir como marca lógica de inicio y fin de la misma. Existía una protección contra escritura removiendo un anillo plástico de la parte posterior del carrete de la cinta.
IBM 729
La Unidad de Cinta Magnética IBM 729 fue un ícono de los sistemas de almacenamiento masivo en cinta de
IBM desde finales de los 1950s hasta mediados de los 1960s. Parte de la familia de unidades de cinta de 7 pistas de IBM fue usada en computadoras de varias series: los últimos 700, muchos 7000 y varios 1400. Al igual que su predecesor, el IBM 727 y muchos de sus sucesores, el 729 usaba una cinta magnética de 12,7 mm de hasta 730 m de largo, en carretes de hasta 267 mm de diámetro. Para permitir la rápida aceleración de la cinta, se colocaron columnas de vacío entre la cinta y los rodillos de las cabezas de lectura/escritura.
Formato de datos
La cinta tenía siete pistas paralelas, seis para datos y una para mantener la
paridad. Las cintas con datos en forma de caracteres (BCD) se grababan con paridad par. Las cintas binarias se grababan con paridad impar (Manual 709 p. 20). Entre un metro y un metro y medio de cinta de aluminio se pegaban al final y al inicio de la cinta para servir como marca lógica de inicio y fin de la misma. Existía una protección contra escritura removiendo un anillo plástico de la parte posterior del carrete de la cinta. Un GAP de 19mm entre registros daba tiempo al mecanismo para detener la cinta. Inicialmente la velocidad de la cinta era de 190 cm/s y la densidad de grabación era de 79 caracteres por cm (200 por pulgada). Modelos 729 posteriores soportaron hasta 219 y 315 caracteres por cm. A 79 caracteres por cm, una sola cinta de 730 m podía almacenar alrededor de 50.000 tarjetas perforadas (alrededor de 4.000.000 de bytes de seis bit).
La serie 729 fue reemplazada por unidades de 9 pistas instroducidas con el IBM
System/360.
Trivias
Al comienzo del desarrollo, el prototipo del 729 tenía dos luces indicadoras de estado nombradas Select ("Selección") y Idle ("sin trabajos" [pendientes]). Un día el vice-presidente visitó el laboratorio y les dijo a los ingenieros "¡Esto es inaceptable! ¡las máquinas IBM NUNCA están 'idle'!" Las etiquetas de las luces fueron rapidamente cambiadas a Select y Ready. Idle también quiere decir holgazán, vago.[
cita requerida]
En el 2.008, una unidad de cinta IBM 729 Mark 5 fue puesta en servicio en la Sociedad del Museo Australiano de Computadoras para leer 173 cintas de datos del
Programa Apolo de misiones lunares, que se creían perdidas y habían sido encontradas recientemente. Al 2.009, el Computer History Museum de Mountain View, California, tiene trabajando una unidad IBM 729 conectada a su sistema IBM 1401 (y está interesado en leer las cintas de 7 pistas del público).
Modelos
729 I
El IBM 729 I fue introducido para las computadoras
IBM 709 y IBM 705 III, tenían el mismo aspecto que el IBM 727, y usaba tubos de vacio. La principal mejora fue el uso de cabezales dobles lo que permitía verificar la escritura.
729 II
El IBM 729 II fue introducido para la
serie IBM 700/7000, con un gabinete de estilo nuevo y circuitos transitorizados. Soportaban densidad doble (79 y 219).
729 III
Alta velocidad (286 cm/s) y densidad doble (219).
729 IV
Alta velocidad (286 cm/s) y densidad doble (79, 219).
729 V
Alta densidad (315).
729 VI
Alta velocidad (286 cm/s) y densidad doble (315).
IBM CPC
La unidad IBM CPC “Card-Programmed Electronic Calculator” fue anunciada en 1949 como un computador programable, capaz de realizar cualquier secuencia predeterminada de operaciones aritméticas cifradas sobre tarjetas perforadas de 80 columnas. Era capaz también de seleccionar después de varias secuencias, operaciones ya realizadas, por lo que se podían almacenar operaciones para luego realizarlas. Todas las unidades de la CPC estaban conectadas mediante cables flexibles.
Las unidades que componen la CPC normalmente eran las siguientes:
-Una unidad IBM 605 Con esta unidad lo que se conseguía era poder leer y perforar las tarjetas electrónicas además de controlar la CPC. Por lo que estamos hablando de la Unidad de Control de la calculadora.
-Una unidad
IBM 412 o 418 Esta unidad era una calculadora. Era capaz de realizar operaciones aritméticas.
-De forma opcional se podía encontrar una unidad
IBM 941, que era una unidad de almacenamiento de datos.
En un congreso de computación patrocinado por IBM en 1946 el profesor de la
Universidad de Columbia(Nueva York) Wallace Eckert describió su sistema de laboratorio “Watson” de la siguiente manera: “Hemos conseguido experimentalmente conectar dos unidades. Una unidad es una máquina calculadora capaz de realizar operaciones aritméticas y la otra es una caja de control especial para esta máquina. El conjunto de estas dos máquinas funciona como una calculadora de secuencia con instrucciones sobre tarjetas perforadas”. En 1948 IBM conectó una unidad de control (modelo 603) y una máquina calculadora (modelo 405) donde la secuencia de operación estaba controlada por un juego de tarjetas. Estas tarjetas contenían dígitos en perforaciones con selectores de recolección para pedir las transferencias requeridas, etc. Ante las expectativas que creo, en 1949 IBM decidió sacar una versión comercial combinando una controladora por tarjetas IBM 604, la calculadora modelo IBM 402 y una memoria externa. Esta unidad era capaz de leer hasta 150 tarjetas por minuto y guardar en su memoria hasta 1016 números con signo. Así apareció en el mercado la CPC (Card Programmer Calculador). Se vendieron 2500 Unidades. En 1954 se decidió mejorar la máquina CPC cambiando la calculadora por un modelo más avanzado (412, 418, 407), de esta manera apareció la CPC-II.
El CPC podía computar programas más grandes que los modelos de calculadoras 604 o 605 por sí mismo teniéndolos guardados en las tarjetas perforadas. De hecho no había ningún límite en la longitud del programa. El CPC no era, sin embargo, un ordenador de almacenar los programas como los modelos 650 o 701. Era más bien " una calculadora para que fuera programada directamente " el significado es que las instrucciones eran ejecutadas directamente de las tarjetas. Era posible, sin embargo, almacenar hasta 10 instrucciones en la memoria y ejecutarlas repetidamente.
En la imagen se pueden apreciar las medidas de la IBM CPC. Su tamaño es considerable. Ronda alrededor de los 2 metros de largo por 1 metro de ancho.
IBM S/360
El 360 fue el primero en usar microprogramación, y creó el concepto de arquitectura de familia. La familia del 360 consistió en 6 ordenadores que podían hacer uso del mismo
software y los mismos periféricos. El sistema también hizo popular la computación remota, con terminales conectados a un servidor, por medio de una línea telefónica. Así mismo, es célebre por contar con el primer procesador en implementar el algoritmo de Tomasulo en su unidad de punto flotante.
El IBM 360 es uno de los primeros ordenadores comerciales que usó circuitos integrados, y podía realizar tanto análisis numéricos como administración o procesamiento de archivos. Se considera que la
tercera generación de computadoras comenzó con su introducción.
Fue el primer computador en ser atacado con un virus en la historia de la informática; y ese primer virus que atacó a esta máquina IBM Serie 360 (y reconocido como tal), fue el Creeper, creado en 1972
ILLIAC 1
The ILLIAC I (Illinois Automatic Computer), una
computadora pionera, hecha en 1952 por la Universidad de Illinois, fue la 1ª computadora para fines educacionales.
ILLIAC I se basaba en la
arquitectura de von Neumann del Instituto para Estudios Avanzados (IAS), editado por el matemático John von Neumann. Al contrario de otros procesadores de esa era, la ILLIAC I y el ORDVAC eran copias del mismo diseño, e intercambiaban software. El computador tenía 2.800 tubos, midiendo 3 m x 0,6 m x 2,6 m (Lg×A×Alto), y pesaba 4,5 t.
ILLIAC I era muy poderosa para su tiempo; en
1956 seguía teniendo más poder computacional que todo el Laboratorios Bell.
Debido a que la vida de los tubos era de un año, la máquina estaba en "mantenimiento preventivo" para que los tubos más viejos se reemplazaban para aumentar su trabajo. La máquina se retiró en
1962, cuando la ILLIAC II fue operacional.
Innovaciones
1955, Lejaren Hiller y Leonard Isaacson, usan la ILLIAC I para componer la "Suite Illiac," una de las primeras piezas de música escrita con ayuda de un computador.
1957, el matemático Donald B. Gillies, el físico James E. Snyder, el astrónomo George C. McVittie, S. P. Wyatt, Ivan R. King y George W. Swenson de la Universidad de Illinois usando la ILLIAC I calculan la órbita del Sputnik I dos días después de su lanzamiento
ILLIAC II
El ILLIAC II fue un computador construido en la
Universidad de Illinois y comenzó a funcionar en 1962.
ILLIAC II tenía 8192 palabras de
memoria de núcleos para el almacenamiento primario, respaladadas por 65,536 palabras de almacenamiento secundario en tambor magnético. El tiempo de acceso a la memoria principal era de 1.8 a 2 µs. El del tambor de 7 µs. Disponía de un "buffer rápido" para almacenamiento de resultados intermedios y pequeños bucles, proporcionando una funcionalidad similar a lo que hoy se conoce como memoria caché. El tiempo de acceso de esta memoria era de 0.25 µs.
El tamaño de la palabra era de 52 bits.
El formato de números en
coma flotante tenía 7 bits de exponente (potencia de 4) y 45 de mantisa.
Las instrucciones tenían 26 o 13 bits, permitiendo juntar hasta 4 instrucciones en una palabra.
Inovaciones
El ILLIAC II fue uno de los primeros computadores transistorizados. Al igual que el
Stretch, el ILLIAC II fue diseñado con "transistores futuros" que aún no habían sido inventados.
El ILLIAC II contaba con un modulo de divisón diseñado por
James E. Robertson, un co-inventor del SRT Division algorithm.
El ILLIAC II fue uno de los primeros computadores segmentadis, junto con el Stretch de IBM. El controlador de la segmentación fue diseñado por
Donald B. Gillies.
El ILLIAC II fue el primer computador en integrar circuitería independiente del tiempo, inventada por
David E. Muller.
IQ 151
IQ 151 era un ordenador personal fabricado por la compañía ZPA Nový Bor de
Checoslovaquia, ensamblado con componentes de Checoslovaquia, Estados Unidos y Rusia.
Tenía un procesador Intel 8080 - Tesla MHB8080A / 2 MHz, 32 KB RAM de memoria (más tarde, serían 64 KB) y 4 KB de ROM.
Se usaba tanto en las escuelas, como en las empresas. Los primeros ordenadores de Europa del Este fueron importados desde EE.UU. Cuando alguien lo enciende, necesita casi veinte minutos de calentamiento antes poder trabajar con él.
Manchester Mark I
Vista panorámica del Manchester Mark I, publicada en diciembre de 1948 por el diario "The Independent"
La Manchester Mark 1 fue en un principio una máquina experimental a pequeña escala llamada "The baby", construida entre
1947 y 1948 en la Universidad de Manchester, como continuación del Manchester Small-Scale Experimental Machine (SSEM), la primer computadora electrónica del mundo con programa almacenado en la misma máquina. Su diseño se pensó para demostrar el potencial que tendrían los programas almacenados en la computadora, por eso se considera la primera computadora que funcionaba con memoria RAM. Los trabajos comenzaron en Agosto de 1948, y la primera versión entró en funcionamiento en Abril de 1949, cuando un programa escrito para buscar números primos de Mersenne corrió durante nueve horas sin fallas en la noche del 16 al 17 de junio de 1949.
El
matemático Alan Turing se incorporó al proyecto en el año 1948, realizando un lenguaje de programación para la computadora.
En
1951, fue remplazada por una versión conocida como Ferranti Mark I, que surgió de la colaboración del equipo de la Universidad de Manchester y de los hermanos Ferranti que tenían una fábrica. La Ferranti Mark I fue de las primeras computadoras comerciales de la historia.
Características
Algunas de sus características fueron: una memoria principal (RAM) de 256 palabras de 40 bit cada una (o sea tenía una memoria de 1280 bytes) basada en
tubos de vacío; una memoria que almacenaba 3750 palabras; realizaba una operación estándar, como una suma, en 1.8 milisegundos y en cambio para realizar una multiplicación era mucho más lento, añadiéndole al tiempo de una operación estándar 0.6 milisegundos por cada bit que tuviera el multiplicador. La entrada era por medio de un sencillo teclado para almacenar directamente la información al computador; la salida para las comprobaciones era a través de un visualizador de tubos de rayos catódicos.
PDP-1
El PDP-1 (Programmed Data Processor-1) fue el primer
computador en serie PDP de la Digital Equipment, producida por primera vez en 1960. Es famoso por ser el computador más importante en la creación de la cultura hacker en el MIT, BBN y en otras partes. El PDP-1 fue también el hardware original donde se jugó el primer videojuego computerizado de la historia, el Spacewar de Steve Russell.
Descripción
El PDP-1 tenía palabras de 18 bits y 4K de palabras como memoria principal estándar (equivalente a 9 kilobytes), ampliable a 64K de palabras (144 KB). La duración de ciclo de
memoria de núcleo magnético era 5 microsegundos (que corresponden rudamente a una "velocidad de reloj" de 200 KHz); consecuentemente, la mayoría de las instrucciones aritméticas tomaban 10 microsegundos (100.000 operaciones por segundo) porque tenían dos ciclos de memoria: uno para la instrucción, uno para la lectura del dato del operando.
El PDP-1 fue construido principalmente con módulos de sistema de la serie DEC 1000, usando transistores Micro-Alloy y Micro-Alloy-Diffused. Velocidad medida de conmutación: 5MHz.
Periféricos
Utilizó la
cinta de papel perforado como su medio de almacenaje primario. A diferencia de las tarjeta perforadas, que podían ser clasificadas y reordenadas, la cinta de papel era difícil de editar físicamente. Esto inspiró la creación de programas del edición de texto tales como Expensive Typewriter y TECO.
Debido a que fue equipada con impresoras en y fuera de línea que fueron basadas en mecanismos de máquinas de escribir eléctricas de IBM, era capaz de que, en terminología de los años ochenta, hubiera sido llamada "impresión con acabado de calidad" y por lo tanto inspiró el TJ-2, un procesador de palabras muy temprano, que podría argumentarse como el primer
procesador de textos.
La máquina de escribir de la consola fue el producto de una compañía llamada
Soroban Engineering. Fue el mecanismo, de una máquina de escribir eléctrica IBM modelo B, modificado con la adición de interruptores para detectar cuando se tecleaba y solenoides para activar las barras de tipeado. Utilizó un mecanismo tradicional de barra de tipeado, no el mecanismo tipo "pelota de golf" de la máquina de escribir IBM Selectric, que apenas estaba comenzando a ser popular. El cambio a mayúsculas fue realizado subiendo y bajando la cesta masiva de los tipos. Fue equipada con una cinta de dos colores rojo y negro, y la interface permitió la selección de color. Los programas utilizaron comúnmente la codificación de color para distinguir la entrada del usuario de las respuestas de la máquina. El mecanismo de Soroban no era fiable y era propenso a atascos, particularmente al cambiar entre mayúsculas y minúsculas o al cambiar el color de la cinta. Se le tenía aversión ampliamente.
Los dispositivos fuera de línea eran típicamente máquinas de escribir
Friden Flexowriters que habían sido construidas especialmente para funcionar con la codificación de caracteres FIO-DEC usada por el PDP-1. Al igual que la máquina de escribir de la consola, éstas fueron construidas alrededor de un mecanismo de tipeo que era mecánicamente igual al de una máquina de escribir eléctrica IBM. Sin embargo, las Flexowriters eran altamente confiables y frecuentemente utilizadas para las largas sesiones de impresión desatendidas. Las Flexowriters tenían perforadoras y lectoras de cinta de papel mecánicas que operaban sincrónicamente con el mecanismo de la máquina de escribir. El mecanografiado era realizado a cerca de diez caracteres por segundo. Un típico procedimiento de operación del PDP-1 era hacer salir el texto a la cinta de papel perforado usando el teletipo modelo BRPE de "alta velocidad" (60 caracteres por segundo), entonces llevar la cinta a una Flexowriter para impresión fuera de línea.
Música
Los hackers del MIT también utilizaron el PDP-1 para reproducir música en armonía de cuatro partes, usando un hardware especial, cuatro
flip-flops, controlados directamente por el procesador y filtrados con simples filtros RC. La música fue preparada vía el compilador de armonía de Pete Samson, un sofisticado programa basado en texto con algunas características especialmente orientadas hacia la codificación eficiente de la música barroca. Varias horas de música fueron preparadas para él, incluyendo las fugas de Bach, todas las Eine Kleine Nachtmusik de Mozart, villancicos de navidad, y numerosas canciones populares.
PDP-10
El PDP-10 fue un computador fabricado por
Digital Equipment Corporation (DEC) desde finales de los años 1960 en adelante. El nombre significa "Programmed Data Processor model 10" (Procesador de Datos Programado modelo 10). Fue la máquina que hizo común el tiempo compartido. Es de mucha importancia en el folklore hacker debido a su adopción en los años 1970 por muchas instalaciones de computación universitarias y laboratorios de investigación, los más notables fueron el AI Lab del MIT, el SAIL de la Universidad de Stanford, y la Universidad Carnegie Mellon.
La arquitectura del PDP-10 era una versión casi idéntica de la arquitectura anterior del
PDP-6, compartiendo la misma longitud de palabra de 36 bits y extendiendo levemente el conjunto de instrucciones (pero con una implementación de hardware mejorada). Algunos aspectos del conjunto de instrucciones son únicos, lo más notable fueron las instrucciones de "byte", que operaron en campos de bits de tamaño arbitrario (en aquella época el byte no era necesariamente de ocho bits).
El procesador original del PDP-10 fue el KA10, introducido en 1968. Usaba
transistores discretos empaquetados con la tecnología Flip-Chip® de DEC, con alambrado en la parte trasera por medio de un proceso de fabricación semiautomatizado. En 1973, el KA10 fue substituido por el KI10, que usaba circuitos SSI TTL. A éste se le unió, en 1975, el KL10 de alto desempeño (posteriormente el KL20), que fue construido con ECL, estaba microprogramado, y tenía memoria caché. Un modelo más pequeño y menos costoso, el KS10, fue introducido en 1978, usando componentes bit-slice TTL y Am2901 e incluyendo el Unibus del PDP-11 para conectar los periféricos.
KA10
El KA10 tenía una máxima capacidad de memoria principal (tanto virtual como física) de 256 K
words (equivalente a 1152 KB). Tal y como venía suministrado por DEC, no incluía hardware de paginación; manejo de la memoria que consiste en dos conjuntos de protección y relocalización, llamados los registros de "base and bounds". Esto permitía, a cada mitad del espacio de dirección de usuario, ser limitado a una sección específica??? del sistema de la memoria central, designada por la base de la dirección física y el tamaño. Esto permitió el modelo, usado posteriormente por Unix, de un segmento de código compartible de solo lectura (normalmente el segmento alto), separado de un segmento de datos/pila de lectura/escritura (normalmente el segmento bajo). Algunas máquinas KA10, ej. primero en el MIT, y más adelante en el BBN, fueron modificadas para agregar soporte para la paginación, así como más memoria física.
KI10
El KI10 y procesadores posteriores ofrecieron manejo de memoria paginada, y también soportaron un más grande espacio de dirección física de 4 Mwords.
KL10 y KL20
Los modelos originales del KL10 (1070, 1080, etc.) usaron el bus de memoria original del PDP-10, con módulos de memoria externos. Módulo, en este contexto significa un gabinete, las dimensiones aproximadamente (An. x Al. x Pr.) 80 x 200 x 80 cm con una capacidad de 32 a 256 kWords de memoria de núcleos magnéticos (la imagen en el lado derecho muestra seis de estos gabinetes). Los procesadores usados en el
DECSYSTEM-20 (2040, 2050, 2060, 2065), comúnmente pero incorrectamente llamado "KL20", usaban la memoria interna montada en el mismo gabinete que el CPU. Los modelos 10xx también tenían un empaquetado diferente; vinieron en los originales gabinetes altos del PDP-10, en vez de los cortos usados posteriormente para el DECSYSTEM-20. Las diferencias entre los modelos 10xx y 20xx eran más cosméticas que reales; algunos sistemas 10xx tenían la memoria interna y la I/O al "estilo 20", y algunos sistemas 20xx tenían la memoria externa y el bus de I/O al "estilo 10". En particular, todos los sistemas de ARPAnet TOPS-20 tenían un bus de I/O porque la interface AN20 IMP fue un dispositivo de I/O. Ambos podían correr el microcódigo del TOPS-10 o el TOPS-20 y por lo tanto el sistema operativo correspondiente.
MASSbus
La arquitectura de I/O de las máquinas 20xx de la serie KL fue basada en un nuevo diseño de bus de la DEC, llamado el MASSbus. Mientras muchos atribuyeron el éxito del PDP-11 a la decisión de la DEC en hacer una
arquitectura abierta del Unibus del PDP-11. Con el KL, DEC se revirtió a la filosofía anterior, haciendo el MASSbus tanto único como propietario. Consecuentemente, no hubo fabricantes de periféricos del mercado de accesorios, que hicieran dispositivos para el MASSbus, y DEC decidió valorar sus propios dispositivos de MASSbus, notablemente la unidad de disco RP06, en un precio substancialmente alto sobre comparables dispositivos compatibles con IBM. CompuServe, diseñó su propio controlador de disco alternativo que podía operar en el MASSbus pero se conectaba con subsistemas de discos IBM estilo 3330.
Modelo B
Más adelante, la versión del "Modelo B" de los procesadores 2060 eliminaron la limitación de los 256 Kword en el espacio de dirección virtual, permitiendo el uso de hasta 32 "secciones" de hasta 256 Kwords cada una, junto con substanciales cambios al conjunto de instrucciones. Los procesadores KL10 "Modelo A" y "Modelo B" pueden ser considerados como diferentes CPUs. El primer sistema operativo que tomó ventajas de las capacidades del Modelo B fue el TOPS-20 release 3, y el direccionamiento extendido del modo usuario fue ofrecido en el TOPS-20 release 4. Las versiones del TOPS-20 después del release 4.1 solo corrían en el Modelo B.
KS10
El diseño KS10 fue lisiado para ser un Modelo A, aunque estaban presentes la mayoría de las rutas de datos necesarias para soportar la arquitectura del Modelo B cuando estaba presente. Sin duda, esto intentaba
segmentar el mercado, pero acortó grandemente la tiempo de vida del KS10.
Mejora MCA25
La mejora final al KL10 fue la actualización MCA25 de un 2060 a un 2065, que dio algunos incrementos de desempeño para programas que corrían en secciones múltiples.
Arquitectura del conjunto de instrucciones
Desde el primer PDP-6 hasta el KL-10 Modelo A, la
arquitectura del conjunto de instrucciones del modo-usuario en gran parte fue la misma. Esta sección cubre esa arquitectura.
Direccionamiento
El PDP-10 tenía palabras de 36 bits y direcciones de palabras de 18 bits. En el modo supervisor, las direcciones de instrucción corresponden directamente a la memoria física. En el modo de usuario, las direcciones son traducidas a memoria física. Los primeros modelos dieron una memoira "alta" y una "baja" a un proceso de usuario: las direcciones con el bit 0 en el tope usaron un registro base, y las direcciones más altas usaron otro. Cada segmento era contiguo. Las arquitecturas posteriores tuvieron acceso a memoria paginada, permitiendo espacios de direcciones no contiguos. Los registros también se podían direccionar como posiciones de memoria 0-15.
Registros
Había 16 registros de uso general, de 36 bits cada uno. La mitad derecha de estos registros era usada para indexado (con excepción del registro 0). Algunas instrucciones operaban en pares de registros. Había también un registro de condición que almacenaba bits adicionales de los resultados de operaciones aritméticas (ej. desbordamiento), y solo podía accesarse por algunas instrucciones.
Modo supervisor
Había dos modos operacionales, el modo supervisor y el modo de usuario. Además de la diferencia, descrita arriba, en la manera de referenciar la memoria, los programas del modo supervisor podían ejecutar operaciones de
entrada/salida.
La comunicación del modo usuario con el modo supervisor era hecha con Unimplemented User Operations (UUOs) (Operaciones de Usuario No-Implementadas): las instrucciones que no estaban definidas por el hardware eran atrapadas por el supervisor. Este mecanismo también era usado para emular operaciones que no tenían implementación por hardware en los modelos más baratos.
Tipos de datos
Los principales tipos de datos que eran directamente soportados por la arquitectura, eran la aritmética entera de 36 bits de
complemento a dos (incluyendo operaciones bitwise), punto flotante de 36 bits, y medias palabras. El punto flotante extendido de 72 bits era soportado por medio instrucciones especiales diseñadas para ser usadas en secuencias de multi-instrucciones. Los pointers de byte eran soportados por instrucciones especiales. Una palabra consistiendo de un medio "contador" y medio "pointer" soportaba regiones limitadas de memoria, notablemente las pilas.
Conjunto de instrucciones
El conjunto de instrucciones es muy simétrico. Cada instrucción consiste de 36 bits, repartidos de la siguiente manera:
un opcode de 9 bits,
un código de registro de 4 bits, y,
un campo de direccionamiento efectivo de 23 bits, que a su vez consiste en:
un bit de indirección,
un código de registro de 4 bits, y,
un desplazamiento (offset) de 18 bits.
La ejecución de la instrucción comienza calculando la dirección efectiva. Se agrega el contenido del registro dado (si no es cero) al offset, entonces si el bit indirecto es 1, se lee la palabra en la dirección calculada y se repite el cálculo del direccionamiento efectivo (posiblemente indefinidamente, pero de hecho terminará con un trap después de 32 iteraciones). La dirección efectiva resultante puede ser usada por la instrucción que trae el contenido de la memoria, o simplemente como una constante. Así, por ejemplo, MOVEI A,3(C) suma 3 a los 18 bits más bajos del registro C y pone el resultado en el registro A, sin tocar la memoria.
Hay tres clases principales de instrucciones: aritméticas, lógicas, y de movimiento; salto condicional (conditional jump); salto condicional (conditional skip) (que puede tener efectos secundarios); y varias pequeñas clases.
Las operaciones de aritmética, lógica, y movimiento incluyen variantes que operan de:
inmediato-a-registro,
memoria-a-registro,
registro-to-memoria, y
registro-y-memoria-a-ambos o memoria-a-memoria.
Dado que que los registros actúan como parte de la memoria, operaciones de registro-a-registro también están definidas. (No todas las variantes son útiles, aunque están bien definidas). Por ejemplo, la operación ADD tiene como variantes ADDI (sumar una constante inmediata de 18 bits a un registro), ADDM (sumar el contenido del registro a la Memoria), ADDB (sumar a Ambos (Both), es decir, sumar el contenido del registro a la memoria y también poner el resultado en el registro). Un ejemplo más elaborado es HLROM (Half Left to Right Ones to Memory) (mitad izquierda a derecha, unos a memoria), que toma la mitad izquierda del contenido del registro, y lo pone en la mitad derecha de la posición de memoria, y reemplazala mitad izquierda de la posición de memoria con unos.
Las operaciones condicionales de salto (conditional jump) examinan el contenido del registro y saltan a una localización dada dependiendo del resultado de la comparación. Por ejemplo, JUMPN A, LOC salta a LOC si A no es cero. Hay también saltos condicionales basados en el registro de condición del procesador.
Las operaciones condicionales de salto (conditional skip) comparan contenidos de registro y de memoria y, dependiendo del resultado de la comparación, saltan la siguiente instrucción (que a menudo es un salto incondicional). Un ejemplo simple es CAMN A, LOC que compara el contenido del registro A con el contenido de la localización LOC y salta la instrucción siguiente si no son iguales. Un ejemplo más elaborado es TLCE A, LOC (que significa "Test Left Complement, Skip if equal") (Prueba el complemento a dos, salta si es igual), que usando el contenido de LOC como una máscara, selecciona los bits correspondientes en la mitad izquierda del registro A. Si todos esos bits son Igual a cero, salta la siguiente instrucción; y en cualquier caso, Reemplaza esos bits por su complemento booleano.
Algunas clases de instrucción más pequeñas incluyen las instrucciones de shift/rotate y las instrucciones de llamada a procedimientos. Particularmente notables son las instrucciones de
pila PUSH y POP y las correspondientes instrucciones de llamada a pila PUSHJ y POPJ. Las instrucciones de byte usan un formato especial de palabra indirecta para extraer y almacenar campos de bits de tamaño arbitrario, avanzando posiblemente el pointer a la unidad siguiente.
Software
El
sistema operativo original del PDP-10 fue llamado simplemente "Monitor", pero posteriormente fue renombrado TOPS-10, para el momento en que el sistema comenzó a ser conocido como el DECsystem-10. Las primeras versiones del Monitor y del TOPS-10 formaron la base del sistema operativo WAITS de Stanford y del Compuserve time-sharing system.
Con el tiempo, algunos operadores del PDP-10 comenzaron a correr sistemas operativos ensamblados de components importantes desarrollados fuera de DEC. Por ejemplo, el Scheduler principal vino de una universidad, el Disk Service de otra, etc. Los servicios de tiempo compartido comerciales como CompuServe,
Online Systems, y Rapidata mantuvieron sofisticados grupos internos de programación de sistemas, de manera de poder modificar el sistema operativo como fuera necesario para sus propios negocios sin ser dependientes en la DEC u otros. De algunas maneras, éste fue uno de los primeros ambientes de fuente abierta, aunque los operadores comerciales tendieron a solamente tomar código de fuentes abiertas, guardando sus propias mejoras propietarias para ellos mismos.
BBN desarrolló su propio sistema operativo alternativo,
TENEX, que se convirtió bastante rápidamente en el estándar de facto en la comunidad de investigación. Posteriormente DEC portó Tenex al KL10, mejorándolo considerablemente, y lo nombró TOPS-20, formando la línea DECSYSTEM-20. El MIT también había desarrollado su propio sistema influyente, ITS (nombrado así para parodiar al sistema operativo CTSS).
Clones
En los
años 1970, los investigadores en Xerox PARC, frustrados por la denegación de la gerencia superior de la compañía para que los dejaran comprar un PDP-10 (Xerox acababa de comprar el SDS, y quería que PARC usara una máquina SDS), diseñadron y construyeron dos sistemas clones para su propio uso, que nombraron "MAXC" (pronunciado "Max", en honor de Max Palevsky, quien había vendido el SDS a Xerox). Corrían una versión modificada de TENEX.
Los intentos de terceros de vender clones del PDP-10 fueron relativamente fracasados; ver
Foonly, System Concepts, y XKL.
Cancelación e influencia
El PDP-10 fue eventualmente eclipsado por las máquinas
supermini de VAX (descendientes del PDP-11) cuando la DEC reconoció que las líneas de productos PDP-10 y VAX estaban compitiendo una con la otra y decidió concentrar su esfuerzo de desarrollo de software en el VAX, más provechoso económicamente. La cancelación de la línea de productos PDP-10 fue anunciada en 1983, incluyendo la cancelación del proyecto en curso Júpiter para producir un nuevo procesador del tope de la línea para el PDP-10 (a pesar de que ese proyecto estaba en buena forma a la hora de la cancelación).
Este acontecimiento escribió la condenación del ITS y las culturas técnicas que habían producido el
Jargon File original, pero por los años 1990 se había convertido en algo como una divisa de honor entre hackers antiguos haber tenido su primera experiencia en un PDP-10.
Las instrucciones de
lenguaje ensamblador LDB y DPB (load/deposit byte) sobreviven como funciones en el lenguaje de programación Common Lisp. Ver la sección de "notas" en el artículo LISP - el tamaño de la palabra de 36 bits del PDP-6 y el PDP-10 influenciaron por la conveniencia de programación de tener 2 pointers del LISP, cada uno con 18 bits, en una palabra.
Will Crowther creó Adventure, el prototipo del juego de aventura de computadora, para un PDP-10. Don Daglow creó al primer juego de béisbol de computadora (1971) y Dungeon (1975), el primer videojuego de rol (RPG) en un PDP-10. Walter Bright originalmente creó Empire para el PDP-10. Roy Trubshaw y Richard Bartle crearon el primer MUD en un PDP-10. Adicionalmente, Zork fue escrito en el PDP-10, e Infocom usó varios PDP-10s para el desarrollo y prueba de juegos.
Trivia
Algo del
CGI para la película de la ciencia ficción TRON, de Disney, fue renderizado en el Foonly F-1, un clon del PDP-10. Es también significativo que el PDP-10 tiene una instrucción TRON (Test Right-halfword Ones and skip if Not masked) en el opcode 666 (octal). Coincidentemente, los programadores anteriores del PDP-10 crearon los juegos de video TRON del Intellivision, que siguieron al lanzamiento de la película.
Una de las colecciones más grandes de todos los tiempos de sistemas de arquitectura DECsystem-10 ensamblados, estaba en
CompuServe, que en su pico operó sobre 200 sistemas débilmente acoplados en tres centros de datos en Columbus, Ohio. CompuServe usaba estos sistemas como 'hosts', proporcionando acceso a aplicaciones comerciales así como al Servicio de Información CompuServe. Mientras que el primero de esos sistemas fueron comprados a la DEC, cuando DEC abandonó la arquitectura PDP-10 en favor del VAX, CompuServe y otros clientes del PDP-10 comenzaron a comprar las computadoras compatibles (a nivel de plugs) de Systems Concepts. En fecha enero de 2007, CompuServe continúa operando un pequeño número de máquinas con la arquitectura PDP-10 para realizar algunas funciones de facturación y encaminamiento.
Las fuentes de alimentación principales usadas en las máquinas de la serie KL eran tan ineficientes que los ingenieros de CompuServe diseñaron una fuente de alimentación de reemplazo que consumía alrededor de la mitad de energía. CompuServe ofreció licenciar el diseño de su fuente de alimentación del KL a DEC sin costo, si DEC prometía que cualquier nuevo KL comprado por CompuServe tendría instalada la fuente de alimentación más eficiente. La DEC declinó la oferta.
Otra modificación hecha al PDP-10 por los ingenieros de CompuServe fue el reemplazo, en el gabinete del procesador KI-10, de centenares de lámparas indicadoras incandescentes con módulos de lámparas
LED. El costo de la conversión fue compensado fácilmente por los ahorros en el consumo eléctrico, la reducción del calor, y la mano de obra requerida para reemplazar las lámparas quemadas. No había bancos similares de lámparas indicadoras en procesadores KL y KS.
Las máquinas de la clase KL no podían ser encendidas sin la asistencia de una computadora
front end PDP-11/40 instalada en cada sistema. El PDP-11 era cargado (booted) desde una unidad de disco RP06 de dos puertos (o alternativamente de una unidad de Disquete de 8 " o un DECtape), y entonces los comandos se podían dar al PDP-11 para comenzar el procesador principal, que típicamente era cargado desde la misma unidad de disco RP06 que el PDP-11. El PDP-11 realizaría funciones guardián una vez que el procesador principal estaba corriendo.
El sistema de KS usaba un similar procedimiento de carga. Una CPU 8080 cargaba el microcódigo de un disco de RM03 o RP06, o una cinta magnética y entonces se iniciaba el procesador principal. El 8080 cambiaba modos después de que el sistema operativo hubiera arrancado y controlaba los puertos seriales remotos de diagnóstico de la cónsola.
Systems Concepts construyó un modelo de demostración de una versión de computadora portátil del PDP-10. No se sabe si todavía existe esta unidad.
En la película
Operación Swordfish, Stanley, el hacker almacena el código para su gusano en un PDP-10 en un cuarto de archivo Cal Tech que había sido mantenido en línea, y en Internet, por "motivo histórico".
PDP-11
Computador fabricado por la empresa
Digital Equipment Corp. en las décadas de 1970 y 1980. Fue la primera minicomputadora en interconectar todos los elementos del sistema — procesador, memoria y periférico — a un único bus de comunicación, bidireccional, asíncrono. Este dispositivo, llamado UNIBUS permitía a los dispositivos enviar, recibir o intercambiar datos sin necesidad dar un paso intermedio por la memoria. La PDP-11 fue una de las series de minicomputadoras más vendidas en su época y fue una de las primeras computadoras en las que corrió el sistema Unix, desarrollado en los Laboratorios Bell. Fue evolucionando con la tecnología, pasando de tener la CPU hecha con circuitos TTL MSI a utilizar microprocesadores, como el LSI-11. Las últimas versiones, PDP-11/73 en adelante, incorporaban el J-11, con los registros duplicados, tres pilas (stack) (Usuario, Kernel y Supervisor), memoria virtual (22 bits), caché y espacios separados para instrucciones y datos. Era un chip muy ambicioso pero que nunca llegó a cumplir las espectativas, debido a discusiones y enfrentamientos entre DEC y Harris, fabricante de los chips.
Durante la
guerra fría, la arquitectura de la PDP-11 fue clonada sin autorización del constructor de manera que los programas que corrían en máquinas de esta serie podían ser ejecutados sin cambios en los clones fabricados en Europa del Este.
Cualidades técnicas
Ocho registros de 16 bits:
· Los seis primeros (%0 a %5) de propósito general.
· El séptimo (%6) es el Stack Pointer (puntero de la pila).
· El octavo (%7) es el Program Counter (contador de programa).
Tiene un conjunto de instrucciones altamente
ortogonal, con ocho modos de direccionamiento.
Es un procesador de dos direcciones.
Tiene cuatro flags: ZNVC
· Z=1 significa que el último valor que ha salido de la ALU es 0.
· N=1 significa que el último valor que ha salido de la ALU es negativo.
· V=1 significa que en la última operación de la ALU se ha producido un
desbordamiento.
· C equivale al acarreo de salida de la última operación de la ALU.
PDP-6
El PDP-6 (Programmed Data Processor-6, "Procesador de Datos Programado") fue un modelo de
computadora desarrollado por Digital Equipment Corporation (DEC) en 1963. Influyó principalmente como prototipo del PDP-10 que apareció mas tarde; el juego de instrucciones de las dos máquinas es casi idéntico.
Arquitectura
El PDP-6 fue la primer máquina "grande" de DEC. Usaba palabras de
36 bits, al igual que otras computadoras grandes de la época como IBM, Honeywell y General Electric. El direccionamiento se mantuvo en 18 bits, como en las máquinas anteriores de DEC, permitiendo tener una memoria principal de 256.000 palabras. La memoria era de núcleos de ferrita, y un sistema típico tenía 32.768 palabras (equivalente a 160kB en los máquinas modernas).
El juego de instrucciones puede catalogarse como "dirección de uno y medio"; las instrucciones contenían una dirección de memoria completa de 18 bits, y una segunda dirección de 4 bits que podía especificar una de las primeras 16 posiciones de memoria como "acumulador", o "AC". El campo de 4 bits restante en la instrucción permitía usar cualquier AC, excepto el AC0, como índice de registro.
Mucho, sino todos, de los sistemas PDP-6 estaban equipados con un opcional, la "Memoria Rápida Tipo 162", la que proveía 16 posiciones de memoria y estaba construida con flip-flops de transistores discretos. La Memoria Rápida (llamada también "acumuladores rápidos" o "ACs rápidos") sustituían a las primeras 16 posiciones de la memoria de núcleos y operaban cuatro veces más rápido.
El PDP-6 soportaba
tiempo compartido mediante el uso de un bit de estado que seleccionaba entre dos modos de operación ("Ejecutivo" y "Usuario", con acceso a la E/S, etc., siendo restringida posteriormente), y un registro simple de relocalización/protección que permitía al espacio de memoria del usuario ser limitado a un determinado segmento de la memoria principal (un segundo registro de relocalización/protección para compartir "segmentos altos" fue agregado en la PDP-10). El principal sistema operativo usado en la máquina era una versión temprana del que después sería el TOPS-10, y en varios lugares se hicieron versiones personalizadas del sistema, las cuales tenían el código fuente disponible. El sistema operativo del ITS del MIT también se baso en el PDP-6.
Usos
A nivel mundial, sólo se vendieron 23 PDP-6, la cantidad más baja de cualquier equipo DEC. Era complejo y costoso de construir, así como también complicado de instalar y poner operacional en el lugar del cliente. Adicionalmente, las pocas ventas hicieron que el PDP-6 fuera "duro de vender". Luego de un corto periodo en el mercado, DEC dió a conocer que estaba dejando el mercado de los 36 bits para concentrarse en sus máquinas mas chicas nuevamente. Poco tiempo después de que corrieran estos rumores, comenzaron a trabajar en un nuevo diseño de 36 bits, el cual se lanzaría como la
PDP-10.
El PDP-6 era impopular debido a la placa 6205, una placa grande (28 x 23 cm) la cual contenía 1 bit de AR, MB, y MQ (por lo tanto, había 36 de estas). Tenía 88 transistores, 2 conectores de 18 pines y dos de 22 pines (dos en cada lado del módulo). Debido a todos esos conectores, cambiar un placa era un trabajo importante, y por la fomrma en que se acoplaban, reparar una falla podía causar otra. También había miedo de apagar un PDP-6, debido a que ello ocasionaba, generalmente, que al menos una placa 6205 fallara.
Legado
La experiencia con la 6205 llevó los diseñadores de los primeros modelos de
PDP-10, el KA10 y KI10, para utilizar sólo placas pequeñas. No fue hasta el KL10 que las placas grandes fueron utilizadas nuevamente. Unos pocos coleccionistas tienen placas 6205, que las guardan celosamente como preciadas posesiones.
El directorio de DEC seguía considerando al sistema útil, porque se vendía a líderes en tecnología, como las universidades. Esto dió a DEC una serie de ventajas, incluyendo un pie en ese mercado, el acceso a asesoramiento sobre la futura dirección técnica de un grupo de usuarios con avanzados conocimientos técnicos, y, por último, una fuente de empleados jóvenes e inteligentes a medida que la empresa creció.
La PDP-6 de la
Universidad de Stanford fue mostrada en el DECUS en 1984. La máquina fue trasladada al depósito de DEC después del evento. No hay registros de que esta máquina haya sido entregada al Museo de las Computadoras, de la que no formaba parte de DEC en 1984. A fines de los '90, Compaq donó el contenido de los archivos internos de DEC al Centro del Museo Histórico de las Computadoras. El gabinete de la Memoria Rápida de la PDP-6 de Stanford formaba parte de la donación. No hay pruebas de que los módulos que estaban a la venta en la tienda de regalos en el museo de computadoras de Boston eran de la PDP-6 de Stanford, ni tampoco existe ninguna prueba de que el museo ha tenido este equipo en su poder.
Primeros discos IBM
La invención del
disco magnético, de la cual IBM fue pionera en los '50, fue un componente crítico en la revolución de las computadoras. En este artículo se analizan los principales discos de almacenamiento introducidos por IBM en los '50, '60 y principios de los '70.
El mecanismo básico de las unidades de disco rígido no ha cambiado desde el IBM 1301. Hoy se utilizan los mismo estándares que se usaban en los '50 para medir la perfomance de las unidades de disco.
Este estudio concluye con un moderno disco rígido de un
IBM PC para comparación. Pocos productos en la historia han tenido una espectacular disminución en precio y tamaño, así como también un notable incremento en la capacidad.
IBM 350
El IBM 350 era parte del
IBM 305 RAMAC, el computador que introdujo la tecnología de almacenamiento en disco en el mundo. IBM introdujo la unidad de almacenamiento IBM 350 el 4 de septiembre de 1956 antes que se de a conocer el computador entero RAMAC 305 nueve días después, el 13 de septiembre.[1] [2] [3] RAMAC significa "Random Access Method of Accounting and Control", (Método de Acceso Aleatorio de Contabilidad y Control).
Su diseño fue motivado por la necesidad de realizar tareas de contabilidad en tiempo real.
[4] El 350 almacenaba 5 millones de caracteres de 7 bits (6 bits más 1 bit de paridad) (cerca de 4,4 megabytes).[5] Tenía cincuenta discos de 610 mm de diámetro con un total de 100 superficies de grabación. Cada superficie tenía 100 pistas. El disco giraba a 1200 RPM. La tasa de transferencia era de 8.800 caracteres por segundo. Dos brazos independientes se movían hacia arriba y abajo para seleccionar un disco, y hacia adentro y afuera para seleccionar una pista, todo bajo control de un servomecanismo. Un tercer brazo se agregaba como opcional. Varios modelos mejorados se agregaron en los '50. El sistema IBM RAMAC 305 con 350 discos de almacenamiento se alquilaba por $3.200 por mes. El 350 fue oficialmente descatalogado en 1969.
El gabinete del 350 medía 152
cm de largo, 172 cm de alto y 74 cm de fondo. IBM tenía una regla estricta por la que todos sus productos debían pasar por una puerta estándar de 75 cm. Debido a que los platos del 350 se montaban horizontalmente, esta regla presumiblemente dictó el diámetro máximo de los discos.
Currie Munce, vice presidente para la investigación de
Hitachi Global Storage Technologies (la cual adquiiró el negocio de almacenamiento de IBM), declaró en una entrevista al Wall Street Journal[6] que la unidad RAMAC pesaba más de una tonelada, debía moverse con montacargas, y era despachada a través de grandes aviones de carga. De acuerdo con Munce, la capacidad de almacenamiento de la unidad podría haber sido mayor a 5 megabytes, pero el departamento de mercadeo de IBM se oponían a discos mas grandes, debido a que no sabían como vender un producto de mayor capacidad.
En el 2006, el
Computer History Museum en Mountain View, California tiene un disco RAMAC (sin el circuito de control original) el cual está en proceso de restauración.
IBM 353
El IBM 353 se usó en el
IBM 7030, era similar al IBM 1301, pero con una velocidad de transferencia más rápida. Tenía una capacidad de 2.097.152 (221) palabras de 72 bits (64 bits de datos y 8 bits ECC) y transfería 125.000 palabras por segundo.[7]
IBM 355
El IBM 355 fue anunciado el
14 de septiembre de 1956 como agregado para el popular IBM 650. Usaba el mismo mecanismo del IBM 350 y almacenaba 6 millones de dígitos decimales de 7 bits.[8] Los datos se trensferían a y desde una memoria de toros IBM 653, una opción del IBM 650 que almacenaba sólo 60 pelabaras de 10 dígitos, suficiente para un sólo sector de datos de disco o cinta.
IBM 1405
La Unidad de Almacenamiento en Disco IBM 1405 fue anunciada en 1961 y diseñada para usarse con la serie
IBM 1401 de computadoras comerciales de escala media. El 1405 almacenaba 10 millones de caracteres en un solo módulo.[9] Cada módulo tenía 25 discos grandes, totalizando 50 superficies de grabación. Los discos giraban a 1200 rpm. El Modelo 1 tenía un módulo, el Modelo 2 tenía dos módulos, apilados verticalmente. Cada superficie de grabación tenía 200 pistas y 5 sectores por pista. Los datos eran leídos o grabados a razón de 22.500 caracteres por segundo. Poseía un sólo brazo que se movía hacia arriba y abajo, adentro y afuera. El tiempo de acceso estaba entre los 100 y los 800 millisegundos (Modelo 2).
IBM 1301
La Unidad de Almacenamiento en Disco IBM 1301 fue anunciada el
2 de junio de 1961. Estaba diseñada para usarse con la serie de mainframes IBM 7000 y el IBM 1410.El 1301 almacenaba 28 millones de caracteres en un slo módulo (25 millones con el 1410). Cada módulo tenía 20 discos grandes y 40 superficies de grabación, con 250 pistas por superficie. El 1301 Modelo 1 tenía un sólo módulo, el Modelo 2 tenía dos módulos, apilados verticalmente. Los discos giraban a 1800 rpm. La transferencia de datos era de 90.000 caracteres por segundo.
El mayor avance sobre el 350 y el IBM 1405 fue el uso de brazos y cabezas separadas para cada superficie de grabación, todos los brazos se movían juntos. Esto eliminaba el tiempo necesario para sacar la cabeza de un disco y moverlo arriba o abajo al nuevo disco. La búsqueda de la pista deseada era más rápida con el nuevo sistema, la cabeza se mantenía en el medio del disco, y no era necesario iniciar el recorrido desde el borde. El tiempo máximo de acceso se redujo a 180 millisegundos.
El 1301 también tenía cabezas diseñadas aerodinámicamente para volar sobre la superficie del disco sobre una fina capa de aire. Esto permitía mantenerla mucho más cerca de la superficie del disco, lo cual mejoró mucho la perfomance.
El 1301 era conectado a la computadora a través del Control de Archivos IBM 7631. Diferentes modelos del 7631 permitían al 1301 ser usados con un computador 1410 o 7000, o compartirlo entre un 7000 y un 1410, o entre dos 7000.
El IBM 1301 Modelo 1 se alquilaba por $2.100 por mes o podía comprarse por $115.500. Los valores para el Modelo 2 eran de $3.500 por mes o $185.000 para la compra. El controlador IBM 7631 tenía un costo adicional de $1.185 por mes o $56.000 para la compra. Todos los modelos se descatalogaron en 1970.
IBM 1302
La Unidad de Almacenamiento en Disco IBM 1302 fue introducida en septiembre de 1963. Una grabación mejorada cuadruplicaba la capacidad del 1301, con 117 millones de caracteres de 6 bits por módulo. El tiempo de acceso promedio era de 165 ms y los datos podían transferirse a 180.000 caracteres/segundo, más del doble de la velocidad del 1301. Un segundo brazo accedía a un grupo seaprado de 250 pistas. Al igual que con el 1301, había un Modelo 2 con el doble de capacidad. El IBM 1302 Modelo 1 se alquilaba por $5.600 por mes o podía comprrse por $252.000. Los precios para el Modelo 2 eran de $7.900 por mes o de $355.500 para la compra. El controlador IBM 7631 tenía un costo adicional de $1.185 por mes o $56.000 para la compra. El 1302 fue descatalogado en febrero de 1965.
IBM 1311
La Unidad de Almacenamiento en Disco IBM 1311 fue anunciada el
11 de octubre de 1962 y fue diseñado para usarse en varios computadores comerciales y científicos de escala media. El 1311 tenía un tamaño similar al de un lavarropas y almacenaba 2 millones de caracteres en un disk pack removible IBM 1316.[10] Cada disk pack tenía 100 mm de alto, pesaba 4,5 y contenía seis discos de 360 mmm de diámetro, acomodando 10 superficies de grabación (las caras externas no se usaban). Las 10 cabezas individuales de L/E eran estaban montadas en un actuador común que era movido hacia adentro y afuera hidráulicamente y era detenido mecanicamente en la pista deseada antes de que ocurra la lectura o escritura. Los discos giraban a 1500 rpm. Cada superficie tenía 100 pistas con 20 sectores por pista. Cada sector almacenaba 100 caracteres. Siete modelos del 1311 fueron introducidos durante los '60s, y fueron descatalogados a principios de los '70s.
Modelos de la unidad de disco 1311
Debe ser la unidad 1 en un sistema
IBM 1440, IBM 1460 o IBM 1240. Contiene el controlador y puede controlar hasta 4 unidades Modelo 2. Introducido el 11 de octubre de 1962. Descatalogado el 8 de febrero de 1971.
Debía ser una unidad esclava. Podía agregarse a la unidad maestra (unidad 1). Introducido el 11 de octubre de 1962. Descatalogado el 6 de enero de 1975.
Debía ser la unidad 1 en un sistema
IBM 1620 o IBM 1710. Contenía el controlador y podía controlar hasta tres unidades Modelo 2. No tenía ninguna característica especial. Introducido el 11 de octubre de 1962. Descatalogado el 12 de mayo de 1971.
Debía ser la unidad 1 en un sistema
IBM 1401. Contenía el controlador y podía controlar hasta cuatro unidades Modelo 2. Introducido el 11 de octubre de 1962. Descatalogado el 8 de febrero de 1971.
Debía ser la unidad 1 en un sistema
IBM 1410, IBM 7010, o IBM 7740. Contenía el controlador y podía controlar hasta cuatro unidades Modelo 2. La Búsqueda Directa era estándar en este modelo. Introducido el 7 de enero de 1963. Descatalogado el 12 de mayo de 1971.
No hay información disponible, probablemente una unidad maestra (unidad 1). Introducida el
5 de marzo de 1968. Descatalogado el 2 de febrero de 1971.
No hay información disponible, probablemente una unidad maestra (unidad 1). Introducida el
5 de marzo de 1968. Descatalogado el 2 de febrero de 1971.
Las características especiales opcionales eran
Búsqueda Directa: Sin esta característica, cada búsqueda volvía primero a la pista cero.
Rastreo de Disco: Búsqueda rápida automática para una condición o un identificador.
Búsqueda Solapada: Permitía superponer UNA lectura o escritura y cualquir otra búsqueda.
Grabación de Pista: Incrementaba la capacidad del disco escribiendo UN archivo grande por pista en lugar de hacerlo por sectores.
La Unidad 1 (la unidad maestra: modelos 1, 3, 4 y 5) era alrededor de 30 cm más ancha que otras unidades (la unidad esclava: modelo 2), para contener las fuentes de corrientes y la lógica de control.
Los Disk Packs IBM 1316 estaban cubiertos por una covertura de plástico transparente y se le colocaba una tapa inferior cuando no se usaba. Una manija ubicada al centro de la covertura superior se giraba para soltar la tapa inferior. Entonces, se baría la unidad 1311 y el disk pack se colocaba en la unidad (asumiendo que estaba vacía). La manija se giraba nuevamente para trabar los discos en su lugar y liberar la covertura, la cual era removida y se cerraba la tapa de la unidad. Para retirar el disk pack, se usaba el proceso inverso.
IBM 2311
La Unidad de Almacenamiento de Acceso Directo IBM 2311 fu eintroducida en 1964 para usarse con toda la serie
System/360. También estaba disponible con el IBM 1130 y (usando la Unidad de Control 2841) el IBM 1800. El mecanismo del 2311 era casi diéntico al del 1311, pero mejoras en la grabación permitían una densidad de datos mayor. El 2311 almacenaba 7,25 millones de bytes en un solo "disk pack" IBM 1316 removible (el mismo tipo usado en el IBM 1311) el cual constaba de seis platos que giraban como una sola unidad. Cada superficie de grabación tenía 200 pistas mas tres pistoas opcionales que podían usarse en el caso de que se descubrieran pistas dañadas. El tiempo de búsqueda promedio era de 85 ms. La taza de transferencia de datos era de 156 kB/s.
El 2311 tenía 10 cabezas individuales de L/E montadas en un actuador común el cual era movido hacia adentro y afuera en forma hidráulica, y era detenido mecánicamente en la pista deseada antes de leer o escribir. El 2311 estaba organizado en cilindros, pistas y registros (un cilindro se refiere a todas las superficies con la misma pista en cada uno de los cinco platos). El registro 0 estaba reservado para sincronización.
Debido a que el 2311 era para usarse con una amplia variedad de computadoras en la línea de productos 360, su interconexión eléctrica estaba estandarizada. Esto creó la oportunidad para que otros fabricantes produjeran unidades de discos con conector compatible para usar con los computadores IBM y de esta forma nació una industria entera.
IBM 2314/2319
La Unidad de Almacenamiento de Acceso Directo IBM 2314 fue introducida el
23 de abril de 1965, un año después del System/360. Era para usarse con las líneas System/360 System/370. Con la característica de Conmutador de Dos Canales, que podía tener una interfaz con dos canales 360/370. El mecanismo de acceso al disco del 2314 era similar al del 2311, pero mejoras en la grabación permitieron una mayor densidad de datos. El 2314 almacenaba 29.176.000 caracteres (200×20×7294 bytes por pista) en un solo "disk pack" removible IBM 2316 el cual era similar en diseño al 1316 pero con una altura mayor debido a que se incrementó el número de discos de seis a once. El paquete de discos 2316 contenía once discos de 360 mm de diámetro con un total de 20 superficies grabables. El acceso consistía de 20 cabezas individuales de L/E montadas en un actuador común el cual era movido hacia adentro y afuera en forma hidráulica, y era detenido mecánicamente en la pista deseada antes de leer o escribir. Cada superficie de grabación tenía 200 pistas. El tiempo de acceso fue inicialmente el mismo del 2311, pero modelos posteriores eran más rápidos como resultado de mejoras en el actuador hidráulico. La taza de transferencia fue duplicada a 310 kB/s.
El Modelo 1 original consistía de una unidad de control 2314, un módulo de disco simple 2312, y dos módulos 2313 de cuatro discos para un total de 9 unidades de disco. Sólo ocho de las nueve unidades estaban disponibles para el usuario al mismo tiempo. La novena unidad estaba como repuesto para el usuario y también podía trabajar 'fuera de línea' con un Ingeniero de Campo mientras las otras unidades estaban en uso por el cliente. Cada una de las nueve unidades estaban montadas en cajones individuales y podían soltarse y quitarse para tener acceso al paquete de discos. Debido a su apariencia, recibieron el sobrenombre de 'Hornos de Pizza'.
Otros Modelos 2314 que siguieron fueron: 2314 Modelo A con combinaciones de uno a nueve unidades. 2314 Modelo B con unidades de disco 2319 disponibles en modelos de tres, seis y nueve unidades. Una unidad de control 2844 podía agregarse a la unidad de control 2314 permitiendo dos canales S/360 simultáneos para acceder a dos unidades de disco separadas.
IBM 2310
La Unidad de Cartucho Removible IBM 2310 fue introducida con el
IBM 1130 en 1965. Podía almacenar 512.000 palabras (1.024.000 bytes) en un cartucho IBM 2315. Un solo disco de aluminio recubierto de óxido de 360 mm giraba dentro de una carcaza de plástico con aperturas para los brazos de lectura/escritura con dos cabezas.
IBM 2321
La Celda de Datos IBM 2321 fue anunciada en abril de 1964 como un componente del
IBM System/360. El 2321 contenía hasta diez celdas de datos removibles e intercambiables. Cada celda de datos contenía 200 tiras de cinta magnética, siendo ésta cinta el soporte básico de grabación. La capacidad de almacenamiento total era de 400 millones de bytes, u 800 millones de dígitos decimales. Hasta ocho 2321 podían conectarse a la unidad de control IBM 2841, para una capacidad total de más de 3 GB. Según se informó, la Celda de Datos requería 23 litros de aceite de motor. A pesar de la compleja mecánica de los movimientos de selección, lectura y retorno de una tira a la bandeja, fue un dispositivo exitoso.
Debido a que este dispositivo utilizaba una cinta como medio de grabación, muchos autores no consideran al 2321 una unidad de disco. Sin embargo, el sistema operativo del System 360 de IBM direccionaba al 2321 como un dispositivo de almacenamiento rotatorio de acceso directo, e.g., una unidad de disco, con una dirección de búsqueda de 6 bytes de la forma 0BBTCC, donde el primer byte es cero y los restantes direccionan la bandeja (por ejemplo, la celda), Bandeja, Tira, Cilindro y Cabeza.
El 2321 fue llamado caprichosamente el "selector de
pastas" debido a que las tiras de cinta magnética eran flexibles y recordaban la lasaña.
IBM 3330
La Unidad de Almacenamiento de Acceso Directo IBM 3330, nombre en código Merlin, fue introducido en junio de 1970 para usarse con el
System/370 y con el IBM System/360/195. Sus paquetes removibles almacenaban 100 MB (404x19x13.030 bytes) (el Model 11 de 1973 utilizaba los Disk Pack IBM 3336 que almacenaban 200 MB (808x19x13.030 bytes)). El tiempo de acceso era de 30 ms y la transferencia de datos se realizaba a 806 kB/s. El mayor avance introducido con el 3330 fue el uso de corrección de errores, lo que hacía a las unidades más confiables y reducía costos debido a que pequeñas imperfecciones en la superficie de los discos podían ser toleradas. La circuitería podía corregir errores de hasta 11 bits de largo. El 3330 fue descatalogado en 1983.
IBM 3340
La Unidad de Almacenamiento de Acceso Directo IBM 3340, nombre en código Winchester, fue introducida en marzo de 1973 para usarse con el IBM
System/370. Sus paquetes de discos removibles estaban sellados e incluían los brazos y las cabezas de L/E. Cuando se insertaban en la unidad, no era necesario remover ninguna cubierta o tapa. El tiempo de acceso era de 25 milisegundos y la transferencia de datos era de 885 kB/s. Se vendieron tres versiones del IBM Módulo de Datos 3348 removible, uno con 35 megabyte de capacidad, otro con 70 megabytes, y el tercero también con 70 megabytes, pero con 500 kilobytes en una cabeza separada y fija para un acceso más rápido. El 3340 también usaba corrección de errores. Fue descatalogado en 1984.
El 3340 fue desarrollado en San Jose bajo el liderazgo de Ken Haughton. Al principio se enfocaron en dos módulos removibles de 30 megabytes. Debido a esta configuración 30/30, el nombre en código Winchester fue seleccionado del famoso
fusil Winchester 30-30; posteriormente se incrementó la capacidad, pero el nombre se mantuvo.
La importancia de este producto, y la razón de que las unidades de disco, en general, se conocen como "tecnología Winchester" no tiene nada que ver con la configuración del mismo. Esta fue la primera unidad de IBM que no descargaba las cabezas del medio de grabación. La tecnología Winchester permitía a las cabezas aterrizar y despegar de la superficie del disco cuando éste paraba y arrancaba. Esto resultó en un ahorro muy importante en la complejidad de los mecanismos de movimiento de las cabezas. Rápidamente se volvió el diseño estándar entre los fabricantes de discos.
IBM 3350
La Unidad de Almacenamiento de Acceso Directo IBM 3350, nombre en código Madrid, fue introducida en 1975 para usarse con el
IBM System/370. Sus paquetes de discos removibles estaban sellados e incluían los brazos y las cabezas de L/E. La geometría del disco 3350 era de 555 cilindros, 30 cabezas y 19.069 bytes por pista que dió al Montaje de Cabezas de Disco (HDA, Head Disk Assembly) una capacidad de 317.498.850 bytes. Las unidades de disco estaban identificadas como A2, A2F, B2, B2F, C2 y C2F. Cada unidad contenía dos HDA y podían instalarse en "cadenas" de unidades. Una unidad A2 o A2F requería que se conectaran a una "unidad de control" como la IBM 3880. Después de la A2 podía haber hasta tres unidades B2 o dos B2 y una C2. La unidad C2 podía también conectarse a la unidad de control y con aquella podían ejecutarse dos operaciones de E/S al mismo tiempo en la cadena. La unidad "x2F" era una unidad x2 normal, pero sus dos HDA también tenían un área de "Cabeza Fija" sobre los primeros 5 cilindros. Esta área de Cabeza Fija estaba pensada para ser asignada por el puesto de control HASP o el JES2 y de esa manera reducir en gran medida el movimiento de las cabezas del dispositivo. En el fondo de esta fotografía de una cadena 3350 A2/B2/B2 hay una consola IBM 3066, usada en las computadoras IBM 370/165 y 370/168.
IBM 3370
IBM introdujo la Unidad de Almacenamiento de Acceso Directo IBM 3370 en enero de 1979 para sus computadores de rango medio IBM 4331, 4341 y System/38. tenía 7 discos fijos de 360 mm, y cada unidad tenñia una capacidad de 571 MB. Usaban tecnología de cabezas de película fina; la investigación de esta tecnología comenzó en el laboratorio T.J. Watson a fines de la década de 1960.
IBM 3380
La Unidad de Almacenamiento de Acceso Directo IBM 3380 fue introducida en junio de 1980. usaba la nueva tecnología de película fina y tenía una capacidad de 2,52 gigabytes con una taza de transferencia de 3 megabytes por segundo. El tiempod de acceso promedio era de 16 ms. El precio de compra cuando fue introducido estaba en el rango de $81.000 a $142.200. Debido a varios problemas que aparecieron, las primeras unidades no se entregaron hasta octubre de 1981.
IBM 3390
La serie Unidad de Almacenamiento de Acceso Directo IBM 3390 fue introducida en noviembre de 1989, ofreciendo un máximo de hasta 22 gigabytes en una cadena de unidades múltiples. El costo de este sistema variaba de acuerdo a la configuración y la capacidad, entre $90.000 y $795.000. Un Modelo 3 ampliaba la familia, anunciado el 11 de septiembre de 1991, incrementando la capacidad en aproximadamente una vez y media, una familia del Modelo 9, anunciado el 20 de mayo de 1993, complementaba el incremento en un factor de 3, para una capacidad mínima de 34 gigabytes en una sola unidad.
[16]
El 3390 Modelo 9 fue la última unidad de Disco Único Grande y Caro (a veces llamado SLED, Single Large Expensive Disk) anunciado por IBM.
La unidad de disco felxible
Otra importante innovación de IBM es la
unidad de disquete. IBM introdujo el disquete de 8 pulgadas en 1971 como un dispositivo de sólo lectura para cargar programas. En 1973 IBM entregó su primer unidad de disquete de lectura/escritura como parte del Sistema de Entrada de Datos 3740. IBM estableció los primeros estándares de las unidades de disquete de 8", pero nunca los vendió en forma separada, por lo que la industria los desarrolló en forma separada de IBM.
Almacenamiento en Disco en el 2004
IBM vendió sus operaciones de discos rígidos a
Hitachi en el añó 2002.[17] Para comparación, el disco rígido Hitachi Deskstar 7K250 PC almacena 250.000.000.000 bytes (250 gigabytes) en tres platos de 90 mm de diámetro girando a 7.200 rpm. Tiene una taza de transferencia sostenida de 61.400.000 bytes por segundo sobre un bus serial ATA. El tiempo de búsqueda promedio es de 8,5 milisegundos. Pesa 640 gramos. Al igual que todos los discos rígidos de 3,5 pulgadas, es casi tan largo como la manija de acarreo de un disk pack IBM 1316. El precio de venta en abril de 2.006 era de alrededor de US$100.
Programmed Data Processor
Los Programmed Data Processor (abreviado PDP) son una serie de ordenadores fabricados por la compañía
Digital Equipment Corporation en la década de los 60. El nombre PDP evita intencionadamente la palabra "ordenador", ya que en aquella época los ordenadores tenían la reputación de ser máquinas enormes, complicadas y caras. Así, los principales inversores de la empresa no estaban dispuestos a financiar los intentos de Digital de construir un "ordenador".
El
PDP-1 fue el primer ordenador diseñado y construido por Digital, y es considerado también el primer miniordenador de la historia.
Las familias de PDPs agrupan a las diferentes versiones de acuerdo con la longitud de sus palabras (16 bits, 32 bits, etc.).
La serie PDP
En
1959, la compañía Digital empezó a diseñar el que sería su primer ordenador, el PDP-1.
A partir de entonces,esta empresa se dedicó a construir sistemas con diferentes arquitecturas:
PDP-1 (1959)
el primer ordenador de Digital, de 18
bits, usado en los primeros trabajos de sistema operativo de tiempo compartido y prominente en los inicios de la cultura hacker. Para este computador fue diseñado el que se cree es el primer videojuego de la historia, el Spacewar!. Venía acompañado de un monitor CTR, lo cual demuestra el interés de la compañía en hacer accesible sus ordenadores a todo el mundo.
PDP-2 (-)
ordenador con arquitectura de 24 bits, que nunca se llegaría a desarrollar.
PDP-3
la primera máquina de 36 bits construida por DEC, aunque nunca la ofrecieron comercialmente. Se construyó un sólo PDP-3 en el Instituto de Ingeniería Científica de la
CIA en Waltham, MA, para procesar los datos de la firma de radar del avión de reconocimiento Lockheed A-12 en 1960.[1] [2] Similar al PDP-1, pero con palabras de 36 bits.
PDP-4 (1963)
en teoría se trataba de una versión lenta y barata del PDP-1, pero no tuvo demasiado éxito comercial. Las PDP posteriores de 18 bits están basadas en su
juego de instrucciones. Uno de los compradores de esta máquina fue el Atomic Energy of Canada. La sede en Chalk River, Ontario, poseía uno de los primeros PDP-4 con un sistema de visualización y un nuevo PDP-5 como interfaz para el reactor de investigación de instrumentación y control.
PDP-5 (1963)
la primera máquina de 12 bits de Digital. Como característica destacada, el ordenador utilizaba la posición 0 de la memoria como
contador de programa (program counter), en vez de un registro específico.
PDP-6 (1964)
máquina de 36 bits con una arquitectura elegante, y un tamaño superior a los mini-ordenadores tradicionales de Digital.
PDP-7
diseñado para ser el sustituto del PDP-4. La primera versión de Unix fue diseñada por los laboratorios Bell en este ordenador.
PDP-8 (1965)
ordenador de 12 bits con un conjunto de instrucciones muy reducido. Fue el primer gran éxito de Digital, siendo considerado el primer "ordenador personal" o mini-ordenador en llegar al público. Muchas escueles, universidades y laboratorios compraron este modelo. Su precio era de unos 18.000$, un precio relativamente bajo si lo comparamos con otros ordenadores de propósito general de la época. Edson de Castro, que había sido un miembro clave del equipo de diseño, dejó la empresa para formar
Data General, cuando su diseño para un sucesor de 16-bit para la PDP-8 fue rechazada en favor de la PDP-11; el "PDP-X" no se asemeja a la Data General Nova, a pesar del mito.
LINC-8
Un híbrido entre el
LINC y el PDP-8; con dos juegos de instrucciones. Progenitor del PDP-12.
PDP-9
sucesor del PDP-7, fue la primera máquina microprogramable de Digital.
PDP-10
máquina de
tiempo compartido de 36 bits, con un éxito considerable.
PDP-11 (1970)
el paradigma de los mini-ordenadores. Una máquina de 16 bits, considerada por muchos como el mejor conjunto de instrucciones de 16 bits, y un gran éxito de la compañía. El popular
VAX desciende de este ordenador. Este modelo fue increíblemente longevo, durando más de 20 años, y su estructura fue emulada por muchos otros ordenadores, incluyendo el Motorola 68000. El juego de instrucciones de 16 bits del PDP-11 fue muy influyente, desde el Motorola 68000 al Renesas H8 y el Texas Instruments MSP430, inspirados por el juego de instrucciones orientado a registros generales y un rico modo de direccionamiento.
PDP-12
descendiente del LINC-8. Ver
LINC y Manual del usuario del PDP-12 (en inglés).
PDP-13
no se utilizó esta designación, aparentemente por
superstición.
PDP-14
una máquina de 1 bit destinada a control industrial (
PLC). Las últimas versiones (por ejemplo, el PDP-14/30) estaba basado en la tecnología física del PDP-8.
PDP-15
la última máquina de 18 bits de DEC. Fue la única máquina de 18 bits construída con
circuitos integrados tecnología TTL, en lugar de transistores discretos. Versiones posteriores se denominaron "familia XVM".
PDP-16
utilizaba
módulos de transferenca de registros, destinados principalmente para sistemas de control industrial, con más capacidad que el PDP-14. El PDP-16/M fue introducido como la versión estándar del PDP-16.
Remington Rand 409
La Remington Rand 409 fue una calculadora de
tarjeta perforada, se programaba al cambiar físicamente el cableado en un plugboard. Diseñada en 1949, fue vendida en dos modelos: la UNIVAC 60 (1952) y la UNIVAC 120 (1953).
La máquina fue diseñada en "El Barn", en la Avenida Highlan 33, Rowayton, Rowayton,
Connecticut, un edificio que actualmente aloja la Biblioteca Pública Rowayton y el Centro de la Comunidad.
Estas máquinas fueron discontinuadas cuando la
UNIVAC 1004 fue introducida.
Poco más puede decirse de estas máquinas, la
UNIVAC destruyó todos los expedientes tanto del diseño como de la producción.
SSEM
La Máquina Experimental de Pequeña Escala de Manchester ("Manchester Small-Scale Experimental Machine", SSEM), apodada Baby, fue el primer
computador del mundo con programa almacenado. Fue desarrollado en la Universidad de Manchester por Frederic C. Williams, Tom Kilburn y Geoff Tootill, y corrió su primer programa el 21 de junio de 1948.[]
La máquina fue diseñada y construida como banco de prueba de los
tubos Williams, uno de los primeros tipos de memorias de computadora, no como un computador práctico. Sin embargo, su exitoso resultado motivó el desarrollo de la computadora Manchester Mark I, la que en su momento permitió el desarrollo del Ferranti Mark I, el primer computador comercialmente disponible de propósito general.
El SSEM tenía
palabras de 32 bit de largo y almacenaba 32 palabras. Tres bits eran usados para poner el código de instrucción, dando un máximo de ocho intrucciones, de las cuales sólo siete estaban definidas. Tres programas fueron escritos para el SSEM: el primero calculaba el factor más alto de 2, y consistía de 17 instrucciones y tardó 52 minutos para alcanzar la respuesta después de realizar 3,5 millones de operaciones.
Antecedentes
En 1936, el matemático
Alan Turing creó la teoría de una "máquina de calcular universal" (conocida hoy día como la "máquina de Turing"), una computadora que almacenaba en una cinta el programa y los datos con los que trabaja. Turing demostró que la máquina era capaz de resolver cualquier problema matemático que pueda escribirse en un algoritmo.[3] Durante los años '40, Turing y otros como Konrad Zuse, desarrollaron la idea de usar la propia memoria de la computadora para almacenar el programa y los datos, pero se considera al matemático John von Neumann como el que definió la arquitecura de los computadores, la que se mantiene en uso en la mayoría de las máquinas de hoy. Los primeros computadores eran generalmente programados modificando sus circuitos, desoldando y soldando las conecciones o a través de plugboards. No tenía el programa almacenado en memoria en forma separada, al igual que en los computadores modernos; tomaba varios días reprogramar el ENIAC para cada tarea.
La construcción de un computador von Neumann práctico dependía de la disponibilidad de dispositivos de memoria. Durante la
Segunda Guerra Mundial, investigadores que trabajaban en el problema de eliminar las interferencias de las señales de radar desarrollaron la memoria de línea de retardo, la primera memoria de uso práctico, una de las cuales fue la memoria de línea de retardo de mercurio,[] desarrollada por J. Presper Eckert. La idea era eliminar los ecos de radar de los objetos estáticos retrasando cada pulso de retorno entre pulsos transmitidos y compararlo con cada pulso almacenado, dejando en la señal resultante sólo las imágenes de los objetos que se mueven.[]
En 1945, continuando con los trabajos iniciados en
Proyecto Colossus, científicos en el Ministerios de Suministros consideraron que Gran Bretaña necesitaba Laboratorio Nacional de Matemática para coordinar los cálculos que se realizaban asistidos por máquinas.[8] Esto condujo a la creación de la Divisón Matemáticas en el Laboratorio Nacional de Fisica (National Physical Laboratory, NPL); y, el 19 de febrero de 1946, Alan Turing presentó un diseño para un computador electrónico de programa almacenado, que sería conocido como el ACE–Automatic Computing Engine.[8] Como el NPL no tenía la capacidad para construir un computador, intentaron obtener de otro lado la experiencia necesaria. Tommy Flowers y su equipo del Laboratorio de Investigación Dollis Hill perteneciente al General Post Office (GPO) se unieron; pero no pudieron dedicarse a tiempo completo debido a otros compromisos en computación y telefonía, a pesar que construyeron varias memorias memoria de línea de retardo de mercurio para el ACE.[] Maurice Wilkes, del Laboratorio de Matemáticas de la Universidad de Cambridge, y el Telecommunications Research Establishment (TRE) también fueron contactados.[]
El Departmento de Investigación Científica e Industrial (DSIR), que dirigía el NPL, presionó al TRE para darle al ACE la máxima prioridad sobre todos los trabajos que hacía el TPE para el DSIR.
[8] Esto llevó al Dr. Smith, Superintendente de la División de Física del TRE, Frederic C. Williams y a A. M. Uttley a visitar el NPL el 22 de noviembre de 1946.[] Muchos de los técnicos en circuitos de Williams fueron transferidos al Departamento de Energía Atómica y Williams ocuparía seis semanas después una cátedra en la Universidad de Manchester.[8] El TRE acordó formar un segundo equipo (con pocos integrantes) en la Universidad de Manchester para trabajar bajo las órdenes del profesor Williams; y otros trabajaron para el Dr. A. M. Uttley en el TRE.[8] El NPL también envió una propuesta y un proyecto de contrato a Williams y a Wilkes para trabajar en el ACE.[]
El ACE fue uno de varios proyectos creados en los años siguientes a la Segunda guerra Mundial que apuntaban a construir un computador con programa almacenado. El
EDVAC fue desarrollado en la Escuela de Ingeniería Eléctrica Moore de la Universidad de Pensilvania, Flowers y Wilkes visitaron la escuela presenciaron la presentación del EDVAC; el EDSAC estaba siendo desarrollado en el Laboratorio de Matemáticas de la Universidad de Cambridge; el Profesor Max Newman se fue a la Universidad de Manchester donde esperaba poder crear un laboratorio de máquinas de calcular basadas en la memoria de tubos Selectron que estaba siendo desarrolladas por la RCA.[] A pesar que los primeros computadores, como el CSIRAC, usaron con éxito la memoria memoria de línea de retardo de mercurio, esta tecnología tenía varios inconvenientes: la cantidad de datos que podían almacenar eran limitados, era pesado, y era caro. Además, porque los datos se almacenaban como una secuencia de ondas acústicas, y porque la velocidad del sonido a través de un medio varía con la temperatura, el mercurio tenía que ser mantenido a una temperatura constante.
El tubo Williams
Frederic C. Williams había presenciado un experimento en los Laboratorios Bell que demostró la efectividad de los tubos de rayos catódicos (CRT) como una alternativa al retraso de tiempo para remover los ecos del terreno en las señales de radar. Mientras trabajaba en el Establecimiento de Investigación de Telecomunicaciones (Telecommunications Research Establishment, TRE), poco antes de incorporarse a la Universidad de Manchester en diciembre de 1946, desarrolló una forma de memoria electrónica usando un CRT que se conoció como el "Tubo Williams"[] La "Máquina Experimental de Pequeña Escala de Manchester" (Manchester Small-Scale Experimental Machine, SSEM) fue diseñada para probar los tubos Williams, el primer dispositivo de alamcenamiento digital de acceso aleatorio, que podía trabajar a la velocidad de la computadora[]
Para usarse en un computador digital
binario, el dispositivo podía almacenar uno de dos valores posibles en cada posición de memoria, correspondientes a los dígitos binarios (bits) 0 y 1. Éste aprovecha la carga electróstatica positiva y negativa generada por un CRT, ya sea un guión o un punto en cualquier posición de la pantalla. Un guión generaba una carga positiva, y un punto una carga negativa, cualquiera de los cuales podía ser captado por un detector cercano a la pantalla; la carga negativa representaba un 0, y la positiva un 1. La carga podía disiparse en 0,2 segundos, pero podía refrescarse automáticamente "leyendo" los datos con la placa colcoada en el frente de la pantalla.[13]
Inicialmente los tubos Williams se desarrollaron sobre el CV1131, un CRT disponible comercialmente de 300 mm de diámetro, pero un tubo más chico de 150 mm, el CV1097, fue usado en el SSEM.[]
Diseño y Desarrollo
Esquema de la arquitectura mostrando cómo se colocaban los cuatro tubos de rayos catódicos (en verde)
Tras su nombramiento a la Presidencia de Ingeniería Eléctrica en la Universidad de Manchester, en diciembre de 1946, Williams contrató a su colega del TRE
Tom Kilburn. Para el otoño (en el hemisferio boreal) de 1947 habían incrementado la capacidad de los tubos Williams de un bit a 2.048, en una matriz de 64 por 32, y demostraron que podían almacenar los datos por cuatro horas. El ingeniero Geoff Tootill se unió al equipo a "préstamo" del TRE en septiembre de 1947, y permaneció en comisión hasta abril de 1949.
Max Newman fue nombrado director de Matemática Pura de la Universidad de Manchester en 1945. Durante la Segunda Guerra Mundial trabajó como criptógrafo en Bletchley Park, y abandonó el equipo que había producido los primeros computadores descifradores de código Colossus en 1943. Aunque Newman no desempeñó un papel muy activo en el desarrollo del SSEM, o de los otros computadores de Manchester, fue un entusiasta del proyecto y lo apoyó activamente, y acordó las compras de los excedentes de guerra, incluyendo los racks de metal del Servicio Postal General (General Post Office, GPO) de Bletchley.
En junio de 1948 el SSEM había sido construido y estaba trabajando. Tenía 5,16m de largo, 2,33m de alto, y pesaba alrededor de 1 Tm. La máquina contenía 550 válvulas, 300
diodos, 250 pentodos y consumía 3.500 watts. La unidad aritmética usaba pentodos EF50, los cuales fueron ampliamente usados durante la guerra. El SSEM usaba un tubo Williams para la memoria de 32 palabras de 32 bits, un segundo tubo trabajaba como acumulador con 32 bits, y el tercero que almacenaba la instrucción junto con su dirección. Un cuarto CRT sin la electrónica de almacenamiento de los otros tres, mostraba el patrón de bits de cualquiera de los otros tubos.
Cada palabra de 32 bits de la memoria principal podía contener tanto instrucciones como datos. En una instrucción del programa, los bits 0-12 representaban la dirección de memoria del
operando a usar, y los bits 13–15 especificaban que operación debía ejecutarse; los 24 bits restantes no se utilizaban. El SSEM tenía, por lo tanto, una arquitectura con juego de instrucciones simples. El segundo operando implícito de cualquier operación es el acumulador, y las intrucciones del programa especificaban sólo la dirección de los datos en la memoria principal.
Una palabra de la memoria principal podía ser leída, almacenada o refrescada en 360 microsegundos. Una instrucción requería cuatro accesos a la palabra para ser ejecutada, dándole un promedio de ejecución de 700 instrucciones por segundo. La memoria principal se refrescaba continuamente, y el proceso tomaba 20 milisegundos para completarse, y cada palabra de 32 bits del SSEM era leída y refrescada en forma secuencial.
El SSEM representaba los números negativos usando
complemento a dos, como muchos computadores de hoy. En esta representación, el valor del bit más significativo representa el signo; número positivos tienen un cero en esa posición, y los negativos tienen un uno. Por lo tanto, el rango de números que podía alamcenarse en cada palabra de 32 bits era de −231 a +231 − 1 (decimal: -2.147.483.648 to +2.147.483.647).
Programación
El juego de instrucciones de tres bits del SSEM permitía un máximo de 8 instrucciones diferentes (23). En contraste con la convención moderna, la máquina almacenaba el dígito menos significativo a la izqueirda; por lo que un uno era representado en tres bits como "100", en lugar de la forma convencional "001".
Las incómodas operaciones con negativos eran como resultado de la falta de un sumador de 32 bits en el SSEM. No se consideró necesario antes de las pruebas construir un sumador debido a que la suma puede implementarse facilmente mediante restas, i.e., puede ser calculado como Por lo tanto, sumar dos números, X e Y, requería cuatro instrucciones: LDN X //carga X como negativo en el acumuladorSUB Y //resta Y al valor del acumuladorSTO S //almacena el resultado en SLDN S //carga el valor en S como negativo en el acumulador
Los programas eran cargados en forma binaria usando el dispositivo de entrada para establecer el valor de cada bit de cada palabra del programa uno por uno.
Primeros programas
Se escribieron tres programas para el computador. El primero, que consistía de 17 instrucciones , fue escrito por Kilburn, y habría corrido por primera vez el 21 de junio de 1948.
[23] fue diseñado para encontrar el divisor más alto de 2 (262.144) calculando cada entero desde 2 − 1 hacia abajo. Las divisiones se implementaron haciendo restas suscesivas del divisor. Al SSEM le tomó 3,5 millones de operaciones y 52 minutos para dar la respuesta (131.072). El programa usó ocho palabras de la memoria de trabajo más las 17 palabras de las instrucciones, dándole al programa un tamaño de 25 palabras.[]
Geoff Tootill escribió una versión corregida del programa el mes siguiente, y a mediados de julio Alan Turing –quien había sido nombrado como "Lector" (rango académico) en el departamento de matemáticas en la Universidad de Manchester en septiembre de 1948– envió el tercer programa, para calcular divisiones largas. Turing había sido nombrado para el cargo de Director Adjunto del Laboratorio de Máquina Computacional de la Universidad,[] aunque dicho laboratorio no se hizo realidad hasta 1951.[]Últimos desarrollos
Williams y Kilburn dieron a conocer el desarrollo del SSEM en una carta a la revista Nature, publicada en septiembre de 1948. Su éxito llevó rápidamente a la creación de un equipo más práctico, el
Manchester Mark I. Los trabajos se iniciaron en agosto de 1948, y la primera versión entró en operaciones en abril de 1949. El Manchester Mark 1 a su vez condujo al desarrollo del Ferranti Mark I, el primer computador comercialmente disponible de propósito general del mundo.
En 1998 se construyó una réplica funcional del SSEM para celebrar el 50° aniversario de la ejecución de su primer programa. La máquina está en exhibición en el Museo de Ciencia e Industria en Manchester, donde se realizan demostraciones de funcionamiento en forma regular. En el 2008 se descubrió una fotografía panorámica de la máquina completa en la Universidad de Manchester. La fotografía fue tomada el 15 de diciembre de 1948 por un estudiante investigador, Alec Robinson, y fue reproducida en el
Illustrated London News en junio de 1949.
Strela (computadora)
El Computador Strela (ЭВМ "Стрела", Castellano: "Flecha") fue el primer
computador mainframe construido seriamente en la Unión Sovietica desde 1953. Strela significa flecha.
El diseñador jefe fue
Yuri Bazilevsky (Ю.Я. Базилевский). Entre sus asistentes estaba Boris Rameyev, constructor jefe de la serie de computadoras Ural (Computadora). Fue diseñado para la Oficina de Diseños Especiales 245 (СКБ245; Insituto I&D Argon (НИИ "Аргон") desde 1986) de Moscú.
Los Strelas fueron fabricados en Planta de Moscú de Máquinas de Computación y Analíticas (Московский завод счетно-аналитических машин) entre 1953 y 1957; se construyeron 7 máquinas. Fueron instaladas en el Centro de Computación de la
Academia rusa de las Ciencias, Instituto Keldysh de Matemáticas Aplicadas, Universidad Estatal de Moscú, y en centros de computación de algunos ministerios (relacionados a la defensa y economía).
Estos computadores de
primera generación tenían 6.200 válvulas y 60.000 diodos semiconductores.
El Strela tenía una velocidad de 2.000 operaciones por segundo. Su aritmética de coma flotante estaba basada en palabras de 43 bits con mantisa con signo de 35 bits y exponente con signo de 6 bits. La
memoria RAM de tubos Williams tenía 2.048 palabras. Tenía también una memoria ROM de semiconductores para programas. La entrada de datos era a través de tarjetas perforadas o desde cintas magnéticas. La salida de datos era por cinta magnética, tarjeta perforadas o impresora.
La última versión del Strela usaba un
tambor magnético de 4.096 palabras girando a 6.000 rpm.
En 1954 los diseñadores del Strela fueron condecorados con la
Medalla Stalin de 1er. grado (V. Alexandrov, Yu. Bazilevsky, D. Zhuchkov, I. Lygin, G. Markov, B. Melnikov, G. Prokudayev, B. Rameyev, N. Trubnikov, A. Tsygankin, Yu. Shcherbakov, L. Larionova (Александров В. В., Базилевский Ю. Я., Жучков Д. А., Лыгин И. Ф., Марков Г. Я., Мельников Б. Ф., Прокудаев Г. М., Рамеев Б. И., Трубников Н. Б., Цыганкин А. П., Щербаков Ю. Ф., Ларионова Л.А.)).
TX-0
El Transistorized Experimental computer zero (TX-0), aunque cariñosamente referido como tixo, fue un temprano computador completamente
transistorizado y contenido unos entonces enormes 64 K de palabras de 18 bits de memoria de núcleo magnético. El TX-0 entró en línea en 1956 y fue usado continuamente hasta entrados los años 1960.
Diseñado en el
Lincoln Laboratory del MIT en gran parte como un experimento en diseño transistorizado y la construcción de muy grandes sistemas de memoria de núcleo, el TX-0 era esencialmente una versión transistorizada del igualmente famoso Whirlwind (Torbellino), también construido en los laboratorios Lincoln. Mientras que el Whirlwind llenó un piso entero de un edificio grande, el TX-0 cabía en un solo cuarto de tamaño razonablemente y era algo más rápido. Como el Whirlwind, el TX-0 fue equipado con un sistema de visualización, en este caso un osciloscopio de 12" enganchado a los pines de salida del procesador, permitiéndole un despliegue de 512 x 512 puntos en un arreglo de 7" por 7".
El TX-0 realmente nunca fue pensado para ser usado como un sistema completo en sí mismo. La máquina incluyó 64K palabras de memoria, requiriendo 16
bits de espacio de dirección, pero para mantener los costos abajo, las instrucciones eran solamente de 18 bits de largo. Esto permitió solamente 2 bits de instrucciones, un total de cuatro. El TX-0 incluyó solamente "store" (guardar), "add" (sumar) y las instrucciones "branch" (bifurcar) como conjunto básico. No obstante la cuarta instrucción, "Operate" (operar), era posteriormente decodificada y permitía acceso a un número de "micro-órdenes" que podían ser usadas por separado o juntas para proporcionar muchas otras instrucciones útiles. Una adición tomaba 10 microsegundos.
Con la exitosa terminación del TX-0, el trabajo viró inmediatamente al mucho más grande y más complejo TX-1. Sin embargo este proyecto pronto tropezó con dificultades debido a su complejidad, y fue rediseñado en una forma más pequeña que sería con el tiempo entregada como el
TX-2 en 1958. Debido a que la memoria de múleo era muy costosa en ese entonces, varias partes de la memoria del TX-0 fueron canibalizadas para el proyecto TX-2. Después de un tiempo el TX-0 no siguió siendo considerado digno de conservarse, y fue "prestado" (semipermanente) al Research Laboratory of Electronics (RLE) del MIT en julio de 1958, donde se convirtió en una pieza central de lo que finalmente evolucionaría en el Laboratorio de la Inteligencia Artificial del MIT.
Entregado de los laboratorios de Lincoln con solamente 4K de memoria de núcleo, la máquina ya no tenía que usar 16 de sus instrucciones de 18 bits para almacenar una localización, así que después de alrededor de un año y medio el número de los bits de instrucción fueron doblados por 4, para un total de 16 instrucciones, y fue agregado un
registro índice. Esto mejoró dramáticamente la programabilidad de la máquina, pero aún dejó espacio para una mejora posterior de 8K. Este nuevamente ampliado TX-0 fue usado para desarrollar un enorme número de avances en la computación, incluyendo el reconocimiento de voz y de escritura, así como también las herramientas necesarias para trabajar en tales proyectos, incluyendo editor de texto1editores de textos y depuraciones.
Mientras tanto el proyecto TX-2 tenía dificultades propias, y varios miembros del equipo decidieron dejar el proyecto y comenzar su propia compañía. Después de que un corto tiempo vendiendo "módulos de laboratorio" en la forma módulos simples del diseño del TX-2, la Recién formada
Digital Equipment Corporation (DEC) decidió producir un TX-0 "limpio", y lo entregó en 1961 como el PDP-1. El primer PDP-1 sería finalmente instalado en el cuarto al lado del TX-0, y correría de lado a lado por un cierto tiempo.
Significativas piezas del TX-0 están actualmente en exhibición en la biblioteca del laboratorio Lincoln. Desafortunadamente, la biblioteca es solamente accesible para los empleados de Lincoln.
Talent DPC-200
Fabricante: Talent
Modelo: DPC-200
Año: 1986
Memoria RAM: 64K estándar + 16K de uso exclusivo del chip de video
Memoria ROM: 32K estándar, admite cartuchos ROM en el conector superior
CPU: Zilog Z80A a 3.58 MHz
Sistema: BASIC Microsoft Extendido (MSX-BASIC 1.0) en ROM, MSX-DOS y CP/M basados en diskette, compatibilidad con otras máquinas que adhieren al estándar MSX
Teclado: QWERTY estándar de desplazamiento completo, con 77 teclas: 48 teclas alfanuméricas, y 25 teclas de control que incluyen 5 teclas de función programables con 10 funciones posibles, y 4 teclas de cursor independientes combinables para generar 8 direcciones
Pantalla: Chip de video TMS9929A de Texas Instruments con 16K de memoria de video independiente, 4 modos de video, pantalla de texto de 40x24 y 32x24 caracteres, pantalla gráfica de 256x192 pixels con 16 colores (2 colores por bloque de 8x8 puntos), modo multicolor de 64x48 pixels (bloques de 4x4 pixels), 32 sprites disponibles de 8x8 pixels, salida de video RF en canal 4 y conectores RCA de audio mono y video compuesto
Impresora: Dispone de un conector paralelo con señales compatible Centronics, por lo cual se puede utilizar cualquier impresora de PC compatibles, si bien utiliza un conector no estándar, por lo que requiere un cable especial.
Dispositivos de almacenamiento: Unidad de cassette externa conectada al puerto de cassette mediante el cable adaptador suministrado, grabación en sistema FSK a 1200/2400 baudios, accesible desde BASIC como CAS:. Unidad de diskette externa conectada al bus de expansión, accesible como A:. Se dispone de una unidad de diskette Talent DPF-555 de 5.25", con una capacidad de 360K formateados, y formato de disco compatible con MS-DOS
Sonido: Chip de sonido AY-3-8910, 8 octavas, 3 voces, 9 formas de onda para envolvente, generador de tono o ruido seleccionable, 16 niveles de volumen por canal, salida de sonido por conector RCA monofónico o por RF.
Entradas / Salidas: Bus de expansión: Permite conectar entre otros accesorios, la unidad de diskette, una interfaz serie RS-232 o un módem, está ubicado en la parte posterior de la máquina, y dispone de todas las señales del bus de sistema.
Cassette externo: Conector DIN de 8 pines que por medio del cable adaptador incluido permite conectar con una unidad de cassette estándar.
Conector de cartuchos: Está ubicado en la parte superior de la máquina y permite conectar cartuchos ROM compatibles con la norma MSX.
Salida modulador RF: Permite conectar la máquina a un TV PAL N estándar, con la señal de video modulada en canal 4
Conectores AV: Permite conectar la máquina a un monitor de video compuesto PAL N, son dos conectores RCA, para audio monofónico y video compuesto
Conector paralelo: Permite conectar por medio de un cable adaptador, cualquier impresora compatible Centronics
Joysticks: 2 conectores tipo Atari de 9 pines
Alimentación: Fuente integrada en la consola, conexión directa a 220V
Dimensiones: 400 x 225 x 74 mm
Tubo Williams
El tubo Williams o tubo Williams-Kilburn (inventado por
Freddie Williams y Tom Kilburn), desarrollado alrededor de 1946 o 1947, era un tubo de rayos catódicos usado para almacenar electrónicamente datos binarios.
Funcionamiento
El tubo Williams depende de un efecto llamado
emisión secundaria. El resultado de este efecto es que, cuando un punto es dibujado en el tubo de rayos catódicos, un área pequeña a su alrededor se carga en forma positiva, y la zona contigua se carga en forma negativa, creando una "zona de carga". La zona de carga permanece en la superficie del tubo durante una fracción de segundo, permitiendo al dispositivo actuar como memoria de computadora. La vida de la zona de carga depende de la resistencia eléctrica en el interior del tubo.
El punto puede ser borrado dibujando un segundo punto inmediatamente a continuación del primero, llenando de esta manera la zona de carga. Muchos sistemas hacían esto dibujando una corta línea en la posición del punto; de esta manera la extensión de la línea borraba la carga inicialmente almacenada en la posición del punto.
El computador lee la información del tubo a través de una placa de metal que cubre el frente del tubo. Cada vez que un punto es creado o borrado, el cambio en la carga eléctrica induce un pulso de voltaje en la placa. Debido a que la computadora sabe qué lugar de la pantalla está siendo apuntado en cada momento, se puede usar el pulso de voltaje de la placa para "leer" el dato almacenado en la pantalla.
Leer una ubicación de memoria crea una nueva zona de carga, destruyendo el contenido original de esa localización, por lo que cada lectura de seguirse con la escritura para reinstalar el dato original. Muchos sistemas hacían esto dibujando una corta línea comenzando en la posición del punto si la nueva zona de carga necesitaba borrarse. Además, debido a que la carga gradualmente se pierde, era necesario rastrear el tubo periódicamente y re-escribir cada punto (similar al
refresco de memoria de la DRAM en los sistemas modernos).
Algunos tubos Williams estaban hechos con tubos de rayos catódicos del tipo para
radares con un recubrimiento de fósforo que hacía a los datos visibles a la vista, mientras que otros tubos eran construidos para este uso sin el recubrimiento. La presencia o ausencia del recubrimiento no tenía efecto en la operación del tubo, y no tenía importancia para el operador debido que el tubo estaba cubierto por la placa. Si era necesario tener una salida visible, se utilizaba un segundo tubo con recubrimiento de fósforo como dispositivo de visualización.
Capacidad
Los tubos Williams almacenaban, aproximadamente, de 500 a 1.000 bits de datos.
Desarrollo
Desarrollado en la
Universidad de Manchester en Inglaterra, que proporcionó el medio para realizar el primer programa escrito en un computador (la Máquina Experimental de Pequeña Escala de Manchester) almacenado electrónicamente. Tom Kilburn escribió un programa de 17 líneas para calcular el factor más alto de un número. La tradición en la Universidad de Manchester dice que este fue el único programa que Tom Kilburn jamás escribió.
Los tubos Williams tienden a perder la confiabilidad con el tiempo, y muchos equipos debían ser "sintonizados" a mano al instalarlos. En contraste, la
memoria de línea de retardo de mercurio era más lenta y también necesitaba ajustarse a mano, pero no perdía confiabilidad con el tiempo y gozó de relativo éxito en los inicios de la computación electrónica digital, a pesar de su tasa de transferencia, peso, costo, temperatura y problemas de contaminación. Sin embargo, el Manchester Mark I fue comercializado exitosamente como el Ferranti Mark I. Algunos de los primeros computadores de EEUU también usaron tubos Williams, incluyendo el IAS machine, originalmente diseñado para la memoria selectrón (fotos), el UNIVAC 1103, IBM 701, IBM 702 y el Standards Western Automatic Computer (SWAC) (fotos). Los tubos Williams fueron usados también por los computadores soviéticos, el Strela-1.
UNIVAC 1101
El UNIVAC 1101, o ERA 1101, fue un sistema
computador diseñado por Engineering Research Associates (ERA) y construido por la corporación Remington Rand en la década de 1950. Fue la primera computadora con programa almacenado en los Estados Unidos.
Originalmente diseñada para la US Navy's Bureau of Ships (una cubierta de la
NSA) y llamada Atlas (debido al personaje en la popular tira cómica Barnaby). La versión comercial fue renombrada como la 1101 porque fue diseñada bajo la "Tarea 13" (1101 es 13 en el sistema binario).
El computador medía 11,5 m de largo por 6 de ancho y para sus circuitos lógicos usó 2700
tubos de vacío. Su memoria de tambor medía 216 mm de diámetro, rotaba a 3500 rpm, tenía 200 cabezas de lectura-escritura, y tenía capacidad para 16.384 palabras de 24 bits (un tamaño de memoria equivalente a 48 kB).
Las
instrucciones ocupaban 24 bits, con 6 bits para el opcode, 4 bits para el "salto" (indicando cuantas posiciones de memoria hay que saltar para obtener la próxima instrucción en la secuencia del programa), y 14 bits para la dirección de memoria. Los números se representaban en el sistema binario con valores negativos representados como complemento a uno. El tiempo de adición era 96 microsegundos y el de multiplicación de 352 microsegundos.
El sencillo acumulador de 48 bits era fundamentalmente sustractivo, la suma era llevada a cabo al sustraer el complemento a uno del número a ser sumado. Esto puede puede parecer bastante extraño, pero el
sumador sustractivo reduce la probabilidad de obtener el cero negativo en las operaciones normales.
Engineering Research Associates construyó dos sistemas Atlas para la Navy's Bureau of Ships, instalándolas en diciembre de
1950 y marzo de 1953. Se habló de llamar la versión comercial MABEL, pero en lugar de ello, Jack Hill sugirió 1101. La ERA 1101 fue anunciada públicamente en diciembre de 1951.
Engineering Research Associates construyó una tercera máquina para sus propias oficinas con la intención de crear un servicio para otras compañías necesitando recursos de computación. Sin embargo, esto falló y en noviembre de
1954 Remington Rand donó la máquina a Georgia Institute of Technology por un valor solicitado de $500.000. En noviembre de 1958 Georgia Tech actualizó la máquina con 4096 palabras de memoria de núcleo magnético a un costo de $39.400. Esta 1101 todavía corría trabajos estudiantiles en 1961.
UNIVAC 1102
La UNIVAC 1102, o ERA 1102 fue diseñada por
Engineering Research Associates para el Arnoldo Engineering Development Center de la Fuerza Aérea de los Estados Unidos en Tullahoma, Tennessee en respuesta a una solicitud de oferta (request for proposal RFP) publicada en 1950. La Fuerza Aérea necesitaba tres computadores para hacer reducción de datos para dos túneles de viento y una instalación de pruebas de motores.
La 1102 fue una variante de la
UNIVAC 1101, usando sus palabras de 24 bits y una memoria de tambor más pequeña (solamente 8192 palabras). La máquina tenía 2.700 tubos de vacío, pesaba 6.350 kg, y ocupaba un área de 11 m² de superficie.
Los computadores fueron conectados a canales de datos provenientes de los túneles de viento y la instalación de motores. Habían cinco
máquina de escribir para salida impresa, cinco perforadoras de cinta de papel, y cuatro plotters para producir gráficos.
Los tres computadores y sus periféricos fueron enviados entre julio de
1954 y marzo de 1956 con un precio total de $1.400.000. El software para los computadores fue desarrollado completamente en el Arnold Engineering Development Center. Todos los programas fueron hechos en lenguaje de máquina (Los ensambladores y los compiladores nunca fueron desarrollados).
UNIVAC 1103
El UNIVAC 1103 o ERA 1103, un sucesor del
UNIVAC 1101, fue un sistema computador diseñado por Engineering Research Associates y construido por la corporación Remington Rand en octubre de 1953.
El UNIVAC 1103 tenía una memoria de 1024 palabras de 36
bits cada una, implementada físicamente con tubos de Williams. Fue la primera computadora comercial en utilizar memoria RAM (memoria de acceso al azar). Cada uno de los 36 tubos Williams era de 12,7 mm de diámetro. Una memoria de tambor magnética proporcionó 16.384 palabras. Tanto las memorias electrostática y de tambor eran directamente direccionables: las direcciones desde la 0 a la 01777 (octal) estaban en la memoria electrostática y las direcciones entre 040000 y 077777 (octal) estaban en el tambor.
Los números de
coma fija tenían 1 bit de signo y 35 bits de valor significativo, con los valores negativos representados en formato complemento a uno.
Las instrucciones ocupaban una palabra de 36 bits, tenían un
código de operación de 6 bits más dos direcciones de operandos de 15 bits.
Los sistemas de programación para la máquina incluyeron el ensamblador RECO (Regional Coding Assembler) de Remington-Rand, el ensamblador RAWOOP one-pass assembler y el SNAP floating point interpretive system creado por
Ramo-Wooldridge Corporation en Los Ángeles, el FLIP floating point interpretive system por Consolidated Vultee Aircraft en San Diego, y el CHIP floating point interpretive system por Wright Field en Ohio.
Incluso antes de la terminación del Atlas (UNIVAC 1101), la marina de los Estados Unidos pidió a Engineering Research Associates que diseñaran una máquina más poderosa. Este proyecto se convirtió en la Tarea 29, y la computadora fue designada con el nombre de Atlas II.
En
1952, la Engineering Research Associates pidió a la Armed Forces Security Agency (el precursor del NSA) la aprobación para vender el Atlas II comercialmente. El permiso fue dado, con la condición de que varias instrucciones especializadas fueran removidas. La versión comercial entonces se convirtió en el UNIVAC 1103. Debido a las cuestiones de seguridad, Remington Rand no sabía de esta máquina antes de esto.
En febrero de 1953, la Remington Rand anunció el UNIVAC 1103. La máquina sucesora fue el UNIVAC 1103A o Univac Scientific, que mejoró el diseño substituyendo la no fiable memoria de tubo de Williams por memoria de
memoria de núcleos de ferrita, agregando hardware para instrucciones de coma flotante, y una característica de hardware de interrupciones.
UNIVAC 1107
UNIVAC (Universal Automatic Computer) 1107 apareció en 1962 en la segunda generación sustituyendo los tubos de vacío por los transistores. El UNIVAC 1107 (el “siete”), se hizo famoso cuando su sistema numérico fue considerado en el texto “The Art of Computer Programming”. El sistema operativo de este ordenador era el
EXEC II orientado a procesamiento académico.
UNIVAC I
La UNIVAC I (UNIVersal Automatic Computer I, Computadora Automática Universal I) fue la primera
computadora comercial fabricada en Estados Unidos. Fue diseñada principalmente por J. Presper Eckert y John William Mauchly, también autores de la segunda computadora electrónica estadounidense, la ENIAC. Durante los años previos a la aparición de sus sucesoras, la máquina fue simplemente conocida como "UNIVAC". Se donó a la universidad de Harvard y Pensilvania.
Las computadoras UNIVAC I fueron construidas por la división
UNIVAC de Remington Rand (sucesora de la Eckert-Mauchly Computer Corporation, comprada por Rand en 1951).
El primer UNIVAC fue entregado a la
Oficina de Censos de los Estados Unidos (United States Census Bureau) el 31 de marzo de 1951 y fue puesto en servicio el 14 de junio de ese año. El quinto, construido para la Comisión de Energía Atómica (United States Atomic Energy Commission) fue usado por la cadena de televisión CBS para predecir la elección presidencial de 1952. Con una muestra de apenas el 1% de la población votante predijo correctamente que Eisenhower ganaría, algo que parecía imposible.
Además de ser la primera computadora comercial estadounidense, el UNIVAC I fue la primera computadora diseñada desde el principio para su uso en administración y negocios (es decir, para la ejecución rápida de grandes cantidades de operaciones aritméticas relativamente simples y transporte de datos, a diferencia de los cálculos numéricos complejos requeridos por las computadoras científicas). UNIVAC competía directamente con las máquinas de
tarjeta perforada hechas principalmente por IBM; curiosamente, sin embargo, inicialmente no dispuso de interfaz para la lectura o perforación de tarjetas, lo que obstaculizó su venta a algunas compañías con grandes cantidades de datos en tarjetas debido a los potenciales costos de conversión. Esto se corrigió eventualmente, añadiéndole un equipo de procesamiento de tarjetas fuera de línea, el convertidor UNIVAC de tarjeta a cinta y el convertidor UNIVAC de cinta a tarjeta, para la transferencia de datos entre las tarjetas y las cintas magnéticas que empleaba UNIVAC nativamente.
Los primeros contratos para la venta de UNIVACs fueron realizados con instituciones del gobierno de los Estados Unidos, tales como la oficina de censos, la
Fuerza Aérea, y el servicio de mapas del ejército; también contrataron sus servicios particulares, como la ACNielsen Company y la Prudential Insurance Company. El octavo UNIVAC, la primera venta efectiva para uso comercial, fue instalado en enero de 1954, en la división de electrodomésticos de General Electric para gestionar los salarios. DuPont compró el duodécimo UNIVAC, que fue entregado en septiembre de 1954. La Pacific Mutual Insurance recibió un UNIVAC en agosto de 1955, y otras compañías de seguros pronto siguieron ese camino. Mientras tanto, para uso oficial, la oficina de censos compró un segundo UNIVAC en octubre de 1954.
Originalmente valorado en $159.000 de la época, el UNIVAC aumentó su precio hasta costar entre $1.250.000 y $1.500.000. En total se fabricaron y entregaron 46 unidades. UNIVAC resultó demasiado costosa para la mayoría de las universidades, y Sperry Rand , a diferencia de compañías como IBM, no tenía el suficiente respaldo financiero para donar muchas unidades; sin embargo un ejemplar se donó a la
Universidad de Harvard en 1956, otro a la Universidad de Pensilvania en 1957, y uno a la Case Western Reserve University en Cleveland, Ohio ese mismo año.
Algunos sistemas UNIVAC permanecieron en servicio durante mucho tiempo, de hecho bastante después de haberse vuelto obsoletos. La Oficina de Censos utilizó sus dos sistemas hasta
1963, acumulando doce y nueve años de servicio respectivamente; Sperry Rand utilizó sus propias dos unidades en Buffalo, Nueva York, hasta 1968. La compañía de seguros Life and Casualty of Tennessee utilizó su sistema hasta 1970, totalizando más de trece años de servicio....
Ural (computadora)
Las Ural fue una serie de computadores construidas en la
Unión Soviética.
El Ural fue desarrollado en el Fábrica Productora de Computadores Electrónicos de
Penza en la Unión Soviética entre 1959 y 1964. Se construyeron 139 equipos. La computadora fue ampliamente usada en los '60s, principalmente en los países socialistas; Hungria tenía tres, por ejemplo; aunque algunos se exportaron a Europa Occidental y América Latina.
Atributos
Los modelos Ural-1 a Ural-4 estaban basados en tubos de vacío (
válvulas), el hardware permitía realizar 12.000 operaciones de coma flotante por segundo. La unidad de coma flotante era única, trabajaba con el sistema binario. Una palabra consistia de 40 bits y podía contener un valor numérico o dos instrucciones. La memoria principal era de núcleos de ferrita[cita requerida].
La serie nueva (Ural-11, Ural-14, producidas entre 1964 y 1971) estaba basada en semiconductores.
Funciones
Realizaba tareas matemáticas en centros de computación, industrias y centros de investigación. La máquina ocupaba aproximadamente 90-100 metros cuadrados. Estaba alimentada por
corriente trifásica (380V±10%/50Hz) y contenía un estabilizador magnético trifásico con 30kVA de capacidad.
Componentes
Teclado, controladora de lectura, unidad de entrada de cinta perforada, unidad de salida de cinta perforada, impresora
VAX
Máquina
CISC sucesora de la PDP-11, producida por Digital Equipment Corporation. Su nombre original era VAX-11 (Virtual Address Extended PDP-11). Lanzada el 25 de octubre de 1977, fue la primera máquina comercial de arquitectura de 32 bits, lo que la convierte en un hito destacable en la historia de la computación. La primera VAX-11/780 fue instalada en Carnegie Mellon University.
Su sistema operativo,
VMS (luego llamado OpenVMS), fue concebido junto con la máquina. Presentaba características muy novedosas para su tiempo, en particular un revolucionario sistema de clustering.
El VAX es un claro ejemplo de máquina del tipo memoria-memoria con registros de uso general. Posee 16 registros (R0,...,R15) de 32 bits. El PC (Program Counter, en español contador de programa) y el SP (Stack Pointer, en español apuntador de cima de pila) son los registros R15 y R14 respectivamente, es decir, son registros de uso general con lo que se consigue una mayor versatilidad y potencia en los modos de direccionamiento. También destacan el R13 y el R12. El primero se utiliza como FP (Frame pointer, en español apuntador de trama o puntero de marco), el segundo se utiliza como AP (Argument pointer, en español apuntador a los argumentos). Estos dos registros son especialmente útiles cuando se manejan procedimientos y se quiere acceder a la información de la trama de pila creada en la llamada y ejecución de la rutina o procedimiento.
El VAX tiene un P.S.L (Proccesor status longword, en español doble palabra de estado del procesador) de 32 bits. Sus últimos cuatro bits son los bits de condición Z (cero), N (negativo), V (desbordamiento) y C (acarreo).
Esta máquina tiene una gran versatilidad y potencia a la hora de manejar diferentes tipos de datos. Es capaz de procesar enteros de tamaño de 1 a 8 bytes, número en coma flotante de simple (4 bytes) y doble precisión (8 bytes), caracteres, cadenas, e incluso números en BCD (Binary Coded Decimal).
Incorpora numerosas mejoras respecto a la
PDP-11. Entre ellas una memoria caché, y una unidad en coma flotante (opcional). En cuanto a sus restricciones tiene la desventaja de que si no existe alineación a la hora de acceder a las instrucciones alojadas en memoria sus accesos a este recurso son más lentos.
Los últimos modelos nuevos de VAXen (modelos 7000 y 10000) fueron lanzados en
1992, aunque se introdujeron cambios hasta 1997. La línea se discontinuó en 1999, y en ese entonces se rumoreaba que todas las unidades remanentes habían sido adquiridas por Intel
El Xerox Alto, desarrollado en el Xerox PARC en 1973, fue el primer ordenador personal, así como el primero que utilizó la metáfora de escritorio y una interfaz gráfica de usuario.
Arquitectura
El Alto fue inicialmente concebido en 1972 en un memorando interno escrito por
Butler Lampson y diseñado inicialmente por Chuck Thacker. Tenía 128 Kbyte de memoria principal (expandible a 512), así como un disco duro de cartuchos removibles de 2,5 Mbyte, todo ello alojado en un armario del tamaño de un pequeño frigorífico. La Unidad Central de procesamiento (CPU) del Alto era un innovador procesador microprogramado que utilizaba microcódigo para la mayor parte de las operaciones de entrada/salida, en vez de hardware. La máquina de microcódigo realizaba 16 tareas, una de las cuales ejecutaba el conjunto de instrucciones normal (bastante parecido al de la Data General Nova), mientras que el resto controlaban la visualización, refresco de memoria, disco, red y otras funciones de entrada/salida. Por ejemplo, el controlador del mapa de bits del display era poco más que un registro de desplazamiento de 16 bits; el microcódigo se utilizaba para cargar la información de refresco del display de la memoria principal hacia el registro de desplazamiento.
Además de una conexión
Ethernet, el único dispositivo de salida del Alto era un monitor CRT (tubo de rayos catódicos) con dos niveles (blanco y negro) montado de forma vertical. Sus dispositivos de entrada eran un teclado, un ratón de tres botones y un teclado de funciones opcional (chord keyset). El concepto de estos dos últimos elementos fueron tomados del Sistema On-Line (On-Line System) del Instituto de Investigaciones de Standford (SRI). Mientras que el ratón fue un éxito instantáneo entre los usuarios del Alto, el teclado de funciones nunca se hizo popular.
Todos los ratones del Alto tenían tres botones. Los primeros, de funcionamiento mecánico, tenían dos ruedas perpendiculares una a la otra. Éstos fueron remplazados pronto por ratones con bola, inventados por
Bill English. Más tarde se introdujeron los ratones ópticos, primero con luz blanca y posteriormente con infrarrojos. Los botones de estos antiguos ratones eran alargados y estaban dispuestos a lo largo en vez de estarlo a lo ancho.
El teclado estaba configurado de forma que cada tecla correspondía a un bit en un conjunto de registros. Esta característica de utilizaba para cambiar desde dónde se inicializaba (boot) el Alto. Los registros del teclado se usaban como la dirección de disco desde dónde inicializar y así, presionando un conjunto específico de teclas mientras se presionaba el botón de inicio, se podían cargar diferentes microcódigos y sistemas operativos. Esto dio lugar a la expresión "arranque de nariz" (nose boot), cuando el número de teclas necesarias para lanzar un sistema operativo en prueba era mayor que el número de dedos. Este tipo de arranque dio lugar a "move2keys", un programa que movía los archivos en el disco de forma que se pudiera utilizar una determinada secuencia de teclas.
Había otros periféricos para el Alto, como una cámara de TV, una impresora de tipo rueda margarita y un puerto paralelo, aunque eran bastante poco frecuentes. El Alto también podía controlar discos externos lo que la convertía en un servidor de archivos. Esto fue una aplicación bastante común para este ordenador.
Software
Los primeros programas para el Alto fueron escritos en el lenguaje de programación
BCPL y más tarde en el lenguaje Mesa, el cuál no fue muy utilizado fuera de PARC, pero que influenció varios lenguajes posteriores, como el Modula. El teclado del Alto carecía de la tecla underscore, cuyo lugar había era ocupado por la tecla para el carácter de flecha izquierda usado en el lenguaje Mesa para el operador de asignación. Esta característica del teclado del alto pudo ser el origen del estilo CamelCase para identificadores compuestos (Ej. EstoEsUnaVariable). Otra peculiaridad del Alto es que su microcódigo era programable por el usuario.
El Alto ayudó a popularizar el uso del modelo de gráficos
raster para todo tipo de salidas, incluyendo textos y gráficos. También introdujo el concepto de operación de bit block transfer (transferencia de bloque de bits), o BitBLT, como la interfaz de programación fundamental para el display. A pesar del pequeño tamaño de su memoria, se escribió un buen número de programas innovadores para el Alto, incluyendo los primeros sistemas de composición de documentos WYSIWYG Bravo y Gypsy; editores de gráficos (mapas de bits, placas de circuito impreso, circuitos integrados, etc.); las primeras versiones del entorno Smalltalk y uno de los primeros juegos multipersona en red.
Difusión y evolución
Desde el punto de vista técnico, el Alto era un pequeño miniordenador, pero era más bien un
ordenador personal en el sentido de tener un único usuario sentado frente al escritorio, al compararlo con los mainframes y miniordenadores de la época. Nunca fue un producto comercial, aunque se fabricaron varios miles de unidades. Varias universidades, incluyendo el MIT, Stanford, CMU, y la Universidad de Rochester recibieron donaciones de Altos incluyendo servidores IFS e impresoras laser Dover. Estas máquinas fueron la inspiración para las estaciones de trabajo Lilith del ETH Zürich y el PERQ de la Three Rivers Company. Además de la estación de trabajo de la Standford University Network (SUN), que finalmente fue llevada al mercado por una compañía del tipo spin-off, Sun Microsystems. La estación de trabajo Apollo/Domain y el Lisa de Apple, también fueron profundamente influenciados por el Alto.
El Alto de Xerox fue utilizado para diseñar la influyente serie "D" de estaciones de trabajo de la Xerox: el
Dolphin, el Dorado y el Dandelion. También se basó en este diseño un router de red llamado Dicentra. Dorado era un máquina muy veloz basada en diseño ECL; Dolphin era una máquina de gama media basada en tecnología TTL diseñada inicialmente para ser la estación de trabajo Star. La arquitectura original para Dandelion, basada en el AMD Am2900 de [tecnología de microprocesador bitslice], fue presentado como el diseño llamado Wildflower y fue este diseño de bajo costo el que se convertiría en la estación de trabajo Star.
Xerox creó una división de productos (SDD) para comercializar el trabajo del PARC, inicialmente partiendo del Dolphin como base para un producto tipo estación de trabajo. El diseño Dandelion llegó a ser la
Xerox 8010, que ejecutaba el software de la Xerox Star. La Star inspiró los ordenadores personales Lisa y el Macintosh de Apple, y ayudo a popularizar la interfaz gráfica de usuario en futuros ordenadores personales y estaciones de trabajo.
Estas máquinas Xerox, especialmente el Alto, son hoy día escasas y sor artículos de colección extremadamente onerosos.
Xerox Star
La
estación de trabajo Xerox Star, conocida oficialmente como el "8010 Star Information System" (Sistema de Información Estrella 8010) fue introducida por Xerox Corporation en 1981. Fue el primer sistema comercial en incorporar varias tecnologías que han llegado a ser hoy en día corrientes en computadores personales, incluyendo la pantalla con bitmaps en lugar de solo texto, una interface gráfica de usuario basada en ventanas, íconos, carpetas, ratón, red Ethernet, servidores de archivos, servidores de impresoras y e-mail.
Antecedentes
El Xerox Palo Alto Research Center (
PARC) (Centro de Investigación Xerox Palo Alto), fue fundado por Xerox Corporation en 1970 para servir como think tank interno para desarrollar nuevas tecnologías con la esperanza de producir productos comerciales.
Los varios individuos o grupos dentro de PARC persiguieron independientemente diversas tecnologías digitales. La culminación de este desarrollo fue el
Alto, una estación de trabajo desarrollado para uso interno en Xerox y también distribuido en una base limitada a algunas universidades. El Alto tenía muchas características avanzadas incluyendo una pantalla basada en bitmaps, iconos, un ratón usado como un señalizador, y una red Ethernet.
Como producto comercial, al Alto le faltaba. Cada programa tenía su propia interface y operarlo requería conocimiento técnico. Los programas más comunes fueron el procesador de textos Bravo, Laurel, un programa e-mail y su sucesor Hardy, Sil, un programa de dibujos vectoriales, y Markup, un editor de bitmaps (programa para pintar). El sistema no fue considerado ser lo suficientemente amigable al usuario como para los usuarios menos sofisticados en un ambiente de oficina. No había software de
hoja de cálculo o de base de datos.
El Star no fue desarrollado por PARC. En
1977, bajo dirección de Don Massaro, el System Development Departament (SDD) (Departamento de Desarrollo de Sistemas) fue establecido en el El Segundo, California con algunos miembros entresacados de PARC en Palo Alto, California para el "SDD North" - un equipo que eventualmente creció a más de 200 desarrolladores. A ellos se les asignó la tarea de diseñar un nuevo sistema que incorporara las mejores características del Alto, fuera fácil de usar y pudiera automatizar muchas tareas de la oficina. La iniciativa fue llamada como "The Office of the Future" (La Oficina del Futuro) y su desarrollo fue dirigido por David Liddle.
El paisaje de la competencia del momento estaba dominado por costosos
mainframes y minicomputadores equipados con terminales tontos (dump terminals) que compartieron el tiempo de proceso del computador central. En el otro lado del espectro, los computadores personales eran simplistas, con limitado poder de procesamiento y la inhabilidad de comunicarse con otros sistemas. Xerox vio un nicho en alguna parte entre una arquitectura de procesamiento distribuido estaciones de trabajo inteligentes con archivos centralizados y periféricos compartidos.
Interface de usuario
Una buena parte de un año fue tomada por reuniones y planeamiento. El resultado fue una extensa y detallada especificación funcional (the Red Book) (el Libro Rojo). Ésta se convirtió en la biblia para todas las tareas de desarrollo. Definió la interface y reforzó la consistencia en todos los módulos y tareas. Todos los cambios a la especificación funcional tenían que ser aprobados por un equipo de revisión que mantenía los estándares religiosamente.
La filosofía clave de la interface de usuario era imitar el paradigma de la oficina tanto como fuera posible para hacerlo intuitivo para los usuarios. El concepto del
WYSIWYG era considerado supremo. El texto sería exhibido en la pantalla como letras negras con un fondo blanco justo como en el papel, y la impresora duplicaría la pantalla usando interpress, un lenguaje de descripción de página desarrollado en PARC, del cual surge, posteriormente el Postscript.
El usuario vería un escritorio conteniendo documentos y carpetas, con diferentes íconos representando diversos tipos de documentos. Haciendo clic sobre cualquier ícono abriría una ventana. Los usuarios no utilizarían programas, (como por ejemplo un editor de textos, programas gráficos o software de hoja de cálculo), ellos abrirían simplemente el archivo y la aplicación apropiada aparecería.
La interface de usuario del Star fue basada en el concepto de objetos. Por ejemplo en un documento del procesador de textos, habría objetos de páginas, objetos de párrafos, objetos de oraciones, objetos de palabras y objetos de caracteres. Una vez que un usuario clicleaba un objeto, podía invocar una función estándar desde teclas especiales en el teclado, como Abrir, Borrar, Copiar y Mover. Había también una tecla "Mostrar Propiedades" usada para exhibir la llamada "hoja de propiedades" con los ajustes para el objeto particular (por ejemplo, el tamaño de fuente para un objeto carácter). Esto simplificó grandemente la estructura del menú de todos los programas.
La integración de objetos fue diseñada en el sistema desde el comienzo. Por ejemplo, un objeto gráfico creado en el módulo gráfico podía ser insertado en cualquier tipo de documento. Este tipo de capacidad no llegó a estar disponible en
Microsoft Windows hasta que el OLE (Object Linking and Embedding) fue introducido en Windows nueve años más tarde en 1990.
El proceso de desarrollo
El grupo de Palo Alto trabajó en la interface del sistema operativo subyacente al hardware y a las herramientas de programación, mientras que los de El Segundo desarrollaron el sistema operativo completo, la interface de usuario y las aplicaciones para el usuario.
El personal confiaba fuertemente en las mismas tecnologías en las cuales trabajaban compartición de archivos, servidores de impresoras y e-mail. Incluso estaban conectados con Internet, conocido como Arpanet en aquel tiempo, lo que permitió que se comunicaran entre el EL Segundo y Palo Alto.
El Star fue implementado en el
lenguaje de programación orientado a objetos Mesa, un precursor directo del Modula 2 y Modula 3. Mesa requirió a los programadores crear dos archivos para cada módulo, un módulo con la definición que especificaba las estructuras de datos, métodos y eventos por cada objeto y un módulo de implementación que tenía el código actual para los métodos y los eventos.
El equipo del Star usó un sofisticado sistema de control de versión que requirió a los programadores chequear los módulos antes de que pudieran ser cambiados. Cualquier cambio en un módulo que forzara a los módulos dependientes a cambiar era seguido de cerca y documentado. Los cambios a los módulos de nivel inferior requrían varios niveles de aprobación.
El proceso de desarrollo del software fue intenso. Implicó muchos prototipos y pruebas con usuarios. Los ingenieros de software tuvieron que desarrollar nuevos protocolos de red y esquemas de codificación de datos cuando los usados en el ambiente de investigación del PARC probaron ser inadecuados.
Inicialmente, solamente las estaciones de trabajo Altos estaban disponibles como herramientas de desarrollo. Éstas no estaban bien equipadas por las cargas extremas puestas por el software. Incluso el procesador pensado para el producto probó ser inadecuado e implicó un rediseño del hardware de último minuto. Muchos rediseños del software, reescrituras, y adiciones tardías tuvieron que ser hechos, algunos basados en resultados de pruebas de usuario, algunos basados en consideraciones de comercialización, y algunos basados en consideraciones de los sistemas.
Una versión del sistema en lenguaje
japonés fue producida conjuntamente con Fuji Xerox (nombre código "J-Star") así como total apoyo para los clientes internacionales.
Al final, había muchas características del Star Functional Specification (Especificación Funcional del Star) que tuvieron que dejarse sin implementar. El producto tenía que estar en el mercado y los últimos meses antes del lanzamiento se centró en la confiabilidad y el rendimiento.
Descripción del hardware
Inicialmente el software del Star fue desarrollado en una plataforma de hardware llamada el Dolphin (Delfín), sin embargo la complejidad del software eventualmente abrumó su limitada configuración. En un punto en el desarrollo del Star, se tomaba más de media hora reiniciar el sistema.
El eventual hardware de la estación de trabajo Star fue conocido como Dandelion, o Dlion, basado en el papel de arquitectura de "Wildflower" por
Butler Lampson. Su microprogramado bit-sliced CPU corría una máquina virtual para el lenguaje de programación Mesa.
El sistema tenía 384
KB de memoria (expandible a 1.5MB), un disco duro de 10MB, 29MB ó 40MB, una unidad de diskette de 8", el ratón, y una conexión Ethernet. El CTR de 17" de la pantalla en blanco y negro era grande para los estándares de ese entonces. Fue pensado para poder exhibir dos páginas de 8.5"x11" de lado a lado en tamaño real.
Comercialización del Star
La Xerox Star no se pensó originalmente para ser una computadora independiente, sino que era parte de un integrado "sistema de oficina personal" Xerox que también se conectaba con otras estaciones de trabajo y servicios de red vía Ethernet. Aunque una sola unidad se vendía en $16.000, una típica oficina tendría que comprar por lo menos 2 ó 3 máquinas junto con un servidor de archivos y un servidor de impresoras. Soltar $50.000 a $100.000 para una instalación completa no era una venta fácil.
Encarnaciones posteriores del Star permitirían que los usuarios compraran una sola unidad con una
impresora LASER, pero el Xerox Star es todavía considerado por muchos como un fracaso comercial porque solamente fueron vendidas cerca de 25.000 unidades.
Algunos han dicho que el Star estaba adelantado a su tiempo. Pocos fuera de un pequeño círculo de desarrolladores realmente entendían el potencial del sistema. Hay que considerar que la
IBM introdujo el IBM PC manejado por el comparativamente muy primitivo PC-DOS el mismo año en que el Star fue traído al mercado. Incluso el Lisa de Apple, inspirado en el Star e introducido 2 años más tarde fue un fracaso comercial por muchas de las mismas razones que el Star.
Otra posible razón dada para explicar la carencia de éxito del Star miente con la estructura corporativa de Xerox en sí misma. Una compañía de
copiadoras por largo tiempo, Xerox no tenía mucha experiencia con tecnología de sistemas de computadoras. Tenían ya un fracaso significativo debajo de su correa por hacer la adquisición de Scientific Data System pay off. Se dice que había celos internos entre las divisiones de la vieja línea de sistemas de copiadoras que eran responsables la mayor parte de las ganancias de Xerox y la nueva división repentinamente importante. Sus esfuerzos de comercialización fueron considerados por alguno como poco entusiasta o desenfocado.
Finalmente, para los estándares de hoy, el software sería considerado muy lento, gravando el hardware limitado del momento. Guardar un archivo grande podía tomar minutos. Las estrelladas del sistema podían seguir con un proceso llamado "scarving" que duraba horas. Para algunos, éste era un precio demasiado alto para pagar, incluso para un sofisticado software como ese.
Para dar crédito a Xerox, ellos probaron muchas cosas en una tentativa para reavivar las ventas. El siguiente lanzamiento del Star estaba en una plataforma diferente y más eficiente de hardware que incluyó una significante reescritura del software para mejorar el rendimiento. El sistema fue llamado el Viewpoint 6085 y fue lanzado en
1985. El nuevo hardware proporciona 1MB a 4MB de memoria, un disco duro de 10MB a 80MB, una pantalla de 15" ó 19", una unidad de diskette de 5.25", un ratón, una conexión Ethernet y un precio algo sobre los $6.000.
Junto con una impresora LASER conectada, el Viewpoint se podía vender como un sistema independiente. También fue ofrecido un modo compatible con PC vía una tarjeta de expansión basada el
8086. Los usuarios podrían transferir archivos entre el sistema Star y el software basado en PC. Incluso con un precio significativamente reducido, seguía siendo un Rolls Royce en el mundo de los computadores personales baratos de $2.000.
En
1989, el Viewpoint 2.0 introdujo muchas nuevas aplicaciones relacionadas con la publicación de escritorio. Eventualmente, Xerox echó por la borda la estación de trabajo Viewpoint integrada por hardware y software, y ofrece GlobalView como una aplicación de software solamente. Esto proporcionó la interface y la tecnología del Star en una plataforma compatible con el IBM PC. El lanzamiento inicial requirió la instalación de la tarjeta del CPU MESA. El lanzamiento final del GlobalView 2.1 corrió como un emulador sobre el Microsoft Windows 3.1, Windows 95 o Windows 98 y fue lanzado en 1996.
La herencia del Star
Aunque el producto Star falló en hacer un impacto en el mercado, puso la base importante para las computadoras de hoy. Muchas de las ideas en Star, tal como
WYSIWYG, Ethernet, y servicios de red tales como Directorio, Impresión, Archivo, y encaminamiento entre redes han llegado a ser corrientes en las computadoras de hoy.
Hay una historia común que dice que un viaje a Xerox PARC por
Steve Jobs de Apple Computer condujo al GUI y al ratón a ser integrados en el Apple Lisa y, más adelante, en el primer Apple Macintosh. Esto es solamente parcialmente cierto. A Steve Jobs le fue mostrado el ambiente de programación Smalltalk-80, que tenía una pequeña porción de las características del GUI en el Star, por el ejemplo éste no tenía un escritorio o íconos. El equipo de ingeniería de Lisa vio el Star en su introducción y se volvió y convirtió lo que había sido una interface de usuario basada en texto dentro de un GUI. El interface inicial de Macintosh fue una versión simplificada del interface de Lisa (es decir, single-tasking), soportando solamente una simple unidad de diskette en vez el disco duro del Lisa (y del Star).
La lista de productos que fueron inspirados o influenciados directamente por la interface de usuario del Star incluyen el
Apple Lisa, el Apple Macintosh, GEM de Digital Research (la compañía del DR-DOS), Microsoft Windows, Atari ST, Commodore Amiga, Elixer, Metaphor Systems, Interleaf, Microsoft OS/2, SunOS, KDE, Ventura Publisher y NeXTSTEP. El PostScript de Adobe Systems fue basado en Interpress. Ethernet superó el token ring y otras tecnologías de redes para convertirse en estándar.
Sobre los años mucha gente se ha quejado de que Apple, Microsoft (y otros) plagiaron la
GUI (y otras innovaciones) del Xerox Star. También ha habido quejas porque Xerox no protegió correctamente su propiedad intelectual. La verdad es un poco más complicada. Muchas solicitudes de patente por innovaciones en el Star fueron sometidas. En ese momento, la Sentencia de Consentimiento de Xerox de 1975 restringió lo que la compañía podía patentar. Cuando solicitudes del Star eran preparadas, los abogados de patente de Xerox estaban ocupados con nuevas tecnologías como la impresión de LASER. Y finalmente, las patentes del software eran un área no probada en aquella época. Xerox de hecho hizo en 1988 una demanda a Apple por infringir el copyright con respecto al GUI, pero el caso fue rechazado por un detalle técnico.
Z1
La Z1 es considerada una de las primeras máquinas
programables del mundo. Fue creada por el ingeniero alemán Konrad Zuse en 1938.
En los años 30 en la industria de la computación tan sólo se podían encontrar ciertas calculadoras orientadas al comercio y muy primitivas.
Matemáticos e ingenieros tenían que construir sus propias calculadoras.
Zuse trabajaba en la industria de los aviones. Para los diseños de aviones se requerían constantes cálculos matemáticos que debían repetirse de acuerdo con unas variables. De esta manera surgió la necesidad de crear una máquina que repitiese los complejos cálculos y que los guardase en
memoria para referencias futuras.
Entre
1936 y 1938, Konrad Zuse intentó construir la primera computadora, una calculadora mecánica basada en el sistema binario que operaba con electricidad y con la posibilidad de poder programarla, aunque de forma limitada. Hacía uso de relés eléctricos para automatizar los procesos. Sin embargo, tan sólo consiguió realizar un prototipo que recibió el nombre del Z1 y que nunca llegó a funcionar de forma correcta debido a la falta de perfeccionamiento en sus elementos mecánicos. Esta máquina fue financiada completamente con dinero privado (principalmente de familiares y amigos de Zuse, incluido él mismo) y fue creada en el apartamento de sus padres. El gobierno nazi nunca confió demasiado en los trabajos de Zuse y por ello obtuvo escaso apoyo.
La Z1 fue la predecesora de los modelos
Z2 y Z3, creados por el mismo Zuse y en las que intentó subsanar los fallos que se encontraban en el modelo Z1. Ninguna de estas máquinas sobrevivió a la Segunda Guerra Mundial, fueron destruidas en el bombardeo de Berlín. Sin embargo, la obra de Zuse no se perdió completamente ya que podemos encontrar una reconstrucción de la Z1 en el Museo Técnico Alemán de Berlín (reconstruida por él mismo reutilizando piezas de la original), además de la computadora Z4, que fue construida años más tarde en Austria.
Z3
La computadora Z3, creada por
Konrad Zuse, fue la primera máquina programable y completamente automática, características usadas para definir a un computador.
El Z3 estaba construido con 2300
relés, tenía una frecuencia de reloj de ~5 Hz, y una longitud de palabra de 22 bits. Los cálculos eran realizados con aritmética en coma flotante puramente binaria. La máquina fue completada en 1941 (el 12 de mayo de ese mismo año fue presentada a una audiencia de científicos en Berlín). El Z3 original fue destruido en 1943 durante un bombardeo aliado de Berlín. Una réplica completamente funcional fue construida durante los años 60 por la compañía del creador Zuse KG y está en exposición permanente en el Deutsches Museum. En 1998 Raúl Rojas demostró que el Z3 es Turing completo[][]
Relaciones entre el Z3 y otros computadores
La siguiente lista sitúa el Z3 en el contexto de la época:
1. Al contrario que el primer ordenador no-programable creado por
Wilhelm Schickard en 1623, el Z3 de 1941 era programable.
2. El éxito de Zuse suele ser atribuido a su uso del sistema binario. Este sistema fue inventado unos 300 años antes por
Gottfried Leibniz, y posteriormente usado por George Boole para desarrollar su álgebra booleana. En 1937, Claude Shannon introdujo la idea de implementar el álgebra booleana mediante relés electrónicos en un documento sobre diseño de circuitos digitales. Sin embargo, fue Zuse el que lo unió todo esto e hizo que funcionara.
3. El primer diseño de un computador controlado por programa fue realizado por
Charles Babbage a mediados del siglo XIX. Este diseño, sin embargo, no pudo llevarse a cabo en aquellos momentos, supuestamente porque era decimal y por lo tanto muy complicado, no binario y simple como el Z3. No obstante, en 1991, la máquina diferencial de Babbage fue construida según sus planes originales, y funcionó correctamente. Si la amiga de Babbage, Ada Lovelace, fue la primera programadora teórica, escribiendo programas para una máquina que no existía, entonces Zuse fue el primer programador práctico.
4. El
ENIAC fue completado 4 años después que el Z3. Mientras que el ENIAC usaba válvulas de vacío y el Z3 usaba relés, el ENIAC todavía era decimal y el Z3 era binario. Hasta 1948, programar el ENIAC significaba volver a soldar los cables; mientras, el Z3 leía los programas de tarjetas perforadas. Hoy en día los computadores están basados en transistores en vez de válvulas o relés, pero su arquitectura interna es más parecida al Z3 que al ENIAC.
5. El Z3 necesitaba una cinta externa para almacenar los programas. El Manchester Baby de 1948 y el EDSAC de
1949 fueron los primeros computadores del mundo con programas almacenados internamente, implementando un concepto frecuentemente atribuido a un artículo presentado en 1945 por John von Neumann y sus compañeros. Sin embargo, una patente de Zuse de 1936 ya mencionaba la idea, pero fue rechazada.
6. Relación entre el Z3 y el concepto teórico de la máquina universal de Turing: era posible construir bucles en el Z3, pero no había ninguna instrucción de salto condicional (aunque hubiera sido sencillo añadir una). No obstante, hay una manera de implementar una máquina de Turing en un Z3 (asumiendo una capacidad de almacenamiento infinita), como fue demostrado en
1998. Es una manera extraña, pero la propia máquina de Turing es extraña, estando diseñada para ser simple y universal, no eficiente.
Desde un punto de vista práctico es mucho más importante el hecho de que el Z3 proporcionaba un juego de instrucciones bastante útil para las aplicaciones de los ingenieros de los
años 40. De hecho, Zuse era un ingeniero que construyó sus computadores para que les facilitasen su trabajo.
Z4
La computadora Z4, diseñanda por el ingeniero
alemán Konrad Zuse y construida por su compañía Zuse KG entre 1941 y 1945, fue entregada a ETH Zürich en Suiza en septiembre de 1950. Fue la primera computadora en el mundo en ser vendida, venciendo a la británica Ferranti Mark I por cinco meses y a la UNIVAC I por diez meses.
Konrad Zuse, este investigador creó numerosas computadoras a lo largo de su vida; se dedicó plenamente a ello. Sus primeras máquinas fueron la
Z1, Z2, Z3 y Z4
La Z4 fue terminada en
1944, aunque posteriormente fue retocada en numerosas ocasiones añadiéndole una unidad de lectura de tarjetas perforadas. Esta máquina era capaz de reproducir las tarjetas perforadas mediante instrucciones de la propia Z4, con lo que no era demasiado complicado programarla. Esta era una ventaja ya que era posible realizar copias de los programas para poder hacer correcciones.
La Z4 admitía un gran conjunto de instrucciones capaz de resolver complicados cálculos científicos. Era capaz de ejecutar 1000 instrucciones por hora. Estaba formada aproximadamente por 2200
relés, era capaz de realizar unas 11 multiplicaciones por segundo y tenía una memoria de 500 palabras de 32 bits. Pesaba unos 1000 kilogramos.
La entrada de datos era a través de un teclado decimal o a través de
tarjetas perforadas, y la salida era por una máquina de escribir.
Esta máquina fue utilizada hasta
1959 por multitud de instituciones. Actualmente se encuentra en el museo alemán de Munich
Z2
La computadora Z2, creada por
Konrad Zuse durante la etapa (1938-1939), fue diseñada a partir de la Z1, ya que crear una máquina mecánica presentaba algunas dificultades, y a ésta se le añadieron relés telefónicos.
Fue ayudado por un amigo suyo
Helmut Schreyer el cual trabajaba con relevadores electrónicos, y le pidió que le diseñara los circuitos para realizar las tres operaciones básicas, AND, OR y NOT, para así no diseñarse desde cero. Schereyer resolvió este problema sin ningún inconveniente mientras Zuse trabajaba en la parte lógica de los circuitos. Gracias a su trabajo en grupo, se pensó lograr una velocidad mil veces superior a la que se obtenía mediante máquinas de relevadores.
Características principales
La unidad numérica Z2 estaba construida con 800 relés, aunque todavía disponía de componentes mecánicos. Disponía de la misma memoria que la
Z1, el mecanismo de control se basaba en un sistema de cinta de perforada y con la unidad aritmética utilizando 200 relevadores electromecánicos. Tenía una frecuencia de reloj de ~10 KHz y operaba con números de punto fijo.
Sus características eran muy similares a la
Z1, y para Zuse fue un modelo experimental para probar el poder de la utilización de los relés telefónicos.y otros mecanico
Su fracaso y problemática
Zuse pronto se dio cuenta que construir una máquina con estas características
máquina de bulbos, era prácticamente imposible debido a la escasez de material y al advenimiento de la guerra por lo que comenzó en su proyecto que utilizaría relevadores electromecánicos. Este proyecto se vio interrumpido por el estallido de la Segunda Guerra Mundial. Zuse fue llamado por el servicio militar por lo que se interrumpió el proyecto, el cual más tarde se retomaría gracias a que presentó una solicitud de descargo para poder continuar con él y La Wehrmacht aceptó su solicitud y pudo continuar posteriormente. Esta máquina fue destruida durante un bombardero en 1940.
Z22
La Z22 fue el séptimo modelo de
computador de Konrad Zuse que desarrolló (Z1, Z2, Z3, Z4, Z5 y Z11)
Fue una computadora comercial, el diseño de la Z22 finalizó en
1955. Las primeras máquinas se vendieron a Berlín y a Aquisgrán.
Se dice que la Z22 fue la primera computadora con almacenamiento magnético. Pero las memorias magnéticas ya trabajaban en modelos militares. La
computadora Whirlwind usaba núcleos magnéticos en 1953.
La Universidad de Ciencias Aplicadas de Karlsruhe (Fachhochschule Karlsruhe, tiene una Z22 operativa.
Datos técnicos
14 palabras de 38-
bit RAM en núcleos de memoria
38
kbyte de memoria magnética drum
tarjetas como bulk memory (input / output)
380 V trifásico 16 A
600
tubos trabajando en flip-flops
enfriamiento eléctrico, con una conexión a la red de agua corriente
La Z22 operaba a una frecuencia de 3 kHz, sincronizada con la velocidad del almacenamiento drum. Los datos de entrada se introducían por tarjetas, y directamente por memoria programada drum o memoria magnética, con teclado. La Z22 usaba lámparas de tubo para mostrar la memoria y el estado de salida.
Programación
La Z22 se diseñó para hacer fácil el programar a esa primera generación de computadoras.
El código máquina tenía 38 bits de instrucciones, constando de 5 campos:
los primeros 2 bits debían ser siempre 10
los siguientes 5 bits contienen un símbolo condicional
los siguientes 13 bits contienen un símbolo operacional
los siguientes 5 bits contienen una dirección de memoria de núcleo
los siguientes 13 bits contienen una dirección de memoria drum
Había también un lenguaje de programación del tipo assembly, el "Código Freiburger".Se diseñó para programas de resolución de problemas de matemática