Sistemas Informáticos

Hablemos de sistemas informaticos.
Las primeras computadoras eran máquinas con un tamaño (físico) enorme que se ejecutaban desde una consola. El programador, que también era el operador del sistema de computación, escribía un programa y luego operaba el programa directamente desde la consola del operador. Primero, el programa se cargaba manualmente en la memoria usando los interruptores del tablero frontal (una instrucción a la vez), desde cinta de papel o desde tarjetas perforadas. Luego se oprimían los botones apropiados para establecer la dirección de inicio y poner en marcha la ejecución del programa. Mientras el programa se ejecutaba, el programador/operador podía vigilar su ejecución gracias a las luces de la consola. Si se descubrían errores, el programador podía detener el programa, examinar el contenido de la memoria y los registros, y depurar el programa directamente desde la consola. Las salidas se imprimían o se perforaban en cinta de papel o tarjetas para imprimirse posteriormente.

Con el paso del tiempo, se desarrolló software y hardware adicional. Los lectores de tarjetas, impresores de líneas y unidades de cinta magnética se hicieron comunes.
Se diseñaron ensambladores, cargadores y enlazadores para facilitar la tarea de programación. Se crearon bibliotecas de funciones comunes, las cuales se podían entonces copiar en un programa nuevo sin tener que escribirlas otra vez; esto permitía reutilizar el software.
Las rutinas que realizaban E/S tenían especial importancia. Cada nuevo dispositivo de E/S tenía sus propias características y requería una programación cuidadosa. Se escribía una subrutina especial para cada dispositivo de E/S. Tales subrutinas se denominan drivers de dispositivos. Un driver de dispositivo sabe cómo deben usarse los bufers, banderas, registros, bits de control y bits de estado de un dispositivo en particular. Cada tipo de dispositivo diferente tiene su propio driver.
Una tarea sencilla, como leer un carácter de un lector de cinta de papel, podría implicar secuencias complejas de operaciones específicas para el dispositivo. En vez de escribir el código necesario en cada ocasión, simplemente se usaba el driver de la biblioteca.
Más adelante aparecieron compiladores para FORTRAN, COBOL otros lenguajes, lo que facilitó mucho la tarea de programar pero complicó la operación del computador. Para preparar un programa FORTRAN para su ejecución, por ejemplo, el programador primero necesitaba cargar el compilador de FORTRAN en el computador. El compilador normalmente se guardaba en cinta magnética, por lo que era necesario montar la cinta correcta en la unidad de cinta. El programa se leía a través del lector de tarjetas y se escribía en otra cinta. El compilador de FORTRAN producía una salida en lenguaje ensamblador, que entonces era necesario ensamblar.
Este procedimiento requería montar otra cinta con el ensamblador. La salida del ensamblador tenía que enlazarse con las rutinas de biblioteca de soporte. Finalmente, la forma objeto binaria del programa quedaba lista para ejecutarse: se podía cargar en la memoria y depurarse desde la consola, igual que antes.
Queda claro que la ejecución de un trabajo podía requerir un tiempo de preparación considerable. Cada trabajo consistía en muchos pasos individuales: cargar la cinta del compilador de FORTRAN, ejecutar el compilador, descargar la cinta del compilador, cargar la cinta del ensamblador, ejecutar el ensamblador, descargar la cinta del ensamblador, cargar el programa objeto y ejecutar el programa objeto. Si ocurría un error durante cualquier paso, cabía la posibilidad de que hubiera que comenzar otra vez desde el principio. Cada paso del trabajo podría implicar la carga y descarga de cintas magnéticas, cintas de papel y tarjetas perforadas.
El tiempo de preparación del trabajo era un verdadero problema. Mientras se estaban montando cintas o el programador estaba operando la consola, la CPU permanecía ociosa. Recuerde que, en los primeros días, no había muchas computadoras y eran muy costosas (costaban millones de dólares). Además, estaban los costos de operación de electricidad, enfriamiento, programadores, y demás. Por tanto, el tiempo de computador era extremadamente valioso, y los dueños querían que sus computadores se usaran lo más posible. Se requería un grado de utilización elevado para que sus inversiones fueran rentables.
La solución tuvo dos aspectos. Primero, se contrató un operador de computador profesional. El programador ya no operaba la máquina. Tan pronto como terminaba un trabajo, el operador podía iniciar el siguiente. Puesto que el operador tenía más experiencia con el montaje de cintas que un programador, el tiempo de preparación se redujo. El usuario proporcionaba las tarjetas o cintas necesarias, así como una descripción corta de cómo debía ejecutarse el trabajo. Desde luego, el operador no podía depurar un programa incorrecto en la consola, porque no entendía el programa.
En caso de ocurrir un error, se producía un vuelco de la memoria y los registros, y el programador tenía que depurar su programa basándose en ese vuelco.
El vuelco de memoria y registros permitía al operador continuar de inmediato con el siguiente trabajo, pero dejaba al programador con un problema de depuración mucho más complejo.
El segundo ahorro de tiempo considerable implicó la reducción del tiempo de preparación.
Los trabajos con necesidades similares se agrupaban en lotes y se ejecutaban juntos en el computador. Por ejemplo, supongamos que el operador recibía un trabajo en FORTRAN, uno en COBOL y otro en FORTRAN. Si los ejecutaba en ese orden, tendría que preparar el sistema para FORTRAN (cargar las cintas del compilador, etc.), luego prepararlo para COBOL y luego prepararlo para FORTRAN otra vez. En cambio, si el operador ejecutaba los dos programas FORTRAN como un lote, sólo tenía que preparar el sistema una vez para FORTRAN, y ahorraba tiempo.
No obstante, seguía habiendo problemas. Por ejemplo, cuando un trabajo paraba, el operador tenía que percatarse de ello observando la consola, determinar por qué había parado el programa (terminación normal o anormal), obtener un vuelco si era necesario y luego cargar el dispositivo apropiado con el siguiente trabajo y reiniciar el computador. Durante esta transición de un trabajo al siguiente, la CPU permanecía ociosa.

