viernes, 28 de enero de 2011

¿Que es el software, los programas y los sistemas operativos?

Software:
El software es una producción inmaterial del cerebro humano y tal vez una de las estructuras más complicadas que la humanidad conoce. De hecho, los expertos en computación aún no entienden del todo cómo funciona, su comportamiento, sus paradojas y sus límites.1 Básicamente, el software es un plan de funcionamiento para un tipo especial de máquina, una máquina ``virtual'' o ``abstracta''. Una vez escrito mediante algún lenguaje de programación, el software se hace funcionar en ordenadores, que temporalmente se convierten en esa máquina para la que el programa sirve de plan. El software permite poner en relación al ser humano y a la máquina y también a las máquinas entre sí. Sin ese conjunto de instrucciones programadas, los ordenadores serían objetos inertes, como cajas de zapatos, sin capacidad siquiera para mostrar algo en la pantalla.
Los ordenadores sólo procesan lenguaje binario,2 pero para las personas este no es un modo válido de comunicarse (salvo a nivel sináptico :-). Si bien en los tiempos heroicos de los primeros ordenadores no les quedaba otro remedio que hacerlo, los programadores hace mucho que no escriben su código en lenguaje binario (denominado técnicamente ``código-máquina''), pues es terriblemente tedioso, improductivo y muy sujeto a errores. Hace tiempo que los programadores escriben las instrucciones que ha de ejecutar el procesador de la máquina mediante lenguajes formales, llamados ``de alto nivel'', bastante cercanos al inglés, si bien con rígidas reglas sintácticas que lo asemejan a los lenguajes lógico-formales. Esto facilita enormemente la tarea de escribir programas pero, para que esas instrucciones sean comprensibles para el procesador, deben ser convertidas antes a código-máquina. Esa conversión se realiza cómodamente con programas especiales, llamados compiladores. A lo que escribe el programador se le denomina ``código-fuente''. Al resultado de la ``conversión'' (compilación) en lenguaje-máquina, se le denomina ``código-objeto'', ``binarios'' o ``ficheros ejecutables''. En principio, al usuario común sólo le importa este último nivel, los ``binarios'', pero conviene tener clara la distinción entre fuentes y binarios pues es clave para entender el empeño de los partidarios del software libre en disponer de las fuentes.
Pero el software libre es mucho más que el derecho de los programadores y de los hackers3 a disponer de las fuentes del código: significa también la libertad de copiar y redistribuir esos programas. Esos derechos, o su ausencia, condicionan a cualquiera que use un ordenador y han configurado la industria del software y de la informática tal y como la conocemos hoy día. También ha dado lugar a un movimiento social --el del software libre-- cuya historia reconstruiremos brevemente en las próximas líneas.