A fin de eliminar este desperdicio de tiempo, se desarrolló el secuenciado automático de trabajos. Con esta técnica se crearon los primeros sistemas operativos rudimentarios. Lo que se buscaba era un procedimiento para transferir el control automáticamente de un trabajo al siguiente. Se creó un programa pequeño, llamado monitor residente[1], para este propósito. El monitor residente siempre está (reside en) la memoria.
Cuando el computador se encendía, se invocaba el monitor residente, el cual transfería el control a un programa. Cuando el programa terminaba, devolvía el control al monitor residente, que entonces continuaba con el siguiente programa.
Así, el monitor residente mantenía la continuidad de un programa a otro y de un trabajo a otro en secuencia.
Pero, ¿cómo sabría el monitor residente cuál programa ejecutar? Antes, se proporcionaba al operador una descripción corta de qué programas se debían ejecutar con qué datos. Para poder proporcionar esta información directamente al monitor, se introdujeron las tarjetas de control. La idea es sencilla. Además de los programas y datos de un trabajo, el programador incluía tarjetas especiales (de control) que contenían directrices para el monitor residente que indicaban cuál programa se debía ejecutar. Por ejemplo, un programa de usuario normal podría requerir la ejecución de uno de tres programas: el compilador de FORTRAN (FTN), el ensamblador
(ASM) o el programa del usuario (RUN). Podríamos usar una tarjeta de control individual para cada uno de ellos:
$FTN – Ejecutar el compilador de FORTRAN.
$ASM – Ejecutar el ensamblador.
$RUN – Ejecutar el programa de usuario.
Estas tarjetas le dicen al monitor residente cuáles programas debe ejecutar.
Podemos usar dos tarjetas de control adicionales para definir las fronteras de cada trabajo:
$JOB – Primera tarjeta de un trabajo.
$END – Última tarjeta de un trabajo.
Estas dos tarjetas podrían ser útiles para llevar la contabilidad de los recursos de la máquina empleados por el programador. Se pueden usar parámetros para definir el nombre del trabajo, el número de la cuenta a la que se harán los cargos, etc. Se pueden definir otras tarjetas de control para otras funciones, como pedir al operador que monte o desmonte una cinta.
Un problema de las tarjetas de control es cómo distinguirlas de las tarjetas de datos o de programa. La solución usual es identificarlas con un carácter o patrón especial en la tarjeta. Varios sistemas usaban el carácter de dólar ($) en la primera columna para identificar una tarjeta de control. Otros usaban un código distinto. El Job Control Language (Lenguaje de Control de Trabajos) de IBM usaba diagonales (//) en las dos primeras columnas Así, un monitor residente tiene varias partes identificables. Una es el intérprete de tarjetas de control que se encarga de leer y ejecutar las instrucciones de las tarjetas en el punto de ejecución. Intermitentemente, el intérprete de tarjetas de control invoca un cargador para que cargue programas de sistemas y de aplicación en la memoria.
Por tanto, el monitor residente debe incluir un cargador. Tanto el intérprete de tarjetas de control como el cargador necesitan efectuar E/S, por lo que el monitor residente cuenta con un juego de drivers para los dispositivos de E / S del sistema. A menudo, los programas de sistema y de aplicación se enlazan con estos mismos drivers de dispositivos para lograr la continuidad de su operación y ahorrar espacio de memoria y tiempo de programación.
Estos sistemas por lotes funcionan muy bien. El monitor residente se encarga del secuenciado automático de los trabajos según las indicaciones de las tarjetas de control.
Cuando una tarjeta de control indica que debe ejecutarse un programa, el monitor carga ese programa en la memoria y le transfiere el control. Una vez que el programa termina, transfiere el control de vuelta al monitor, que lee la siguiente tarjeta de control, carga el programa apropiado, y así sucesivamente. Este ciclo se repite hasta que se han interpretado todas las tarjetas de control del trabajo. Luego, el monitor continúa automáticamente con el siguiente trabajo.
El cambio a los sistemas por lotes con secuenciado automático de trabajos se realizó con el fin de mejorar el desempeño. El problema, sencillamente, es que los seres humanos son extremadamente lentos (en comparación con el computador, por supuesto).
Por consiguiente, es deseable sustituir la operación humana por software de sistema operativo. El secuenciado automático de trabajos elimina la necesidad del tiempo de preparación y el secuenciado de trabajos por parte de seres humanos.
Pero incluso con esta forma de hacer las cosas la CPU con frecuencia está ociosa. El problema es la rapidez de los dispositivos de E /S mecánicos, que intrínsecamente son más lentos que los dispositivos electrónicos. Aun una CPU lenta opera en el ámbito de microsegundos, y ejecuta miles de instrucciones cada segundo. Un lector de tarjetas rápido, en cambio, podría leer 1200 tarjetas por minuto (17 tarjetas por segundo). Así, la diferencia de velocidad entre la CPU y sus dispositivos de E/S podría ser de tres órdenes de magnitud o más. Con el tiempo, claro, las mejoras en la tecnología produjeron dispositivos de E/S más rápidos.
Desafortunadamente, las velocidades de CPU aumentaron a un ritmo todavía más acelerado, de modo que el problema no sólo no se resolvió, sino que se exacerbó.
Una solución común fue sustituir los lectores de cinta (dispositivos de entrada) e impresoras de líneas (dispositivos de salida), que eran lentos, por unidades de cinta magnética. La mayor parte de los sistemas de computación de fines de los años cincuenta y principios de los sesenta eran sistemas por lotes que leían de lectores de tarjetas y escribían en impresoras de líneas o perforadoras de tarjetas. Sin embargo, en vez de hacer que la CPU leyera directamente de las tarjetas, éstas se copiaban primero en una cinta magnética empleando un dispositivo aparte. Una vez que la cinta estaba suficientemente llena, se desmontaba y se llevaba al computador.
Cuando se necesitaba una tarjeta para introducirla al programa, se leía el registro equivalente de la cinta. De forma similar, las salidas se escribían en la cinta y el contenido de la cinta se imprimía posteriormente. Los lectores de tarjetas e impresoras de líneas se operaban fuera de línea, no con el computador principal.
La ventaja principal del funcionamiento fuera de línea era que el computador principal ya no estaba limitado por la rapidez de los lectores de tarjetas e impresoras de líneas, sino sólo por la de las unidades de cinta magnética, mucho más rápidas. Esta técnica de usar cinta magnética para toda la E/S podía aplicarse a cualquier equipo similar (lectores de tarjetas, perforadoras de tarjetas, graficadores, cinta de papel, impresoras).
La verdadera utilidad de la operación fuera de línea radica en la posibilidad de usar múltiples sistemas de lector a cinta y de cinta a impresora para una misma CPU. Si la CPU puede procesar las entradas a una velocidad dos veces mayor que aquella conla que el lector puede leer tarjetas, dos lectores trabajando simultáneamente pueden producir suficiente cinta como para mantener ocupada a la CPU. Por otra parte, el retardo para llevar a cabo la ejecución de un trabajo en particular ha aumentado, porque primero debe leerse y grabarse en la cinta, luego habrá un retardo hasta que se hayan grabado en la cinta suficientes trabajos adicionales para “llenarla”. Entonces, la cinta debe rebobinarse, desmontarse, llevarse manualmente a la CPU y montarse en una unidad de cinta desocupada. Desde luego, este proceso es aceptable en el caso de los sistemas por lotes. Pueden formarse lotes de muchos trabajos similares en una cinta antes de llevarlos al computador.
Aunque la preparación de trabajos fuera de línea continuó durante cierto tiempo, pronto fue reemplazada en la mayor parte de los sistemas. Los sistemas de disco comenzaron a proliferar y mejoraron considerablemente la operación fuera de línea.
El problema de los sistemas de cinta era que el lector de tarjetas no podía grabar en un extremo de la cinta mientras la CPU leía del otro. Era preciso escribir toda la cinta antes de rebobinarla y leerla, porque las cintas son por su naturaleza dispositivos de acceso secuencial. Los sistemas de disco eliminaron este problema porque son dispositivos de acceso aleatorio. Dado que la cabeza se mueve de un área del disco a otra, el disco puede conmutar rápidamente del área del disco que el lector de tarjetas está usando para almacenar nuevas tarjetas, a la posición que la CPU necesita para leer la “siguiente” tarjeta.
En un sistema de disco, las tarjetas se leen directamente del lector de tarjetas al disco. La posición de las imágenes de tarjetas se registra en una tabla mantenida por el sistema operativo. Cuando se ejecuta un trabajo, el sistema operativo satisface sus solicitudes de entradas del lector de tarjetas leyendo del disco. Así mismo, cuando el trabajo solicita que la impresora escriba una línea, esa línea se copia en un buffer del sistema y se escribe en el disco. Una vez que ha terminado el trabajo, las salidas se imprimen. Esta forma de procesamiento se denomina spooling. Con spooling, el disco básicamente se usa como un buffer grande para leer con la mayor anticipación posible de los dispositivos de entrada y almacenar los archivos de salida hasta que los dispositivos de salida estén listos para aceptarlos.
El spooling conduce de manera natural a la multiprogramación, que es la base de todos los sistemas operativos modernos.

[1] Diferente de nuestra concepción actual de monitor, refiriéndonos a la pantalla del pc.

pcweb google+

Linux 1999

Vamos a darnos un recorrido por la historia del Linux y de esa manera intentaremos entender porqué puede ser efectivamente una alternativa rentable y eficiente al sistema operativo de Microsoft.

A principios de la década de los noventa, exactamente el 5 de octubre de 1991, un estudiante de informática finlandés de la universidad de Helsinki, llamado Linus Torvalds, aficionado al Minix (un sistema Unix de bajo costo diseñado para la educación en ciencias de la computación), comenzó un pequeño proyecto en sus ratos libres. Trataba de desarrollar un sistema operativo que excediese los límites del Minix, un pequeño sistema operativo basado en el Unix [1] desarrollado por Andy Tanenbaum para la docencia, que no necesitaba grandes requerimientos de hardware para su funcionamiento, ya que le bastaba con un microprocesador 8086 y se almacenaba en un solo disquete.

Desarrollado bajo licencia GNU.
La primera versión oficial de Linux, vio la luz en octubre de 1991, en concreto, la versión 0.02.
El proyecto fue poco a poco creciendo. A través de Internet tras sucesivas revisiones y ayudado por un amplio grupo de programadores, consiguieron hacer las modificaciones justas para depurar el kernel[2] de este sistema operativo, hasta que en 1994 se presentó en sociedad, la versión 1.0 de Linux.
Al 25 de enero de 1999, la versión más estable de Linux era la 2.2 y se siguen añadiendo continuamente mejoras a este sistema operativo.
El Linux se desarrolla bajo la licencia GNU General Public License. Esto significa que los programas que adoptan esta licencia son gratuitos y se distribuyen junto a los códigos fuente de las aplicaciones incluidas. También se pueden copiar y distribuir libremente. El usuario puede utilizar el código fuente de estos programas y adaptarlos o modificarlos según sus necesidades para crear sus propios programas. Estos programas, de forma automática, adoptan la licencia GNU, pasan a ser programas gratuitos y permiten al usuario, además, distribuirlos, siempre y cuando facilite el código fuente de los mismos.

¿Qué es el Linux?
Es un sistema operativo compatible con el Unix, totalmente gratuito y de libre distribución.
Junto al sistema operativo se suministran sus códigos fuente y una serie de utilidades y compiladores que permiten adaptar el sistema a las necesidades y requerimientos de cada usuario.
Las características principales de Linux son:
•Gratuito: todos los usuarios disponen del código fuente tanto del núcleo como de los drivers, de las herramientas de desarrollo y de las aplicaciones.

•Multiusuario: varios usuarios pueden utilizar el mismo ordenador al mismo tiempo. Aunque a alguno de nuestros lectores les parezca increíble, el hecho es que en un mismo equipo, se puede estar trabajando a la vez, pero esto sólo se suele utilizar en entornos de trabajo muy grandes, aquellos en que los usuarios acceden a los servicios de un mismo ordenador al mismo tiempo.
•Multitarea preventiva: la posibilidad de ejecutar varios programas o procesos al mismo tiempo, siempre y cuando las características del equipo lo permitan.
•Multiprocesador: soporte para equipos que integren más de un procesador.
•Memoria protegida entre procesos: evita que alguno de los procesos pueda colgar la máquina, como sucede en otros sistemas operativos.
•Multiplataforma: el sistema operativo Linux se puede ejecutar con cualquier microprocesador de la gama x86 (Intel, AMD y Cyrix entre otros) desde el obsoleto 386 hasta el novedoso Pentium Core Duo de la casa Intel y en otros sistemas como las estaciones Alpha, los ordenadores Amiga, los equipos con microprocesadores PowerPC y SPARC, entre otros muchos tipos de plataformas.
•Convivencia con otros sistemas operativos instalados en la misma máquina: es decir, puede, por ejemplo, tener instalado en su ordenador Windows xp y Linux, sin que afecte al funcionamiento de cualquiera de los dos sistemas operativos.
•Como sistema operativo de red se comporta a la perfección ya que permite la conexión con otros equipos y sistemas, ya sea a través de una Intranet o mediante el acceso a Internet (Ver Arpanet e Internet).

¿Dónde se utiliza Linux?
Linux se utiliza en muchos sistemas comerciales que requieren de una confianza extrema, como servicios ininterrumpidos, sistemas en tiempo real, servidores de bases de datos, servidores web así como en entornos de desarrollo, gracias a la infinidad de herramientas que se distribuyen con él, y puede ser utilizado en equipos domésticos como cualquier otro sistema operativo.En cuanto a los rumores que siempre circulan sobre la escasez de software que presenta y la pésima calidad del que hay, debemos decir que hay infinidad de programas gratuitos de excelente calidad, que desde hace meses está funcionando perfectamente bajo la plataforma Linux.
[1] Hace 40 años, exactamente en el año 1969, en los Laboratorios Bell de AT&T, Ken Thompson y Dennis Ritchie (uno de los creadores del lenguaje C) comenzaron el desarrollo de este pequeño sistema operativo.
Poco a poco se fue haciendo hueco y varias universidades americanas lo adoptaron y adaptaron para su utilización.
Gracias a la posibilidad de modificación, rápidamente se fue extendiendo y se crearon varias versiones del mismo, tanto en centros docentes como fabricantes. Por la década de los noventa se podían encontrar el AIX de IBM, el BSD de la Universidad de Berkeley, el DG/UX de Data General, el HP/UX de Hewlett- Packard, el Solaris y el SunOS de Sun Microsystems, el System V de AT&T, el Ultrix de Digital, el UnixWare de SantaCruz Operation y el Xenix de Microsoft entre otros.
En aquella época, los ordenadores no estaban al alcance de cualquiera, éstos debían ser utilizados por múltiples usuarios, razón por lo que nació el concepto de multiusuario.
Los usuarios accedían a un ordenador central mediante terminales tontos.
Al haber tantos usuarios que acceden a una misma máquina, éstos se clasifican y organizan en grupos de usuarios, ya que no todos necesitan acceder a los mismos datos, o no deben acceder a ciertos datos confidenciales.
Para la administración de usuarios y del sistema por defecto, hay un usuario llamado “root”, también conocido como SysOp o administrador del sistema.
Para poder acceder a un sistema Unix, cada usuario debe tener una cuenta personal en el ordenador, a la que puede acceder mediante su nombre de usuario y una clave. Al identificar el sistema al usuario, le asigna un directorio de trabajo y unos permisos para poder leer, escribir o ejecutar programas. Tras esto, el usuario tiene acceso a la shell, que es la interfaz de trabajo del usuario con Unix, es como una línea de comando parecida al prompt del sistema operativo DOS y desde la cuál, el usuario puede empezar a trabajar mediante los tradicionales comandos de este sistema operativo.
Uno de los principales inconvenientes que hasta hace unos años podía tener el Unix, es que era bastante tedioso el trabajo en modo texto: mediante el tecleo de las órdenes por parte del usuario.
Pero, en los noventa, Unix tiene otro cara, mucho más bonita y aparente, ya que desde hace unos años, dispone de una interfaz gráfica llamada X-Window, totalmente configurable y personalizable, que permite utilizar todos los comandos y programas de Unix de una forma gráfica, parecido al funcionamiento de Windows.
[2] Es la parte central del sistema operativo de un computador, el núcleo que provee de los servicios básicos a los otros elementos que constituyen el sistema operativo. Es decir, se encarga que el software y el Hardware de la computadora puedan trabajar juntos. Además se encarga de administrar la memoria del computador.

pcweb google+

Binac

La computadora BINAC (Binary Automatic Computer) fue el primer computador electrónico digital para uso general del mundo.

La gente detrás de la invención:

John Presper Eckert (1919-1995), un ingeniero eléctrico; John W. Mauchly (1907-1980), un físico ;John von Neumann (1903-1957), un húngaro norteamericano, de profesión, matemático y, Alan Mathison Turing (1912-1954), un matemático Inglés.

Conocedores del origen y desarrollo de los sistemas de cómputo (Informatica Siglo XIX,Informatica 1939) brinquemos temporalmente hasta la segunda guerra mundial que es cuando hay urgencia de cálculos balísticos y de artillería en general por parte del ejército norteamericano. Esta presión condujo al desarrollo de ENIAC, que si bien fue un gran adelanto, tenía como inconveniente, la gran dificultad de programación de la misma. Siempre que los operadores necesitaban transmitirle a la máquina instruciones para variar los cálculos, debian manipular un amplio número de botones, interruptores, cables y ajustes específicos de hardware. Si tan solo las instrucciones se pudieran almacenar en la memoria de la computadora, seguramente se ganaría facilidad de uso y eficiencia de la misma.
El concepto de Turing.

La idea de almacenar un programa apareció por primera vez en una publicación del matemático inglés Alan Mathison Turing en 1937. en dicho documento, Turing describe una hipotética máquina de diseño simple para resolver un rango básico de problemas lógicos y matemáticos.Lo más significativo de esta propuesta consistía en una cinta actuando como dispositivo de memoria, conteniendo las instrucciones y la forma de procesarlas.
Lo cierto de esta idea, es que se tuvo en cuenta para el diseño de la EDVAC, una computadora que sucedería al ENIAC y que por supuesto fue financiada también por el ejército norteamericano. En ese proyecto también participó John Von Newman.La EDVAC habría de ser la primera computadora en incorporar el concepto de programa almacenado.
Eckert y Mauchly rápidamente abandonaron el proyecto EDVAC para involucrarse en otro proyecto, el ordenador automático universal,”The Universal Automatic Computer” (UNIVAC), hacia el cual también canalizaron el concepto de programa almacenado. Pero la construcción de la Univac requirió ingentes recursos y los dineros proporcionados por la empresa que los contrató fueron insuficientes. Por esta razón los señores Eckert y Mauchly debieron ejecutar otros proyectos más pequeños para incrementar los fondos. El 9 de octubre de 1947 firmaron un contrato con la Northrop corporation Of Hawthorne, California para producir un relativamente pequeño ordenador para ser empleado en guiar al misil ultrasecreto llamado Snark y que estaba construyendo la fuerza aérea norteamericana. Esta computadora, la BINAC convirtió a Eckert y a Mauchly en los primeros norteamericanos en completar y comercializar un computador de programa almacenado en los Estados Unidos.
Cuando hablo de ser un relativamente pequeño ordenador me refiero a que si el Eniac manejaba 18.000 tubos al vacío, el Binac usaba tan solo 1.400. Tenía así mismo dos unidades centrales de procesamiento, dos unidades de memoria, dos fuentes de alimentación; usaba una consola de entrada que empleaba o bien un teclado de máquina de escribir o, o bien una cinta magnética codificada (primer vez que se usaba como dispositivo de entrada). Era en realidad la Binac dos computadoras que se verificaban la una a la otra par evitar errores (todo un brillante antecesor de los Pc de doble núcleo actuales).

El BINAC empezó a funcionar oficialmente en agosto de 1949.

pcweb google+

Historia del basic

Hagamos una breve historia del basic, ese lenguaje de programación tan maravilloso, que a muchos nos ha servido para entusiasmarnos en las lides de la programación.
Sin más introitos, entremos en materia. Empecemos diciendo que el BASIC fue un invento revolucionario, por cuanto fue el primer sistema interactivo y de fácil programación de computadoras, accesible al público no especializado. ¿Quienes estuvieron detrás de esta invención? John G. Kemeny (1926-1992), presidente del departamento de matemáticas de Dartmouth; Thomas E. Kurtz (1928-), director de la Kiewit, el centro de computación de Dartmouth; y, Bill Gates (1955-), el fundador de Microsoft.

La evolución de la programación.

Los primeros ordenadores digitales se desarrollaron durante la segunda guerra mundial (1929-1945), para acelerar los complejos cálculos necesarios en balística, criptografía y otras aplicaciones militares. La tecnología de la computación se desarrolló rápidamente y para las décadas de los 50 y 60 habían sistemas informáticos por todo el mundo. Pero esos sistemas implantados eran grandes y costosos, requiriendo personal altamente especializado para su operación. Los cálculos de los primeros ordenadores se determinaban únicamente por medio de circuitos eléctricos.En la década de 1940, el matemático norteamericano John Von Newman y otros pioneros, empiezan a gestar la idea de la necesidad de almacenar las instrucciones en un programa, de tal forma que los cambios en los cálculos pudieran realizarse sin tocar el cableado de circuitos.Los programas fueron escritos en lenguaje de máquina y eran unas largas listas de ceros y unos, correspondiendo a apagado (off) y a encendido (on) de los circuitos.
Durante 1950 se introduce el Assembler (lenguaje ensamblador), que introdujo nombres cortos, usados comúnmente en las secuencias de instrucciones y que reemplazó a la secuencia de ceros y unos. Terminando 1950 llegan los lenguajes de alto nivel, como el FORTRAN, el COBOL y el ALGOL, que usaban palabras en inglés para dar instrucciones a las computadoras. No obstante e limitante de estos lenguajes, era su grado de dificultad, la exigencia perentoria de un alto nivel de conocimiento de los equipos informáticos y, que fueron diseñados para ser usados por ingenieros, científicos y técnicos altamente cualificados.
Desarrollo del BASIC.

John G. Kemeny era presidente del departamento de matematicas del Dartmouth College, en Hanover, New Hampsire. En 1962 Thomas E. Kurtz, director de informática de Datmouth, propuso a Kemeny la implementación de un sistema informático bueno y sencillo, allí. Ambos personajes estaban convencidos de la necesidad de acercar a los estudiantes de otras ramas del saber a los computadores y a sus aplicaciones (y ya habían probado sin mayor éxito con otros lenguajes simples). Si bien los comandos en inglés del FORTRAN y el ALGOL, eran una enorme mejora sobre la crípticas instrucciones el lenguaje ensamblador, seguía siendo complicado para los novatos. Necesitaban un nuevo lenguaje de programación, accesible a los principiantes pero lo suficientemente flexible para diferentes aplicaciones y rápido, que arrojara resultados entre 5-10 segundos más tarde después de dada la instrucción al computador.
El lenguaje desarrollado fue conocido como BASIC. Fue hecho para un sistema operativo de tiempo compartido, de tal forma que permitía acceso a múltiples usuarios al tiempo.
El lenguaje original constaba de 14 comandos o declaraciones. Cada linea del programa BASIC era precedida por un número.Los números de línea hacían referencia al control de flujo tal como: “if x= 9 then go to 200″. Pero los números de línea también se emplearon como una edición de referencia. Me explico. Si la linea 30 de un programa contiene un error, el programador puede hacer la corrección necesaria, reescribiendo la linea 30.
Para el otoño de 1964 ya se enseñaba BASIC en Dartmouth. Luego de dos horas de exhaustiva charla sobre BASIC, los estudiantes empezaban a programar. A junio de 1968 , más del 80% de estudiantes de pregrado en Dartmouth eran capaces de escribir un programa.
Kemeny y Kurtz,y más tarde otros bajo su supervisión, escribieron otras versiones de BASIC más potentes que incluían soporte gráfico en terminales de videos , así como la programación estructurada. No obstante los creadores de BASIC siempre trataron de mantener su diseño primigenio.
Como consecuencia de lo anteriormente expuesto, Kemeny y Kurtz alentaron el uso de BASIC en otras instituciones, poniendo este nuevo lenguaje a disposición pública.
En los 70, con la llegada del chip microprocesador, se revolucionó la tecnología de la computación. Para 1975 el kit de computador personal se vendía a los aficionados en 1000 dólares, siendo una de los más promocionados, el Altair. Ese mismo año, un estudiante de derecho en Harvard, William H. Gates (Bill Gates para la gente común y corriente), fue persuadido por su amigo de infancia y compañero de clase, Paul Allen a abandonar sus estudios (así es que necesita uno amigos que lo estimulen a correr riesgos calculados con opción de futuro) y a desarrollar en cambio una versión de BASIC que corriera en Altair Un ordenador personal, luego habia que dejar atras lo de un sistema operativo multi-usuario). Gates y Allen formarían Microsoft Corporation para vender su intérprete BASIC, que fue diseñado para encajar a la perfección en la minúscula memoria del altair. Una gran parte de los computadores adquiridos para el hogar poseían una versión semejante del BASIC de Microsoft.
Leer también Basic 880, lenguajes de programación

pcweb google+

Ada Lovelace

Ada Lovelace (Augusta Ada King, condesa de Lovelace), fue la pionera de los lenguajes de programación, al darse a la tarea de fabricar un algoritmo para la máquina analítica de Charles Babbage.

Ada Lovelace nació el 10 de diciembre de 1815, fruto de la relación entre Annabella Milbanke (baronesa Wentworth) [1]y el poeta romántico, Lord Byron siendo originalmente su nombre Augusta Ada Byron, Lady Byron. Sus padres se separaron cuando ella tenía dos meses y Ada se quedó con su madre y nunca llegó a conocer personalmente a su padre (quien erraba por el mundo, muriendo ocho años después), si bien le escribía asiduamente.
Desde pequeña Ada Lovelace sentía fuertes dolores de cabeza que nublaban su visión.En junio de 1829 se quedó paralítica luego de un ataque de sarampión.Solo hasta 1831 puede caminar con muletas.
Afortunadamente para Ada, Annabella su madre tenía una posición acomodada y llegada la hora la puso a estudiar con tutores privados, profundizando en matemáticas y lógica con el profesor Augustus de Morgan. Pero la experiencia cumbre de su estudio fue cuando se interesó en el trabajo de Charles Babbage y su máquina analítica (1833). Impresionado por el talento de Ada, quien entendió sus ideas al instante. Babbage la reclutó como ayudante, pero la boda de ella a los 20 años de edad con William King, conde de Lovelace, y el nacimiento de sus tres hijos (Byron, Anne Isabella,Ralph Gordon), la apartaron unos años de la investigación.