Los programas:
  • Software de programación: Es el conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluye entre otros:



  • Sistemas operativos:
  • Software de sistema: Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles de la computadora en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento. Incluye entre otros:

  • ¿Que es el harware, la computadora y los componentes de la computadora?

    Hardware:
    Ccorresponde a todas las partes físicas y tangibles[1] de una computadora: sus componentes eléctricos, electrónicos, electromecánicos y mecánicos;[2] sus cables, gabinetes o cajas, periféricos de todo tipo y cualquier otro elemento físico involucrado; contrariamente, el soporte lógico es intangible, y que es llamado software. El término es propio del idioma inglés (literalmente traducido: partes duras), su traducción al español no tiene un significado acorde, por tal motivo se la ha adoptado tal cual es y suena; la Real Academia Española lo define como «Conjunto de los componentes que integran la parte material de una computadora».[3] El término, aunque es lo más común, no solamente se aplica a una computadora tal como se la conoce, ya que, por ejemplo, un robot, un teléfono móvil, una cámara fotográfica o un reproductor multimedia también poseen hardware (y software).[4] [5]
    El término hardware tampoco correspondería a un sinónimo exacto de «componentes informáticos», ya que esta última definición se suele limitar exclusivamente a las piezas y elementos internos, independientemente de los periféricos.
    La historia del hardware del computador se puede clasificar en cuatro generaciones, cada una caracterizada por un cambio tecnológico de importancia. Este hardware se puede clasificar en: básico, el estrictamente necesario para el funcionamiento normal del equipo; y complementario, el que realiza funciones específicas.
    Un sistema informático se compone de una unidad central de procesamiento (CPU), encargada de procesar los datos, uno o varios periféricos de entrada, los que permiten el ingreso de la información y uno o varios periféricos de salida, los que posibilitan dar salida (normalmente en forma visual o auditiva) a los datos procesados.
    La clasificación evolutiva del hardware del computador electrónico, está dividida en generaciones, donde cada una supone un cambio tecnológico muy notable. El origen de las primeras es sencillo de establecer, ya que en ellas el hardware fue sufriendo cambios radicales. [6] Los componentes esenciales que constituyen la electrónica del computador fueron totalmente reemplazados en las primeras tres generaciones, originando cambios que resultaron trascendentales. En las últimas décadas es más difícil establecer las nuevas generaciones, ya que los cambios han sido graduales y existe cierta continuidad en las tecnologías usadas. En principio, se pueden distinguir:


    La compuatdora:
    Una computadora o un computador, (del latín computare -calcular-), también denominada ordenador (del francés ordinateur, y éste del latín ordinator), es una máquina electrónica que recibe y procesa datos para convertirlos en información útil. Una computadora es una colección de circuitos integrados y otros componentes relacionados que puede ejecutar con exactitud, rapidez y de acuerdo a lo indicado por un usuario o automáticamente por otro programa, una gran variedad de secuencias o rutinas de instrucciones que son ordenadas, organizadas y sistematizadas en función a una amplia gama de aplicaciones prácticas y precisamente determinadas, proceso al cual se le ha denominado con el nombre de programación y al que lo realiza se le llama programador. La computadora, además de la rutina o programa informático, necesita de datos específicos (a estos datos, en conjunto, se les conoce como "Input" en inglés o de entrada) que deben ser suministrados, y que son requeridos al momento de la ejecución, para proporcionar el producto final del procesamiento de datos, que recibe el nombre de "output" o de salida. La información puede ser entonces utilizada, reinterpretada, copiada, transferida, o retransmitida a otra(s) persona(s), computadora(s) o componente(s) electrónico(s) local o remotamente usando diferentes sistemas de telecomunicación, pudiendo ser grabada, salvada o almacenada en algún tipo de dispositivo o unidad de almacenamiento.
    La característica principal que la distingue de otros dispositivos similares, como la calculadora no programable, es que es una máquina de propósito general, es decir, puede realizar tareas muy diversas, de acuerdo a las posibilidades que brinde los lenguajes de programación y el hardware.
    La palabra española ordenador proviene del término francés ordinateur, en referencia a Dios que pone orden en el mundo ("Dieu qui met de l'ordre dans le monde").[1] En parte por cuestiones de marketing, puesto que la descripción realizada por IBM para su introducción en Francia en 1954 situaba las capacidades de actuación de la máquina cerca de la omnipotencia, idea equivocada que perdura hoy en día al considerar que la máquina universal de Turing es capaz de computar absolutamente todo.[2] En 1984, académicos franceses reconocieron, en el debate "Les jeunes, la technique et nous", que el uso de este sustantivo es incorrecto, porque la función de un PC es procesar datos, no dar órdenes.[3] Mientras que otros, como el catedrático de filología latina Jacques Perret, conocedores del origen religioso del término, lo consideran más correcto que las alternativas[1] .
    El uso de la palabra ordinateur se ha exportado a algunos idiomas de la península Ibérica, como el aragonés, el asturiano, el gallego, el castellano, el catalán y el euskera. El español que se habla en Iberoamérica así como los demás idiomas europeos, como el portugués, el alemán y el holandés, utilizan derivados del término computare.


    Los componentes de una computadora:
    Antes de enumerar los distintos componentes de una computadora, deberíamos definir qué entendemos por "computadora" (u ordenador). Una computadora es un dispositivo electrónico compuesto básicamente de procesador, memoria y dispositivos de entrada/salida. Los componentes de una computadora pueden clasificarse en dos: Hardware, Software.
    Los componentes del soporte físico o hardware mas importantes son los siguientes: Procesador, Memoria RAM, Disco duro, Unidad de CD-ROM, Unidad de CD RW, Módem, Caché secundario, Tarjeta madre, Puertos USB, Unidad de DVD ROM, Teclado, Impresora, Escáner y monitor: ya que ellos nos ayudan a cumplir nuestro propósito.

    Equipos de Entrada

    Un equipo de entrada es cualquier componente de hardware que permite que un usuario entre datos o instrucciones a la computadora. Seis equipos de entrada (o de Input) comunes son: teclado (“keyboard”), “mouse”, micrófono, “scanner”, cámara digital y cámara de computadoras personales.

    Equipos de Salida

    Un equipo de salida es cualquier componente de hardware que puede recibir y presentar información para un usuario. Tres tipos comunes son: impresora (“printer”), monitor y bocinas.
    System unit 
    También es conocido como chasis. Es parecido a una caja, hecho de metal o plástico, que protege los componentes electrónicos internos de la computadora. Los circuitos del “system unit” usualmente son parte de una tarjeta de circuito llamada tarjeta madre o “motherboard”. Hay dos componentes principales del “motherboard”: el CPU (Central Processing Unit) y la memoria.

    Generaciones de las computadoras

    Primera Generación: Válvulas de vacío (1945-1955).
    Para el momento en que Howard Aiken había terminado la Mark II, las computadoras basadas en relés ya eran obsoletas. El principal estímulo para desarrollar computadoras electrónicas estuvo en la segunda guerra mundial. Los submarinos alemanes, que destruían a la flota inglesa, se comunicaban por radio con sus almirantes en Berlín. Los británicos podían captar las señales de radio, pero los mensajes estaban encriptados usando un dispositivo llamado ENIGMA. La inteligencia británica había podido obtener una máquina ENIGMA robada a los alemanes, pero para quebrar los códigos era necesaria una gran cantidad de cálculo, que debía hacerse a alta velocidad.
    Existen cinco componentes básicos: la memoria, la Unidad Aritmético/Lógica, la Unidad de Control de Programas, y el equipamiento de Entrada/Salida.
    La Unidad Aritmético-Lógica ejecuta las operaciones básicas, y contiene un registro acumulador de 40 bits (que también se usa se usa para entrada/salida). Las operaciones se hacen sobre datos binarios.
    La memoria almacena datos e instrucciones, y consistía de 4096 palabras de 40 bits. Cada palabra contenía dos instrucciones de 20 bits, o un entero con 39 bits y signo. Las instrucciones usaban 8 bits para el tipo de instrucciones, y 12 bits para especificar direcciones de memoria.
    La Unidad de control interpreta las instrucciones en memoria, y hace que se ejecuten. El equipamiento de entrada/salida era operado por la Unidad de Control.
    La computadora opera de la siguiente forma:
    1. La Unidad de Control sigue el flujo del programa y hace que se ejecute;
    2. La salida de datos se hace a través del registro acumulador;
    3. Se usa aritmética binaria
    4. La ALU hace las operaciones aritmético/lógicas usando lógica bit-parallel.
    En este año también se pone operativa la EDVAC , así como la ILLIAC I (de la Universidad de Illinois) y la ORDVAC (construida por la armada): todas usan la arquitectura de Von Neumann. La ILLIAC (una copia mejorada de la ORDVAC) tenía 1024 palabras de 40 bits. En estas máquinas una suma tardaba nos 72 microsegundos, mientras que las multiplicaciones de punto fijo tenían un promedio de unos 700 microsegundos.
    Durante todos estos desarrollos, IBM se había transformado en una pequeña compañía que producía perforadoras de tarjetas y ordenadoras mecánicas de tarjetas. IBM no se interesó en producir computadoras, hasta que en 1952 produjo la IBM 701. Esta computadora tenía 2K de palabras de 36 bits, con dos instrucciones por palabras. Fue la primera de una serie de computadoras científicas que dominaron la industria en la década siguiente.
    En 1955 apareció la 704, que tenía 4K de memoria y hardware de punto flotante.
    En 1953, la IBM 650 sale a la venta, y fue la primer computadora fabricada en serie.

    Para decodificar estos mensajes, el gobierno británico construyó un laboratorio para construir una computadora, llamada COLOSSUS. Alan Turing, T. Flowers y M. Newman construyeron esta computadora (1943), que fue la primer computadora electrónica de la historia. Estaba construida de válvulas de vacío y no tenía dispositivos electromecánicos. A pesar de ello, al ser un secreto militar, su construcción no tuvo ninguna influencia posterior.
    En EE.UU., simultáneamente, había interés de la armada para obtener tablas que pudieran usarse para mejorar la precisión en los disparos de artillería pesada (en particular para armas antiaéreas), ya que hacerlos manualmente era tedioso y frecuentemente con errores.
    Segunda Generación: Transistores (1955-1965).
    La primer computadora puramente basada en transistores fue la TX-0 (Transitorized eXperimental computer 0), en el MIT. Esta fue un dispositivo usado para probar la TX-2. Uno de los ingenieros trabajando en este laboratorio, Kenneth Olsen, abandonó el laboratorio para formar la compañía DEC (Digital Equipment Company).

    En 1956, IBM introduce el primer disco duro. En el mismo año, se diseña la primer computadora comercial UNIVAC puramente basada en transistores.
    En 1957 la EDSAC 2 estuvo operativa. Era una computadora con 1024 palabras de 40 bits, con dos órdenes por palabras. Estaba hecha con válvulas, y la memoria usaba núcleos de ferrita. La ALU era bit-sliced. Se incluyeron operaciones de punto flotante para hacer los cálculos más simples, que usaba una fracción de 32 bits y un exponente de 8 bits. La computadora era microprogramada, con una ROM 768 palabras. La ROM permitía que diversas subrutinas útiles (seno, coseno, logaritmos, exponenciales) estuvieran siempre disponibles. La memoria fija incluía un ensamblador y un conjunto de subrutinas de impresión que permitían hacer entrada/salida.
    Los microprogramas permitieron que las órdenes pudieran ser diseñadas cuidadosamente, menos dependientes de accidentes del hardware. La computadora ejecutaba una instrucción simple en unos 20 microsegundos, y una multiplicación precisaba 250 microsegundos. La lectora de papel leía 1000 caracteres por segundo, y la perforadora perforaba 300 caracteres por segundo. La salida se seguía imprimiendo en una telelimpresora.
    En el mismo año, la computadora ERMETH se construyó en el ETH en Zurich. Tenía palabras de 16 dígitos decimales, cada uno de los cuales contenía dos instrucciones y un número de punto fijo de 14 dígitos o un número de punto flotante con una mantisa de 11 dígitos. Una suma de punto flotante tomaba 4 milisegundos; una multiplicación, 18 milisegundos. Tenía un tambor magnético que podía almacenar 1000 palabras. La máquina tenía unos 1900 válvulas de vacío y unos 7000 diodos de germanio.

    En 1964, aparece el primer modelo de la computadora IBM 360. IBM había construido una versión con transistores de la 709, llamada 7090, y posteriormente la 7094. Esta tenía un ciclo de instrucción de 2 microsegundos, y 32K palabras de 36 bits. Estas computadoras dominaron la computación científica en los '60s.
    IBM también vendía una computadora orientada a negocios llamada 1401. Esta podía leer cintas magnéticas, leer y perforar tarjetas, e imprimir. No tenía registros ni palabras de longitud fija. Tenía 4K de bytes de 8 bits cada uno. Cada byte contenía un caracter de 6 bits, un bit administrativo, y un bit para indicar un fin de palabra. La instrucción de movimiento de memoria a memoria movía datos de la fuente al destino hasta que encontraba el bit de fin de palabra prendido.
    El problema era la incompatibilidad de ambas computadoras: era imposible compartir el software, y de hecho era necesario tener dos centros de cómputos separados con personal especializado. La IBM System/360 fue una computadora diseñada con múltiples propósitos. Era una familia e computadoras con el mismo lenguaje de máquina, pero mayor potencia. El software escrito en cualquiera de los modelos ejecutaba directamente en los otros (el único problema era que, al portar un programa de una versión poderosa a una versión anterior, el programa podía no caber en memoria). Todas las IBM 360 proveían soporte para multiprogramación. También existían emuladores de otras computadoras, para poder ejecutar versiones de ejecutables de otras máquinas sin ser modificados. Tenía un espacio de direcciones de 16 megabytes.
    Tercera Generación: Circuitos Integrados (1965-1980)
    Como fue mencionado, a fines de los años '50, ingenieros en Fairchild Semiconductor Co. y en Texas Instrument desarrollaron el primer transistor plano, y mas adelante el primer circuito integrado plano. La invención del circuito integrado reveló el potencial para extender el costo y los beneficios de operación de los transistores a todos los circuitos producidos en masa. La invención del circuito integrado permitió que docenas de transistores se pusieran en el mismo chip. Este empaquetamiento permitió construir computadoras más pequeñas, rápidas y baratas que sus predecesores con transistores. Las primeras versiones de la IBM 360 eran transistorizadas, pero las versiones posteriores no solo eran más rápidas y poderosas, sino que fueron construidas en base a circuitos integrados.
    En 1965, Gordon E. Moore (fundador de Fairchild, y patentador del primer circuito integrado) cuantificó el crecimiento sorprendente de las nuevas tecnologías de semiconductores. Dijo que los fabricantes habían duplicado la densidad de los componentes por circuito integrado a intervalos regulares (un año), y que seguirían haciéndolo mientras el ojo humano pudiera ver.
    En 1967, Fairchild introduce un chip que contenía una ALU de 8 bits: el 3800. En 1968, Gordon Moore, Robert Noyce y Andy Grove establecen la compañía Intel, que en un principio se dedica a fabricar chips de memoria. En este mismo año, la computadora CDC 7600 logra la velocidad de 40 Mflops..

    En el año 1969, el departamento de defensa de los EE.UU. encarga la red Arpanet con el fin de hacer investigación en redes amplias, y se instalan los primeros cuatro nodos (en la UCLA, UCSB, SRI y Universidad de Utah). También se introduce el estándar RS-232C para facilitar el intercambio entre computadoras y periféricos.
    En 1970 aparecen los discos flexibles y las impresoras margarita. También comienza a usarse la tecnología de MOS (Metal-Oxide semiconductor) para circuitos integrados más pequeños y baratos. En 1971, Intel fabrica el microprocesador de 4 bits 4004, la primer computadora en un solo chip. Su objetivo era ser usado para una calculadora. Ya en 1972, Intel fabrica el 8008, primer microprocesador de 8 bits (que es reemplazado por el 8080, debido al límite de memoria de 16k impuesto por los pins en el chip).

    En 1973, las técnicas de integración a gran escala (LSI - Large Scale Integration) permiten poner 10.000 componentes en un chip de 1 cm. cuadrado. En el mismo año, John Metcalfe propone el protocolo Ethernet para comunicación en redes locales. En 1975, la primer computadora personal, la Altair 8800, aparece en la revista Popular Electronics, explicando cómo construirla. También en ese año, IBM introduce la primer impresora láser.

    Las microcomputadoras o Computadoras Personales (PC´s) tuvieron su origen con la creación de los microprocesadores. Un microprocesador es "una computadora en un chip", o sea un circuito integrado independiente. Las PC´s son computadoras para uso personal y relativamente son baratas y actualmente se encuentran en las oficinas, escuelas y hogares.
    El término PC se deriva de que para el año de 1981, IBM, sacó a la venta su modelo "IBM PC", la cual se convirtió en un tipo de computadora ideal para uso "personal", de ahí que el término "PC" se estandarizó y los clones que sacaron posteriormente otras empresas fueron llamados "PC y compatibles", usando procesadores del mismo tipo que las IBM , pero a un costo menor y pudiendo ejecutar el mismo tipo de programas. Existen otros tipos de microcomputadoras , como la Macintosh, que no son compatibles con la IBM, pero que en muchos de los casos se les llaman también "PC´s", por ser de uso personal. Microprocesador El primer microprocesador fue el Intel 4004, producido en 1971. Se desarrolló originalmente para una calculadora, y resultaba revolucionario para su época. Contenía 2.300 transistores en un microprocesador de 4 bits que sólo podía realizar 60.000 operaciones por segundo.

                                                   Quinta generación de computadoras.
    La quinta generación de computadoras, también conocida por sus siglas en inglés, FGCS (de Fifth Generation Computer Systems) fue un ambicioso proyecto lanzado por Japón a finales de la década de 1970. Su objetivo era el desarrollo de una nueva clase de computadoras que utilizarían técnicas y tecnologías de inteligencia artificial tanto en el plano del hardware como del software,[1] usando el lenguaje PROLOG[2] [3] [4] al nivel del lenguaje de máquina y serían capaces de resolver problemas complejos, como la traducción automática de una lengua natural a otra (del japonés al inglés, por ejemplo).
    Como unidad de medida del rendimiento y prestaciones de estas computadoras se empleaba la cantidad de LIPS (Logical Inferences Per Second) capaz de realizar durante la ejecución de las distintas tareas programadas. Para su desarrollo se emplearon diferentes tipos de arquitecturas VLSI (Very Large Scale Integration).
    El proyecto duró once años, pero no obtuvo los resultados esperados: las computadoras actuales siguieron así, ya que hay muchos casos en los que, o bien es imposible llevar a cabo una paralelización del mismo, o una vez llevado a cabo ésta, no se aprecia mejora alguna, o en el peor de los casos, se produce una pérdida de rendimiento. Hay que tener claro que para realizar un programa paralelo debemos, para empezar, identificar dentro del mismo partes que puedan ser ejecutadas por separado en distintos procesadores. Además, es importante señalar que un programa que se ejecuta de manera secuencial, debe recibir numerosas modificaciones para que pueda ser ejecutado de manera paralela, es decir, primero sería interesante estudiar si realmente el trabajo que esto conlleva se ve compensado con la mejora del rendimiento de la tarea después de paralelizarla.

    A través de las múltiples generaciones desde los años 50, Japón había sido el seguidor en términos del adelanto y construcción de las computadoras basadas en los modelos desarrollados en los Estados Unidos y el Reino Unido. Japón, a través de su Ministerio de Economía, Comercio e Industria (MITI) decidió romper con esta naturaleza de seguir a los líderes y a mediados de la década de los 70 comenzó a abrirse camino hacia un futuro en la industria de la informática. El Centro de Desarrollo y Proceso de la Información de Japón (JIPDEC) fue el encargado llevar a cabo un plan para desarrollar el proyecto. En 1979 ofrecieron un contrato de tres años para realizar estudios más profundos con la participación conjunta de empresas de la industria dedicadas a la tecnología e instituciones académicas, a instancias de Hazime Hiroshi. Fue durante este período cuando el término "computadora de quinta generación" comenzó a ser utilizado.

                                                Sexta generacion de las computadoras.
    Como supuestamente la sexta generación de computadoras está en marcha desde principios de los años noventas, debemos por lo menos, esbozar las características que deben tener las computadoras de esta generación. También se mencionan algunos de los avances tecnológicos de la última década del siglo XX y lo que se espera lograr en el siglo XXI. Las computadoras de esta generación cuentan con arquitecturas combinadas Paralelo / Vectorial, con cientos de microprocesadores vectoriales trabajando al mismo tiempo; se han creado computadoras capaces de realizar más de un millón de millones de operaciones aritméticas de punto flotante por segundo (teraflops); las redes de área mundial (Wide Area Network, WAN) seguirán creciendo.

    Evolución histórica de las computadoras

    En la historia de la humanidad se han construido distintos tipos de instrumentos de ayuda para que el hombre pudiera calcular, hasta llegar a la computadora digital moderna. Aquí mostraremos algunos hitos importantes en esta historia. Se muestra la evolución de las computadoras, así como de los dispositivos para entrada/salida y los medios de comunicación de datos.
    La primer persona en construir una máquina de calcular fue el francés Blaise Pascal (1642). Era una máquina mecánica que sólo servía para sumar.
    En 1666 Samuel Morbard crea una máquina para sumar y restar. Ya en 1674, el barón Gottfired Wilhelm von Leibniz construye en Alemania una calculadora mecánica que no solo suma y resta, sino que también puede efectuar operaciones de multiplicación y división. Todas estas calculadoras eran mecánicas, en base a movimientos de engranajes, y los datos se ingresaban por medio de husos giratorios.
    En el año 1801, Jacquard inventa una tarjeta de cartón a la que hace agujeros que se utiliza para "programar" una máquina de tejer.
    Más adelante (1822), Charles Babbage, un profesor de matemática de la Universidad de Cambridge diseña y construye la "máquina de diferencias". Este era un dispositivo mecánico que podía sumar y restar, y se usa para hacer cálculos por medio del método de diferencias finitas usando (en concreto fue usada para generar tablas de navegación). El resultado se registra en un plato de cobre (en forma de disco) en el que se perforan los resultados (de forma similar a la máquina de tejer de Jacquard).
    Esta calculadora funcionaba correctamente, pero sólo podía ejecutar un único algoritmo. Babbage dedicó tiempo y esfuerzos económicos en el diseño de una computadora de uso general, llamada la "Máquina Analítica" (1834). Esta máquina, que fue diseñada generalización de la máquina de diferencias, tenía cuatro componentes básicos:
    Un "almacenamiento" (memoria) con capacidad para guardar 50.000 dígitos decimales. Esta se usaba para guardar estados intermedios, variables y resultados. Una "unidad de cómputo": puede recibir órdenes para hacer las cuatro operaciones básicas, y puede almacenar resultados en la memoria.
    Una unidad de entrada (con tarjetas perforadas). La unidad de entrada almacenaba el conjunto de órdenes que se deseaba ejecutar.
    Una unidad de salida: tarjetas perforadas y salida impresa.
    Perforando distintos conjuntos de instrucciones en las tarjetas de entrada, era posible que la máquina realizara distintas operaciones.
    Como esta computadora debía ser programada, Babbage contrató a Ada Augusta Lovelace (hija de Lord Byron), que se convirtió así en la primer programadora de la historia (1842).
    El proyecto de Babbage nunca pudo ser concluido debido a problemas con el hardware, que no pudieron ser solucionados hasta casi un siglo más tarde. Durante este tiempo, hubo diversos avances que permitieron el posterior desarrollo de la computación digital. ´

    La primer computadora construida por Aiken fue la Harvard Mark I (también llamada IBM ASSC) fue terminada recién en 1944. Esta computadora tenía dispositivos para almacenar y operar números que eran cargados durante un cálculo o que eran resultados de operaciones previas. Tenía 60 registros constantes, cada uno consistente de 24 conmutadores que podían inicializarse manualmente a una posición decimal (de cero a 9). Había 23 dígitos significativos, y la posición 24 valía 0 o 9, indicando números positivos o negativos. Había, además, 72 registros de almacenamiento donde se hacían las operaciones aritméticas. La entrada y la salida consistían de cintas de papel perforado, que podían montarse en teletipos para obtener resultados impresos. El tiempo requerido para ejecutar una instrucción era de 6 segundos.
    Originalmente la computadora no tenía circuitos de bifurcación (condicional o incondicional), los que fueron agregados más adelante. También se agregaron una unidad de multiplicación/división, más almacenamiento, registros y una unidad de cinta. Los datos estaban completamente separados de las instrucciones. Esta computadora estuvo activa desde 1944 hasta 15 años más tarde, en que fue desmantelada.
    Los programadores solían ser matemáticos que trabajaban con una cartilla de operaciones. Al tiempo era común que las partes de los programas que eran necesarias una y otra vez hubieran sido escritas en libros de apuntes, dando origen a las bibliotecas de programas. Años más tarde, estas prácticas se extendieron a conjuntos de programas o rutinas (llamados bibliotecas de subrutinas), pero sus orígenes se remontan a estas épocas.
    Simultáneamente, Zuse continuaba trabajando en Alemania. En 1938 comenzó a trabajar en la computadora Z2, que estuvo operativa en 1940. Esta era una máquina puramente de relés. Reemplazó las partes mecánicas no funcionales de la Z1 por relés.
    En 1941, terminó la Z3, que era una computadora programable electromecánica. Contenía 2600 relés, y algunos expertos la consideran como la primer computadora programable de la historia.
    En el año 1844, Samuel Morse envía un mensaje en telégrafo desde Washington a Baltimore (EE.UU.). En 1854, George Boole publica "Una investigación sobre las leyes del pensamiento", describiendo un sistema de lógica simbólica y razonamiento (que sería la base del diseño de computadoras digitales).
    En el año 1858 se tiende el primer cable telegráfico que cruza el Atlántico. En 1876, Alexander Graham Bell inventa y patenta el Teléfono.
    En 1889, Herman Hollerith gana, con su compañía, llamada the Electric Tabulating System, una licitación para el censo de los EE.UU. de 1890. En el año 1893 se comienza a vender la primer calculadora mecánica de cuatro funciones.

    En el año 1895, el italiano Guglielmo Marconi emite la primer señal de radio. En el año 1896, Hollerith establece la compañía Tabulating Machine Company.
    En el año 1904, John A. Fleming patenta la válvula de vacío, que permite mejorar las comunicaciones por radio. En el año 1908, el británico Campbell Swinton describe un método de escaneo electrónico que sería utilizado posteriormente en el tubo de rayos catódicos de los televisores.
    En el año 1911, la Tabulating Machine Company de Hollerith se une con otras dos compañías, y forman la Calculating, Tabulating and Recording Company (CTR & Co.). En el año 1919, dos físicos de los EE.UU., Eccles y Jordan, inventan el circuito de conmutación electrónica llamado flip-flop, que sería crítico para los sistemas de cómputo electrónico. En el año 1920, a su vez, el checo Karel Cepel utiliza por primera vez la palabra "Robot" (que significa "Trabajo obligatorio") en una obra de teatro.
    En 1924, T.J. Watson. cambia el nombre de la CRT & Co. por IBM (International Business Machines). En 1928 se usan osciladores de cuarzo para lograr alta precisión en mecanismos de medición de tiempo. Durante esta década retoma vigor el desarrollo de máquinas para realizar cálculos. Hartree construyó un "analizador diferencial", que usaba como principio básico un disco rotando en contacto con otro. A una velocidad de motor constante, la distancia transcurrida sería la integral en el tiempo de la relación de variación.