Luego reanudaron la tarea en común y es entonces, en 1843, cuando Ada Lovelace traduce y comenta un artículo del matemático e ingeniero italiano Luigi Federico Menabrea,Notions sur la machine analytique de Charles Babbage. Ada Lovelace detalló y elaboró comentarios o anotaciones (más largos que el mismo libro), como la descripción de un plan describiendo los pasos para calcular los valores de los números de Bernouilli usando la máquina analítica. Sí, así como lo leen. Ada Lovelace inventó una notación para describir algoritmos; es la creadora del primer lenguaje de programación. Tuvo que firmar sus trabajos como A.A.L. para que no la censuraran por ser mujer. Babbage la llamaba “la encantadora de números”
A los 36 años enfermó de cáncer de útero y hemorragia y fue tratada con opiáceos e hipnosis, pero nunca se recuperó y murió un año después, siendo sepultada junto a su padre en la iglesia de Santa María Magdalena en Hucknall, Nottingham.
En 1979 el Departamento de Defensa de Estados Unidos desarrolló un lenguaje de programación que se llamó “ADA” en su honor. Desde 1998 la British Computer Society concede una medalla en su nombre. Hay una película respecto a su vida que bien vale la pena mirar, se llama Conceiving Ada, un filme de 1997 escrito y dirigida por Lynn Hershman Leeson; Tilda Swinton representa a la condesa de Lovelace. Pero hay así mismo una novela de ciencia ficción interesante, al respecto, se llama The Difference Engine, escrita por William Gibson y Bruce Sterling. Hay quien le rinde tributo anual el 24 de marzo pero al parecer el día fijado oficialmente es el 7 de octubre.

Ver también:Informática siglo 19,Lenguajes de Programación
[1]Byron la llamaba “princesa del paralelogramo” por su afición a la geometría y a las matemáticas.

pcweb google+

Windows xp y 2000

En la historia de los sistemas operativos Windows xp y Windows 2000, marcaron la pauta de los ordenadores personales de muchas personas.
Tratando de persuadir a muchas personas escépticas de pasarse a Windows Xp, en el año de 1991 se decía:
Que el Windows Xp es 34 % más rápido que el Windows 2000 en el tiempo de inicio del sistema.
Que Windows Xp es 21% más rápido que el Windows 2000 en la reanudación desde “Standby”[1], por la característica del primero de hacer superposición de inicio de herramientas y maximización del paralelismo.
Que el Windows Xp es 9% más rápido que el Windows 2000 en la reanudación desde “hibernar” debido a la optimización en la compresión del algoritmo y superposición de la compresión de transferencia del DMA al disco.
Alguien me puede decir, con honestidad si ¿Windows Vista aguanta este tipo de comparaciones de velocidad con el querido y estable Windows Xp?
[1] En Standby la memoria se almacena en RAM volátil mientras que en Hibernar la memoria está comprimida en el disco duro por lo cual se puede apagar totalmente el equipo y la información se mantendrá.

pcweb google+

Apple ii

Me fascinan las computadoras apple ii y todo su entorno, tanto como me seducen los mac y la evolución propia de esa empresa.
Esta es la historia de la computadora apple II.
El ordenador apple II fue el primer computador personal pre ensamblado disponible en el comercio, contribuyendo notoriamente a trasladar el ámbito de los computadores del trabajo al hogar.
Tras de la invención de la computadora apple II estuvieron: Stephen Wozniak (1950 -), cofundador de Apple y diseñador de la computadora Apple II; Steven Jobs (1955-2011), cofundador tambien de Apple computers, Regis Mckenna (1939-), propietario de una empresa de publicidad y relaciones publicas en Silicon Valley que manejó la cuenta de Apple computers; Chris Espinosa (1961-), estudiante de secundaria que escribió el programa en BASIC , que se incluía con el Apple II; Randy Wigginton (1960-) otro estudiante de secundaria y programador de software de Apple.
¿Como se invento el Apple II?
En la década de los 60 nadie daba un peso por la utilidad de un pequeño computador para la persona promedio. Pero de la inventiva y la recursividad de dos amigos de Silicon Valley (el área de alta tecnologia ubicado entre San Francisco y San Jose, en Estados Unidos), se inicia la revolución del computador personal. Ambos, Steven Jobs y Stephen Wozniak habian asistido a la Hig School en Los Altos, California, desarrollando fuertes inclinaciones tecnológicas. En 1971 Wozniak construyó su primera computadora hecha de piezas de repuesto.Luego involucró a Jobs, quien a su vez , siendo aficionado a la electrónica, tenia contactos con William Hewlett (cofundador de Hewlett Packard) a quien compraba partes. La primera realización conjunta de Jobs y Wozniak fueron las famosas “blue boxes” (cajas azules), un dispositivo ilegal que permitía hacer llamadas de larga distancia sin pagar ni un dolar.
Despues de asistir a la Universidad, los dos obtuvieron trabajos en el campo de la electrónica. Wozniak obtuvo empleo en Hewlett Packard, diseñando calculadoras; Jobs a su vez entró a la nómina de Atari, la compañía de video. La amistad de estos dos curiosos personajes volvió a dar sus frutos, cuando a iniciativa de Jobs, Wozniak diseñó el juego “Breakout” para Atari, trabajo que les fue pagado en 700 dólares.
En 1975, fue presentado el primer ordenador personal de Altair, en forma de Kit, por MITS (Micro Instrumentation and Telemetry Systems. Poco después nació el primer club de la computadora hecha en casa, que se reunia en Menlo Park, cerca a la Universidad de Stanford. wozniak y Jobs comenzaron a asistir regularmente a las reuniones de dicho club, examinando exhaustivamente el diseño de dicho computador personal. Wozniak creyó que el modelo se podía mejorar; pocas semanas después produjo una tarjeta de circuitos impresos y las interfases que las interconectaban a un teclado y un monitor de video. Mostró el diseño en una reunión del club y repartió copias del diseño.
Este nuevo computador se denominó “Apple”, Jobs visualizó en esta gesta una oportunidad única de negocio. Propuso entonces a Wozniak una sociedad para desarrollar computadoras personales. Jobs vendió su automóvil y Wozniak a su vez vendió sus dos calculadoras de Hewlett Packard. Con el dinero que juntaron adquirieron placas de circuitos impresos ya hechas. Pero el “despegue” de la compañía ocurrió cuando Paul Terrel, un minorista (retailer), vivamente impresionado por la calidad del computador, ordenó 50 “Apple” totalmente ensamblados. en 30 días lograron terminar los equipos, que fueron vendidos a muy buenos precios.
Llegado el verano de 1976, Wozniak seguía trabajando en mejorar los equipos “Apple”. Esta computadora se caracterizaba, entre otras cosas, por disponer de un teclado, una fuente de poder interna, un lenguaje de programación novedoso llamado “BASIC”, conexiones para añadir impresoras y otros dispositivos, así como por generar gráficos en color.El dispositivo de salida era una pantalla de un televisor y el precio de la máquina no superaba los 120 dólares.
Se trataba de vender y promocionar entonces a la nueva compañía. Ahí aparece Regis Mckenna, quien inicialmente rechazó la oferta de manejar la cuenta publicitaria de estos emprendedores. Luego cedió a la insistencia de Jobs. La primera contribución de la agencia publicitaria a la compañía, fue el logo vistoso que conocemos y un aviso a color en la revista Playboy.

Para febrero de 1977 se abre la primera oficina de Apple computer, en Cupertino, California. Al proyecto se vincularon dos apasionados del BASIC quienes hicieron parte también del club del computador hecho en casa: Randi Wigginton y Chris Espinosa. Ellos se encargaron de optimizar el lenguaje de programación del nuevo ordenador, en el cual trabajaban. A marchas forzadas pudieron culminarlo a tiempo, justo para la primera feria informática de la Costa Oeste, en Abril de 1977. El nombre escogido para este nuevo modelo fue “Apple II“. Dentro de las innovaciones presentadas estaban: la motherboard era mucho más simple y elegante que la de cualquier otro equipo previo; la facilidad para conectar este computador personal a la pantalla de un televisor lo hizo a su vez muy atractivo para los consumidores.
En consecuencia, la introducción de este ordenador, inició una nueva ola de computadores personales destinadas al hogar y a las pequeñas empresas. En pocos meses, luego de este lanzamiente de Jobs y Wozniak, por ejemplo, Commodore presentó su computadora PET y Tandy Corporation/radio hacia lo propio con su modelo TRS-80.
Apple computers siguió innovando las funcionalidades de sus equipos y llegando paulatinamente a las tiendas especializadas.
En diciembre de 1977 Wozniak empezó a trabajar en la creación de un disco flexible (de memoria auxiliar) o Disquete para el Apple II. Este mecanismos ya lo usaban los computadores grandes de IBM desde 1970 y demostraron ser más rápidos y confiables que los dispositivos de almacenamiento en cinta. En junio de 1978 fue terminado el drive que implementaba el disquette para su ordenador, permitiendo el desarrollo de software de mayor alcance para el mismo.
Las estadísticas de venta mencionan que para 1980 Apple Computers vendió 130.000 Apple II. Ese año la compañía se abrió al público. Tanto Jobs como Wozniak se volvieron ricos. Tres años más tarde, Apple computers se convirtió en la más nueva empresa industrial en hacer parte de la lista de las 500 de Fortune que reseñaba las compañías más grandes.

Ver también: pc 1972-1981 , pc 1982-1999 , arpanet internet

pcweb google+

Arpanet Internet


Arpanet Internet, una etapa en la historia de la web para todos los cibernautas.

En una serie de memorias escritas en 1962 por J.C.R. Licklider (MIT), aparece por primera vez la idea de comunicación a través de un sistema de redes bajo el concepto de “Red Galáctica”. Licklider vislumbró la posibilidad de una conexión a nivel global que permitiese un rápido acceso a la información y a programas desde cualquier parte del mundo. Licklider era el primer director de la Oficina de Técnicas de Información del Arpa (Advance Research Projects Agency) creada a finales de 1950. Poco después convenció a Ivan Sutherland, Bob Taylor y al investigador del MIT Lawrence G. Roberts de lo importante que era este concepto de la red. Aunque ya en 1961 Leonard Kleinrock (MIT) publicó el primer escrito en el que se presentaba la teoría de la conmutación en paquetes (“packet switching”), que permite que los datos transmitidos a través de una línea viajen en forma de paquetes. Kleinrock convenció a Roberts de la viabilidad teórica de comunicarse utilizando paquetes en vez de circuitos. El otro paso al que había que llegar era encontrar la manera de que dos ordenadores pudieran comunicarse entre sí. Para explorar este terreno, Roberts conectó en 1965 un ordenador TX-2, en Massachussets, a un ordenador Q-32, en California, utilizando una línea telefónica de escasa velocidad, consiguiendo la primera conexión en red de ordenadores separados entre sí por una gran distancia.
En 1966 Roberts se integró en Arpa para poner en marcha su experimento y de esta idea surgió Arpanet. Los componentes principales que se necesitarían para este proyecto serían unos “conmutadores en paquetes” llamados Interface Message Processors (IMP). Se seleccionó el Centro de Investigación de Ucla, donde trabajaba Kleinrock, para establecer el primer nodo de Arpanet.

En septiembre de 1969 BBN (Bolt Beranek and Newman) instaló el primer IMP en UCLA, más tarde se instalaría el segundo en el Instituto de Investigación de Stanford. Un mes después, cuando el Instituto de Investigación de Standford estaba conectado a Arpanet, se envió el primer mensaje desde el laboratorio de Kleinrock al Instituto de Standford.

Posteriormente se añadieron nuevos nodos en la Universidad de Santa Bárbara y en la Universidad de Utah, por tanto a finales de 1969 ya existían cuatro nodos conectados a la misma red: Arpanet. Poco a poco se fueron añadiendo más ordenadores a Arpanet y se continuó trabajando para desarrollar un protocolo de comunicación y otro software para la red. En diciembre de 1970 el grupo llamado Network Working Group (NWG) terminó el protocolo concebido para Arpanet llamado Network Control Protocol (NCP). En octubre de 1972 Bob Kahn organizó una amplia demostración de Arpanet en la Conferencia Internacional de Comunicación entre Ordenadores, fue la primera demostración en público de esta nueva tecnología de redes.

También en 1972 Ray Tomlison, de BBN, escribió el primer programa para enviar y leer mensajes e-mail.
Poco después, Bob Kahn decidió desarrollar una nueva versión del protocolo que permitiese la comunicación entre ordenadores a través de un sistema de redes, este protocolo se llamó Transmission Control Protocol/Internet Protocol (TCP/IP). En la primavera de 1973 Bob Kahn pidió a Vint Cerf que trabajase con él en el diseño detallado del nuevo protocolo. Poco después, Arpa permitió a tres de los nodos existentes (Stanford, BBN y UCL) que implantasen el protocolo TCP/IP (aunque no empezó a implantarse a nivel global hasta el 1 de enero de 1983). Y este fue el comienzo de un largo periodo de experimentos e investigación que llevaría más tarde a desarrollar lo que hoy por hoy conocemos como Internet. Durante los años 80 Arpanet se va extendiendo por todos los Estados Unidos y en 1981 más de 10.000 personas tenían acceso a esta red. Arpanet muere por fin en 1989, dejando paso a la recién nacida Internet.

Ver: pc 1982-1999

pcweb google+