Download 1. HISTORIA DE LA INFORMATICA ¿Qué es la informática
Document related concepts
no text concepts found
Transcript
1. HISTORIA DE LA INFORMATICA ¿Qué es la informática? La definición que propone la Organización de las Naciones Unidas para la Educación, la Ciencia y la Cultura (UNESCO), para la informática es “la ciencia que tiene que ver con los sistemas de procesamiento de información y sus implicaciones económicas, políticas y socioculturales”. El concepto de información es muy reciente y además sumamente sencillo. Fue desarrollado en la década de los 40's por el matemático norteamericano Claude Shannon, para referirse a todo aquello que está presente en un mensaje o señal cuando se establece un proceso de comunicación entre un emisor y un receptor. Procesar información implica el almacenamiento, la organización y, muy importante, la transmisión de la misma. Para ello, en la informática intervienen varias tecnologías; en términos generales, podemos decir que son dos sus pilares: la computación y la comunicación; es decir, en lo que hoy conocemos como informática confluyen muchas de las técnicas y de las máquinas que el hombre ha desarrollado a lo largo de la historia para apoyar y potenciar sus capacidades de memoria, de pensamiento y de comunicación. Sintetizando, la informática es el producto del encuentro de dos líneas tecnológicas: el de las máquinas de comunicar y el de las computadoras. Si bien el término Informática surgió hace poco más de medio siglo, cuando el propio Shannon desarrolló la Teoría de la Información, apostado en los terrenos de la lógica matemática y los albores de la computación moderna. Orígenes de la informática Hace millones de años, el hombre primitivo necesitaba contar cosas, estas cada vez fueron haciéndose más numerosas (rebaños, pertenencias, objetos, etc...), creciendo en cantidad y en número. Un hombre solo, no podía desarrollar el trabajo de contar y se vio forzado a diseñar algún aparato o utensilio para ayudarse en aquella tarea. Además de contar este hombre necesitaba hacer operaciones (tales como qué numero de pieles cambiaba por tal numero de piedrecitas de oro, etc.), para un hombre de aquella época todos aquellos cálculos le resultaban muy tediosos y repetitivos, por lo que fueron apareciendo utensilios para contar y realizar cálculos. El mas antiguo de estos utensilios es el ábaco. El mas antiguo que se conoce se remonta al 3500 a. c.. Constituye el primer dispositivo manual de calculo. Servía para representar números en el sistema decimal y contar, permitiendo la realización de operaciones aritméticas sencillas. Tras el ábaco que ha permanecido intacto durante siglos pasamos al siglo XVI. El matemático escocés John Napier (1550-1617), inventó los logaritmos consiguiendo así simplificar las multiplicaciones, divisiones, y potencias. En el año 1614 construyó las primeras tablas de logaritmos. Napier, ideó un dispositivo consistente en unos palillos con números impresos en ellos que a merced de un complicado e ingenioso mecanismo le permitía realizar operaciones de multiplicación y división. En 1623, el astrónomo y profesor de la Universidad de Tübingen (Alemania) Wilhelm Sshickard (1592-1635) ideó una calculadora mecánica denominada reloj calculante, aunque no pudo construirse en aquella época debido a los pocos adelantos técnicos. Estaba basada en ruedas dentadas y permitía realizar sumas y restas. A principios del siglo XX ingenieros de IBM la construyeron. El primer calculador mecánico apareció en 1642 tan solo 25 años después de que Napier publicase una memoria describiendo su máquina. El artífice de esta máquina fue el filósofo y matemático francés Blaise Pascal (1623-1662) en cuyo honor se llama Pascal uno de los lenguajes de programación que más impacto a causado en los últimos años. A los 18 años Pascal deseaba dar con la forma de reducir el trabajo de cálculo de su padre que era un funcionario de impuestos. La calculadora que inventó Pascal tenía el mismo principio de funcionamiento que rige los cuentakilómetros de los vehículos actuales; una serie de ruedas tales que cada una de ellas hacía avanzar un paso a la siguiente al completar una vuelta. Las ruedas estaban marcadas con números del 0 al 9 y había dos para los decimales y 6 para los enteros. Esta máquina realizaba operaciones de suma y resta mostrando el resultado por una serie de ventanillas. Las ruedas giraban mediante una manivela con lo que para sumar o restar lo que había que hacer era girar la manivela correspondiente en un sentido o en otro el número de pasos adecuado. Esta máquina se llamó máquina aritmética de Pascal. En 1650, Patridge, basándose en los descubrimientos de Napier, inventó la regla de cálculo, pequeña regla deslizante sobre una base fija en la que figuraban diversas escalas para la realización de determinadas operaciones. Este dispositivo de calculo a sido muy utilizado hasta los años setenta cuando las calculadoras electrónicas la sustituyeron. Gottfried Wilhelm von Leibnitz (1646-1716) fue uno de los genios de su época; a los 26 años aprendió matemáticas de modo autodidacta y procedió a inventar el cálculo. En el año 1671 inventó una máquina de calcular por la simple razón de que nadie le enseñó las tablas de multiplicar. Leibnitz mejoró la máquina de Pascal construyendo su calculadora universal, capaz de sumar, restar, multiplicar, dividir y extraer raíces cuadradas, caracterizándose por hacer la multiplicación de forma directa. Ya en el siglo XIX, en el año 1805 el francés Joseph Marie Jacquard (1752-1834) después de algunos intentos anteriores, construyó un telar automático que realizaba un control perfecto sobre las agujas tejedoras, utilizando tarjetas perforadas que contenían los datos para el control de las figuras y dibujos que había que tejer. Podemos considerar el telar de Jacquard como la primera máquina mecánica programada. La máquina de Jacquard supuso un gran éxito comercial y un gran avance en la industria textil. La antesala de la informática Aunque hubo muchos precursores de los actuales sistemas informáticos para muchos especialistas la historia empieza con Charles Babbage (1792-1871) matemático e inventor inglés que al principio del siglo XIX predijo muchas de las teorías en que se basan los actuales ordenadores. Desgraciadamente al igual que sus predecesores vivió en una época en que ni la tecnología ni las necesidades estaban al nivel de permitir la materialización de sus ideas. En 1822 diseñó su máquina diferencial para el cálculo de polinomios. Basada en fundamentos mecánicos con ruedas dentadas, pero que destacaban de todas las máquinas antecesoras debido al su alto grado de complejidad. Esta máquina no se llegó a construir, debido a la complejidad mecánica que tenia y a que Babbage antes de completarla ya estaba pensando en la segunda máquina. Sin embargo fue construida bastantes años después y fue utilizada para la resolución de funciones y la obtención de tablas de dichas funciones. En 1833, Babbage tuvo una idea mejor. Mientras que la máquina diferencial era un aparato de proceso único Babbage decidió construir una máquina de propósito general que pudiese resolver casi cualquier problema matemático, la llamada máquina analítica. Esta máquina era capaz de realizar todas las operaciones matemáticas y con posibilidad de ser programada por medio de tarjetas de cartón perforado, siendo además capaz de almacenar en su interior una cantidad de cifras considerable. Con esta máquina Babbage consiguió por primera vez en la historia definir los fundamentos teóricos de las computadoras actuales. Se ideó para la realización automática de tablas de logaritmos y funciones trigonométricas. Esta máquina nunca llegó a construirse, debido a que la ingeniería de entonces no estaba lo suficientemente desarrollada como para permitir la fabricación de los delicados y complejos mecanismos requeridos. Por esta máquina y su estructura, Babbage es considerado el padre de la Informática. Máquina analítica de Babbage Charles Babbage (1792-1871) Como los modernos computadores, la máquina de Babbage tenía un mecanismo de entrada y salida por tarjetas perforadas, una memoria, una unidad de control y una unidad aritmético-lógica. Preveía tarjetas separadas para programa y datos. Una de sus características más importantes era que la máquina podía alterar su secuencia de operaciones sobre la base del resultado de cálculos anteriores algo fundamental en los ordenadores modernos. Augusta Ada Byron, condesa de Lovelace, fue la primera persona que realizó programas para la máquina analítica de Babbage, de tal forma que ha sido considerada como la primera programadora de la historia. En 1854, el ingeniero sueco Pehr George Scheutz (1788-1824), apoyado por el gobierno de su país, construyo una máquina diferencial similar a la de Babbage, denominada máquina de tabular. Se utilizó fundamentalmente para la realización de cálculos astronómicos y tablas para las compañías de seguros. A excepción de Scheutz pocos hombres trataron de construir autómatas o calculadoras siguiendo los esquemas de Babbage, su trabajo quedo olvidado hasta que inventores modernos que desarrollaban sus propios proyectos de computadores se encontraron de pronto con tan extraordinario precedente. También en 1854, el matemático ingles George Boole (1785-1873) desarrolló la teoría del álgebra de Boole, que permitió a sus sucesores el desarrollo matemático del álgebra binaria. El álgebra de Boole es un pilar básico de la electrónica de conmutación y por lo tanto en la electrónica digital actual. Otro inventor digno de mención es Herman Hollerith (1860-1929). A los 19 años en 1879 fue contratado como asistente en las oficinas del censo norteamericano que por aquel entonces se disponía a realizar el recuento de la población para el censo de 1880. Este tardó 7 años y medio en completarse manualmente. Hollerith fue animado por sus superiores a desarrollar un sistema de cómputo automático para futuras tareas. Hollerith observó que la mayoría de las preguntas del censo tenían como respuesta un sí o un no, lo que hizo idear en 1886 una tarjeta perforada para contener la información de las personas censadas y una máquina capaz de leer y tabular dicha información. El sistema inventado por Hollerith, llamado máquina censadora o tabuladora, utilizaba tarjetas perforadas en las que mediante agujeros se representaba el sexo, la edad, raza, etc. En la máquina las tarjetas pasaban por un juego de contactos que cerraban un circuito eléctrico activándose un contador y un mecanismo de selección de tarjetas. Estas se leían a ritmo de 50 a 80 por minuto. Desde 1880 a 1890 la población subió de 5O a 63 millones de habitantes aun así el censo de 1890 se realizó en dos años y medio gracias a la máquina de Hollerith. En 1895, Hollerith incluyó en su máquina la operación de sumar con el fin de utilizarla para la contabilidad de los Ferrocarriles Centrales de Nueva York. Esto constituyó el primer intento de realización automática de una aplicación comercial, lo que hizo que el funcionario se introdujera en el mundo de los negocios de tal manera que, en 1896, fundó la empresa Tabulating Machines Company (Compañía de máquina tabuladoras), la cual se fusionó con: la Dayton Scale Co., la International Time Recording Co., y la Bundy Manufacturing Co. en el año 1911 formando la Computing-Tabulating-Recording Co. (CTR) Que pasó a llamarse en 1924 IBM (International Business Machines). El nacimiento del computador actual En 1887, el francés León Bollée (1870-1913) construyó una máquina de multiplicar en la que las multiplicaciones se realizaban directamente por poseer internamente una tabla completa de multiplicar. A finales del siglo XIX, un español residente en Estados Unidos llamado Ramón Verea construyó una máquina de multiplicar similar a la de León de Bollée. En 1893, el suizo Otto Steiger construyó la primera calculadora que tuvo éxito comercial; su nombre fue la Millonaria y se utilizó para los grandes negocios y en algunas aplicaciones de calculo científico. Otro ingeniero español, Leonardo Torres Quevedo (1852-1936) construyó a principios del siglo XX, siguiendo la línea de Babbage, varias máquinas o autómatas teledirigidos. En 1936, el matemático inglés Alan M. Turing (1912-1954) desarrolló la teoría de una máquina capaz de resolver todo tipo de problemas con solución algoritmica, llegando a la construcción teórica de las máquinas de Turing. Con los estudios de Alan M. Turing, se inició la teoría matemática de la computación, en la que se define algoritmo como la representación formal y sistemática de un proceso. De estos estudios surgió la teoría de la computación que engloba el análisis encaminado a encontrar formas de descripción y representación de procesos algorítmicos. Todos estos estudios han dado como resultado entre otras cosas la unificación de los organigramas o algoritmos gráficos de resolución de un problema. Entre 1939 y 1944 Howard H. Aiken (1900-1973) de la universidad de Harvard en colaboración con técnicos de IBM desarrolló la idea de Babbage. Construyéndose una calculadora numérica basada en el uso de ruedas dentadas, embragues electromecánicos y relés telefónicos electromecánicos, este ultimo componente fue idea de la compañía telefónica americana Bell Telephones Laboratories. Este computador que fue la primera computadora electromecánica de la historia se llamó Calculador Automático de Secuencia Controlada. (Automatic Sequence Controlled Calculator - ASCC) Aunque se le conoce mas por el nombre de Mark-1. MARK - 1 . Automatic Sequence Controlled Calculator Se terminó de construir en 1944 y tenía elementos de entrada, memoria central, unidad aritmética, unidad de control y elementos de salida, tal como ideo Babbage en su día. Como soportes de entrada y salida utilizaba las tarjetas y las cintas perforadas. El Mark-1 era un computador de 16.6 metros de largo y 2.6 de alto. Tenía 800.000 elementos móviles y 800 kilómetros de cables. Podía realizar las cuatro operaciones básicas y trabajar con información almacenada en forma de tablas. Operaba con números de hasta 23 dígitos y sumaba dos números en menos de 1 segundo, también podía multiplicar dos números de 8 dígitos en 2 segundos. El Mark 1 trabajaba en código decimal y no binario. En 1938, el alemán Claude Shannon comenzó a aplicar la teoría del álgebra de Boole en la representación de circuitos lógicos. Publicó en 1948 la teoría matemática de las comunicaciones y realizó diversos estudios sobre la teoría de la información, donde aparecieron medidas de la cantidad de información como el bit (binary digit). John Vincent Atanasoff nació en 1903, su padre era un ingeniero eléctrico emigrado de Bulgaria y su madre una maestra de escuela con un gran interés por las matemáticas que transmitió a su hijo. Atanasoff se doctoró en física teórica y comenzó a dar clases en la Universidad de Iowa al comienzo de los años 30. Se encontró con lo que por entonces eran dificultades habituales para muchos físicos y técnicos; los problemas que tenían que resolver requerían una excesiva cantidad de cálculo para los medios de que disponían. Aficionado a la electrónica y conocedor de la máquina de Pascal y las teorías de Babbage, Atanasoff empezó a considerar la posibilidad de construir un calculador digital. Decidió que la máquina habría de operar en sistema binario, hacer los cálculos de modo totalmente distinto a como los realizaban las calculadoras mecánicas e incluso concibió un dispositivo de memoria mediante almacenamiento de carga eléctrica. Durante un año maduró el proyecto y finalmente solicitó una ayuda económica al Consejo de Investigación del Estado de Iowa. Con unos primeros 650 dólares contrató la cooperación de Clifford Berry, estudiante de ingeniería y los materiales para un modelo experimental. En diciembre de 1940 Atanasoff se encontró con John W. Mauchly en la American Association for the Advancement of Science (Asociación Americana para el Avance de la Ciencia) abreviadamente AAAS. Mauchly que dirigía el departamento de física del Ursine College cerca de Filadelfia se había encontrado con los mismos problemas en cuanto a velocidad de cálculo que Atanasoff y estaba convencido de que habría una forma de acelerar el cálculo por medios electrónicos. Al carecer de medios económicos construyó un pequeño calculador digital y se presentó al congreso de la AAAS para presentar un informe sobre el mismo. A raíz de aquello Atanasoff y Maunchly tuvieron un intercambio de ideas que muchos años después ha desembocado en una disputa entre ambos sobre la paternidad del computador digital. Después de esta investigación sobre la electrónica aplicada a la computación, Atanasoff y Berry recibieron otras dos donaciones que sumaron 1460 dólares y otros 5000 dólares de una fundación privada. Por fin, en 1942 se terminó el ABC (Atanasoff Berry Computer). Se consideró la primera máquina de calcular digital y era totalmente electrónica. No recibió la denominación de computadora debido a que no existía la posibilidad de programarla. Su utilización se basó en la resolución de ecuaciones lineales y diferenciales. En 1941 Maunchly se matriculó en unos cursos sobre ingeniería eléctrica en la escuela Moore de Ingeniería donde conoció a un instructor de laboratorio llamado Jonh Presper Eckert. Entre ambos surgió una compenetración que les llevaría a cooperar en un interés común: el desarrollo de un calculador electrónico. El entusiasmo que surgió entre ambos llevó a Maunchly a escribir a Atanasoff solicitándole su cooperación para construir un computador como el ABC en la escuela Moore. La escuela Moore de Ingeniería Eléctrica trabajaba entonces en un proyecto conjunto con científicos de la Universidad de Pensilvania y el Ministerio de Defensa de los Estados Unidos para la construcción una máquina capaz de realizar el calculo de la trayectoria de proyectiles por medio de tablas. La cantidad de cálculos necesarios era inmensa tardándose treinta días en completar una tabla mediante el empleo de una máquina de cálculo analógica. Aun así, esto era unas 50 veces más rápido de lo que tardaba un hombre con una sumadora de sobremesa. Atanasoff y Berry fueron integrantes del proyecto, y sus estudios y ensayos en su calculadora ABC fueron de gran ayuda, sin embargo Atanasoff se distanció del proyecto para poder patentar él la computadora, algo que le fue imposible. En el laboratorio, Mauchly trabajó sobre sus ideas y las de Atanasoff publicando una memoria que despertó el interés de Lieutenant Herman Goidstine joven matemático que hacía de intermediario entre la Universidad y el ejército y que consiguió interesar al Departamento de Ordenación en la financiación de un computador electrónico digital. El 9 de abril de 1943 se autorizó a los dos hombres (Jonh W. Mauchly y Jonh Presper Eckert) a iniciar el desarrollo del proyecto. El resultado de todo este trabajo dio lugar a que en 1945 se terminara la fabricación del ENIAC (Electronic Numeric Integrator And Calculator, Integrador y Calculador Numérico Electrónico). Esta computadora estaba construida basado en válvulas de vacío, sustituyendo a los relés, así se consiguió una mayor rapidez en le resolución de problemas. La diferencia esencial del ENIAC y el ABC consistía en que el ENIAC era programable y universal, es decir, podía ser aplicada a cualquier tipo de cálculos. El ENIAC era mil veces mas rápido que el MARK-1 y realizaba la suma de dos números en dos diezmilésimas de segundo, multiplicándolos en tres milésimas de segundo. Tenía 20 acumuladores de 10 dígitos, era capaz de sumar, restar, multiplicar y dividir; además tenia 3 tablas de funciones. La entrada y la salida de datos se realizaba mediante tarjetas perforadas. Tenía un volumen aproximado de 111 metros cúbicos, ocupaba una superficie de 160 metros cuadrados y su peso era aproximadamente de 30 toneladas, poseía 17.486 válvulas de vacío, 50.000 conmutadores, 70.000 resistencias, 10.000 condensadores, 7500 interruptores, 1500 relés y un consumo entre 100.000 y 200.000 vatios (lo que un bloque de 50 viviendas). Este ultimo dato hizo que al conectarse el ENIAC por primera vez, las luces de una buena parte de la ciudad de Filadelfia sufrieran un gran descenso en la iluminación, quedándose la cuidad casi a oscuras. Además, el equipo necesitaba un equipo de aire acondicionado debido al calor que producía y su mantenimiento era muy elevado, sobre todo debido a las válvulas. En un test de prueba en febrero de 1946 el ENIAC resolvió en 2 horas un problema de física nuclear que previamente habría requerido 100 horas de trabajo de un hombre. Lo que caracterizaba al ENIAC como a los ordenadores modernos no era simplemente su velocidad de cálculo, sino el hecho de que combinando operaciones permitía realizar tareas que antes eran imposibles. En 1946 el matemático húngaro John Von Neumann propuso una versión modificada del Eniac; el EDVAC (Electronic Discrete Variable Automatic Computer) que se construyó en 1952. Esta máquina presentaba dos importantes diferencias respecto al ENIAC: En primer lugar empleaba aritmética binaria lo que simplificaba enormemente los circuitos electrónicos de cálculo. En segundo lugar permitía trabajar con un programa almacenado. El Eniac se programaba enchufando centenares de clavijas y activando un pequeño numero de interruptores. Cuando había que resolver un problema distinto era necesario cambiar todas las conexiones proceso que llevaba muchas horas. Von Neumann propuso cablear una serie de instrucciones y hacer que éstas se ejecutasen bajo un control central. Además propuso que los códigos de operación que habían de controlar las operaciones se almacenasen de modo similar a los datos en forma binaria. De este modo el EDVAC no necesitaba una modificación del cableado para cada nuevo programa pudiendo procesar instrucciones tan deprisa como los datos. Además el programa podía modificarse a sí mismo ya que las instrucciones almacenadas como datos podían ser manipuladas aritméticamente. Tras abandonar la universidad, John W. Mauchly y John Presper Eckert, fundaron su propia empresa, la Eckert-Mauchly Corporation. Como primer proyecto desarrollaron una computadora binaria automática que se denominó BINAC (Binary Automatic Computer) cuya novedad consistió en la realización de determinadas transmisiones de señales internas de forma paralela. Con esta máquina aparecieron los diodos semiconductores en las computadoras, así como la utilización de las cintas magnéticas. El 14 de junio de 1951, Mauchly construyó la primera computadora puesta a la venta; este fue el UNIVAC-I (Universal Automatic Computer, Computador Automático Universal). A partir de 1952 se construyeron computadoras en serie, como las MANIAC-I, MANIAC-II. En 1953 IBM fabricó su primer computador para aplicaciones científicas, el 701. Anteriormente había anunciado una máquina para aplicaciones comerciales el 702 pero esta máquina fue rápidamente considerada inferior al Univac-I. Para compensar esto IBM lanzó al mercado una máquina que resultó arrolladora, el 705, el primer ordenador que empleaba memorias de núcleos de ferrita. También se construyó el UNIVAC-II, con núcleos de ferrita, lo que le haría claramente superior a su antecesor pero por diversos problemas esta máquina no vio la luz hasta 1957, fecha en la que había perdido su liderazgo en el mercado frente al 705 de IBM. IBM superó rápidamente a Sperry en volumen de ventas gracias una eficaz política comercial que actualmente la sigue manteniendo a la cabeza de todas las compañías de informática del mundo en cuanto a ventas. A partir de entonces fueron apareciendo progresivamente más y más máquinas. Veamos las etapas que diferencian unas máquinas de otras según sus características. Cada etapa se conoce con el nombre de generación. La primera generación (1940-1952) El Univac I viene a marcar el comienzo de lo que se llama la primera generación. Los ordenadores de esta primera etapa se caracterizan por emplear el tubo de vacío como elemento fundamental de circuito. Son máquinas grandes pesadas y con unas posibilidades muy limitadas. Su uso fundamental fue la realización de aplicaciones en los campos científico y militar. El tubo de vacío es un elemento que tiene un elevado consumo de corriente genera bastante calor y tiene una vida media breve. Hay que indicar que a pesar de esto no todos los ordenadores de la primera generación fueron como el Eniac, las nuevas técnicas de fabricación y el empleo del sistema binario llevaron a máquinas con unos pocos miles de tubos de vacío. Utilizaban como lenguaje de programación el lenguaje máquina y como únicas memorias para conservar información las tarjetas perforadas, la cinta perforada y las líneas de demora del mercurio. La segunda generación (1952-1964) En 1952 comienza la segunda generación cuyas máquinas empleaban circuitos transistorizados. El transistor es un elemento electrónico que permite reemplazar al tubo con las siguientes ventajas: su consumo de corriente es mucho menor con lo que también es menor su producción de calor. Su tamaño es también mucho menor. Esto permite una drástica reducción de tamaño. Mientras que las tensiones de alimentación de los tubos estaban alrededor de los 300 voltios las de los transistores vienen a ser de 10 voltios con lo que los demás elementos de circuito también pueden ser de menor tamaño al tener que disipar y soportar tensiones mucho menores. El transistor es un elemento constituido fundamentalmente por silicio o germanio. Su vida media es prácticamente ilimitada y en cualquier caso muy superior a la del tubo de vacío. Como podemos ver el simple hecho de pasar del tubo de vacío al transistor supone un gran paso en cuanto a reducción de tamaño, consumo y aumento de fiabilidad. Los campos de aplicación en aquella época fueron, además del científico y militar, el administrativo y de gestión; es decir, las computadoras empezaron a utilizarse en empresas que se dedicaban a los negocios. Comenzaron además a utilizarse los llamados lenguajes de programación evolucionados, que hacían mas sencilla la programación; entre ellos podemos citar el Ensamblador y algunos de los denominados de alto nivel, como Fortran, Cobol y Algol. Asimismo, comenzaron a utilizarse como memoria interna los núcleos de ferrita y el tambor magnético, y como memoria externa la cinta magnética y los tambores magnéticos. La tercera generación (1964-1971) En 1964 la aparición del IBM 360 marca el comienzo de la tercera generación. Las placas de circuito impreso con múltiples componentes pasan a ser reemplazadas por los circuitos integrados. Estos elementos son unas plaquitas de silicio llamadas chips sobre cuya superficie se depositan por medios especiales unas impurezas que hacen las funciones de diversos componentes electrónicos. Así pues un puñado de transistores y otros componentes se integran ahora en una plaquita de silicio. Aparentemente esto no tiene nada de especial salvo por un detalle; un circuito integrado con varios centenares de componentes integrados tiene el tamaño de una moneda. Así pues hemos dado otro salto importante en cuanto a la reducción de tamaño. El consumo de un circuito integrado es también menor que el de su equivalente en transistores resistencias y demás componentes. Además su fiabilidad es también mayor. La miniaturización se extendió a todos los circuitos de la computadora, apareciendo las minicomputadoras. Se utilizaron tecnologías SSI y MSI. En la tercera generación se construyen computadoras como el IBM 370 y el Burroughs, que utilizan memorias electrónicas en lugar de las de núcleos de ferrita. Estas representan un gran avance en cuanto a velocidad y en especial en cuanto a reducción de tamaño. En un chip de silicio no mayor que un centímetro cuadrado cabían 64.000 bits de información, en núcleos de ferrita esa capacidad de memoria puede requerir cerca de un litro en volumen. Asimismo, el software evolucionó de forma considerable con un gran desarrollo de los sistemas operativos, en los que se incluyó la multiprogramación, desechándose el procesamiento batch, también se incluye el tiempo real y el modo interactivo. Aparecen innumerables lenguajes de programación. Las capacidades de memoria empiezan a ser enormemente grandes. En esta etapa cobran gran auge los minicomputadores. Estos son máquinas con un procesador de 16 bits una memoria de entre 16 y 32 KB y un precio de unos pocos millones de pesetas. La cuarta generación (1971-1981) En 1971 aparece el microprocesador, consistente en la integración de toda la CPU de una computadora en un solo circuito integrado. La tecnología utilizada es la LSI (Large Scale Integration) que permitió la fabricación de microcomputadoras y computadoras personales, así como las computadoras monopastilla. Se utilizó además el disquete (floppy disk) como unidad de almacenamiento externo. Aparecieron una gran cantidad de lenguajes de programación de todo tipo y las redes de transmisión de datos (teleinformática) para la interconexión de computadoras. La quinta generación (1981-?) En 1981, con la aparición del PC se produce una nueva generación de ordenadores, estos ya no solo pertenecen a grandes empresas, si no que también empieza a llegar la informática a las pequeñas empresas, lo que implica una reducción de costes y una mayor proliferación de los sistemas informáticos. A partir de 1981 hasta nuestros días la informática a tenido una evolución tal, que la potencia de cálculo que en su día tuvieron los minicomputadores es ampliamente superada por un buen PC. En la quinta generación se utilizan sistemas operativos gráficos, la construcción de programas es más sencilla que nunca, debido a que existen aplicaciones para programar visualmente. El reconocimiento de voz es una realidad en los ordenadores de la 5ª generación. El vídeo digital, el sonido y la interactividad forman la multimedia. Los sistemas de almacenamiento internos pueden albergar hasta 2 Gbytes de información y existen sistemas de almacenamiento externo que pueden llegar a tener una capacidad de 100 Gbytes. El PC arrasa en informática, perdiendo popularidad los sistemas Mac y similares, aunque existen apuestas, como la del Power PC. Actualmente no se concibe empresa sin ordenador, y dentro de poco... el ordenador será un electrodomestico mas, o mejor dicho, será el centro de nuestros electrodomesticos. Actualmente, la comunicación de los ordenadores está muy avanzada, todos los ordenadores del mundo se pueden interconectar entre si, por medio de un simple cable telefónico, el teletrabajo empieza a cobrar vida, la teleconferencia, la telemedicina, los WebPC’s salen al mercado... ¿habremos llegado a la sexta generación? ¿La generación de la aldea global?....La respuesta, como siempre, la tiene el tiempo. 2. CONCEPTOS GENERALES DE UN COMPUTADOR Que es un computador? De acuerdo con la Organización Internacional de Normalización (ISO), el computador es: "Un dispositivo de procesamiento de datos, capaz de efectuar cálculos, incluyendo operaciones aritméticas y lógicas sin necesidad de intervención humana durante su funcionamiento". Un computador es una máquina digital electrónica para procesar información mediante el uso de programas o software. Es una maquina y se encuentra en la misma línea de sucesión que los molinos de viento, las imprentas, las máquinas de vapor, la lavadora, etc. Pueden funcionar bien o mal, ninguna máquina es perfecta. Trabajan almacenando la información de forma digital, en códigos que representan las letras, los dígitos de los números, los sonidos y los gráficos. Estos códigos están basados en el uso de dos caracteres: los dígitos 0 y 1. Todos los dispositivos y medios de almacenamiento están en dos estados: pasa corriente o no pasa, las cintas están magnetizadas en un sentido u otro. Es electrónica y esta compuesta por chips, que son una fina rebanada de una sustancia especial compuesta por cristales de silicio. Un computador se construye usando componentes electrónicos en estado sólido llamados circuitos integrados o chips. El conjunto de programas que gestionan, controlan y optimizan la explotación de dichos subsistemas reciben el nombre de sistema operativo. Además de los sistemas operativos, existe un segundo conjunto de programas, denominado equipo lógico de usuario, que proporcionan las distintas funcionalidades a las cuales puede ser destinado un ordenador personal. Arquitectura de un computador Un ordenador está formado por un conjunto de subsistemas o componentes con funciones específicas dentro del funcionamiento global del mismo. Siguiendo la arquitectura diseñada por Von Neumann a principios del siglo XX, un ordenador consta de tres subsistemas fundamentales: Unidad central de proceso, memoria y subsistema de estrada y salida. La unidad central de proceso Es el subsistema encargado de extraer secuencialmente de la memoria las instrucciones, analizarlas y ejecutarlas, además de coordinar todos los subsistemas del ordenador. La Unidad central de proceso o CPU, se puede definir como un circuito microscópico que interpreta y ejecuta instrucciones. La CPU se ocupa del control y el proceso de datos en los ordenadores. Habitualmente, la CPU es un microprocesador fabricado en un chip, un único trozo de silicio que contiene millones de componentes electrónicos. El microprocesador de la CPU está formado por una unidad aritmético-lógica que realiza cálculos y comparaciones, y toma decisiones lógicas (determina si una afirmación es cierta o falsa mediante las reglas del álgebra de Boole); por una serie de registros donde se almacena información temporalmente, y por una unidad de control que interpreta y ejecuta las instrucciones. Para aceptar órdenes del usuario, acceder a los datos y presentar los resultados, la CPU se comunica a través de un conjunto de circuitos o conexiones llamado bus. El bus conecta la CPU a los dispositivos de almacenamiento (por ejemplo, un disco duro), los dispositivos de entrada (por ejemplo, un teclado o un mouse) y los dispositivos de salida (por ejemplo, un monitor o una impresora). La memoria Se encarga de almacenar las instrucciones que constituyen el programa y, eventualmente, los datos y los resultados. La memoria de un computador se puede definir como los circuitos que permiten almacenar y recuperar la información. En un sentido más amplio, puede referirse también a sistemas externos de almacenamiento, como las unidades de disco o de cinta. Hoy en día se requiere cada vez más memoria para poder utilizar complejos programas y para gestionar complejas redes de computadores. Las memorias se clasifican, por la tecnología empleada y, además según la forma en que se puede modificar su contenido, A este respecto, las memorias se clasifican en dos grandes grupos: memorias RAM y memorias ROM. Memorias RAM: Son memorias en las que se puede leer y escribir, si bien su nombre (Random access memory) no representa correctamente este hecho. La memoria RAM (memoria de acceso aleatorio) es un área de almacenamiento temporal que sirve como lugar de paso obligatorio para acceder al procesador. La memoria RAM es fundamental en un computador y presenta dos ventajas muy importantes, trabaja a gran velocidad, y por otra, el procesador sólo puede trabajar con un dato a la vez y necesita, por tanto, algún lugar donde guardar los datos y al cuál pueda acceder directamente. La memoria RAM es volátil y se mantiene mientras el equipo está encendido. Si éste se apaga, toda la información almacenada se borra. Memorias ROM (Read 0nly Memory): Son memorias en las que sólo se puede leer. La memoria ROM (memoria sólo de lectura) es un tipo de memoria que almacena ciertos datos e instrucciones que permiten el funcionamiento correcto del computador. Es inmodificable y no es volátil. Los programas almacenados en la ROM no se pierden al apagar el computador, sino que se mantienen impresos en los chips ROM durante toda su existencia. Es una memoria de sólo lectura; es decir, los programas almacenados en los chips ROM son inmodificables. El usuario puede leer (y ejecutar) los programas de la memoria ROM, pero nunca puede escribir en la memoria ROM otros programas que los ya existentes. La memoria ROM suele venir integrada en los computadores y en varios periféricos que se instalan en el computador. En la ROM viene almacenado el programa de inicialización que arranca el computador y realiza los chequeos de la memoria y los dispositivos; este programa toma el control del computador y busca un sistema operativo en el disco duro, cediéndole el control cuando lo encuentra. En un ordenador hay una jerarquía de memorias atendiendo al tiempo de acceso y a la capacidad que normalmente son factores contrapuestos por razones económicas y en muchos casos también físicas. Comenzando desde el procesador al exterior, es decir en orden creciente de tiempo de acceso y capacidad, se puede establecer la siguiente jerarquía: Registros de procesador: Estos registros interaccionan continuamente con la CPU (porque forman parte de ella). Los registros tienen un tiempo de acceso muy pequeño y una capacidad mínima. Registros intermedios: Constituyen un paso intermedio entre el procesador y la memoria, tienen un tiempo de acceso muy breve y muy poca capacidad. Memorias caché: Son memorias de pequeña capacidad, normalmente una pequeña fracción de la memoria principal. y pequeño tiempo de acceso. Este nivel de memoria se coloca entre la CPU y la memoria central. Dentro de la memoria caché puede haber, a su vez, dos niveles denominados caché on chip, memoria caché dentro del circuito integrado, y caché on board, memoria caché en la placa de circuito impreso pero fuera del circuito integrado, evidentemente, por razones físicas, la primera es mucho más rápida que la segunda. Memoria central o principal: En este nivel residen los programas y los datos. La CPU lee y escribe datos en él aunque con menos frecuencia que en los niveles anteriores. Tiene un tiempo de acceso relativamente rápido y gran capacidad. Memorias de masas o auxiliares: Son memorias que residen en dispositivos externos al ordenador, en ellas se archivan programas y datos para su uso posterior. También se usan estas memorias para apoyo de la memoria central en caso de que ésta sea insuficiente (memoria virtual). Estas memorias suelen tener gran capacidad pero pueden llegar a tener un tiempo de acceso muy lento. Subsistemas de Entrada/Salida. Permiten la comunicación del ordenador con el exterior. Las funciones que debe realizar un computador para ejecutar trabajos de entrada/salida son direccionamiento o selección del dispositivo que debe llevar a cabo la operación de E/S, la transferencia de los datos entre el procesador y el dispositivo (en uno u otro sentido), y la sincronización y coordinación de las operaciones. Esta última función es necesaria debido a la deferencia de velocidades entre los dispositivos y la CPU y a la independencia que debe existir entre los periféricos y la CPU. Se define una transferencia elemental de información como la transmisión de una sola unidad de información (normalmente un byte) entre el procesador y el periférico o viceversa. Para efectuar una transferencia elemental de información son precisas las siguientes funciones: Establecimiento de una comunicación física entre el procesador y el periférico para la transmisión de la unidad de información. Control de los periféricos, en que se incluyen operaciones como prueba y modificación del estado del periférico. Una de las funciones básicas del computador es comunicarse los dispositivos exteriores, es decir, el computador debe capaz de enviar y recibir datos desde estos dispositivo. esta función, el ordenador no sería operativo porque cálculos no serían visibles desde el exterior. con ser Sin sus Existe una gran variedad de dispositivos que pueden comunicarse con un computador, desde los dispositivos clásicos (terminales, impresoras, discos, cintas, cte.) hasta convertidores A/D y D/A para aplicaciones de medida y control de procesos, De todos los posibles periféricos, algunos son de lectura, otros de escritura y otros de lectura y escritura (es importante resaltar que este hecho siempre se mira desde el punto de vista del proceso). Por otra parte, existen periféricos de almacenamiento también llamados memorias auxiliares o masivas. La mayoría de los periféricos están compuestos por una parte mecánica y otra parte electrónica. Estas partes suelen separarse claramente para dar una mayor modularidad. A la componente electrónica del periférico se le suele denominar controlador del dispositivo o, también, adaptador del dispositivo. Si el dispositivo no tiene parte mecánica (como, por ejemplo, la pantalla de un terminal), el controlador estará formado por la parte digital del circuito. Frecuentemente los controladores de los dispositivos están alojados en una placa de circuito impreso diferenciada del resto del periférico. En este caso es bastante habitual que un mismo controlador pueda dar servicio a dispositivos de características similares. El principal problema planteado por los periféricos es su gran variedad que también afecta a las velocidades de transmisión. Por tanto, el mayor inconveniente que encontramos en los periféricos es la diferencia entre sus velocidades de transmisión y la diferencia entre éstas y la velocidad de operación del computador. Dispositivos de entrada: Estos dispositivos permiten al usuario del ordenador introducir datos, comandos y programas en la CPU. El dispositivo de entrada más común es un teclado. La información introducida con el mismo, es transformada por el ordenador en modelos reconocibles. Otros dispositivos de entrada son los lápices ópticos, que transmiten información gráfica desde tabletas electrónicas hasta el ordenador; joysticks y el ratón o mouse, que convierte el movimiento físico en movimiento dentro de una pantalla de ordenador; los escáneres luminosos, que leen palabras o símbolos de una página impresa y los traducen a configuraciones electrónicas que el ordenador puede manipular y almacenar; y los módulos de reconocimiento de voz, que convierten la palabra hablada en señales digitales comprensibles para el ordenador. También es posible utilizar los dispositivos de almacenamiento para introducir datos en la unidad de proceso. Otros dispositivos de entrada, usados en la industria, son los sensores. Dispositivos de Entrada/Salida: Los dispositivos de almacenamiento externos almacenan los datos en forma de cargas sobre un medio magnéticamente sensible, por ejemplo una cinta de sonido o, lo que es más común, sobre un disco revestido de una fina capa de partículas metálicas. Los dispositivos de almacenamiento externo más frecuentes son los disquetes y los discos duros, aunque la mayoría de los grandes sistemas informáticos utiliza bancos de unidades de almacenamiento en cinta magnética. Los discos flexibles pueden contener, según sea el sistema, desde varios centenares de miles de bytes hasta bastante más de un millón de bytes de datos. Los discos duros no pueden extraerse de los receptáculos de la unidad de disco, que contienen los dispositivos electrónicos para leer y escribir datos sobre la superficie magnética de los discos y pueden almacenar desde varios millones de bytes hasta algunos centenares de millones. La tecnología de CD-ROM, que emplea las mismas técnicas láser utilizadas para crear los discos compactos (CD) de audio, permiten capacidades de almacenamiento del orden de varios cientos de megabytes (millones de bytes) de datos. También hay que añadir los recientemente aparecidos DVD que permiten almacenar más de 4 Gb de información. Otros dispositivos de entrada y salida son el módem y las tarjetas de red. Un módem enlaza dos ordenadores transformando las señales digitales en analógicas para que los datos puedan transmitirse a través de las líneas telefónicas convencionales. Una tarjeta de red es algo parecido a un módem, pero funciona con otro tipo de tecnología, de forma más rápida y sin necesidad de acceso a través de una línea telefónica. El acceso de un ordenador a la red necesita de este dispositivo para poder realizar la conexión. Dispositivos de salida: Estos dispositivos permiten al usuario ver los resultados de los cálculos o de las manipulaciones de datos de la computadora. El dispositivo de salida más común es la unidad de visualización, que consiste en un monitor que presenta los caracteres y gráficos en una pantalla similar a la del televisor. Por lo general, los monitores tienen un tubo de rayos catódicos como el de cualquier televisor, aunque los ordenadores pequeños y portátiles utilizan hoy pantallas de cristal líquido (LCD, acrónimo de Liquid Crystal Displays) o electroluminiscentes. Otros dispositivos de salida más comunes son las impresoras, que permiten obtener una copia impresa de la información que reside en los dispositivos de almacenamiento, las tarjetas de sonido. Buses del sistema Los tres subsistemas definidos anteriormente se comunican entre sí a través del denominado bus, que es el medio físico empleado para transmitir la información entre ellos. El bus se puede definir como un conjunto de líneas conductoras de hardware utilizadas para la transmisión de datos entre los componentes de un sistema informático. Un bus es en esencia una ruta compartida que conecta diferentes partes del sistema, como el microprocesador, la controladora de unidad de disco, la memoria y los puertos de entrada/salida (E/S), para permitir la transmisión de información. En el bus se encuentran dos pistas separadas, el bus de datos y el bus de direcciones. 3. CONCEPTOS BASICOS DE SISTEMAS OPERATIVOS Hardware y Software Para que todo computador funcione requiere de dos componentes principales: el hardware que es el equipo y el software que son los programas. El hardware es el computador como tal, con todos sus componentes hechos de plástico, metal y cables. Entre estos componentes, destaca el corazón y cerebro de todo computador: la Unidad Central de Procesamiento (CPU). Por sí sólo, el hardware no puede hacer nada, es necesario que exista software, datos que hagan funcionar el computador. El propio chip o disco de computador en el que se guardan los datos no es software, sino hardware, pero los datos que contiene sí lo son. El software corresponde a los programas, o sea, una serie de instrucciones escritas de cierta manera que el computador lo entienda y que permiten que haga lo que se le está pidiendo que realice. Aquí es posible distinguir dos tipos fundamentales de software: Los el software de sistemas, es decir las instrucciones que permiten que un computador funcione y los programas de aplicación, que realizan tareas específicas (procesadores de texto, bases de datos, juegos, internet, etc.) Un maquina de procesamiento de información necesita del hardware para funcionar. El hardware puede dividirse en tres grandes grupos: • • • Lenguaje de máquina: instrucciones directas a la máquina. Tiene de 50 a 300 instrucciones y es muy difícil de programar. Microprogramación: control directo de dispositivos. En memoria de sólo lectura, o a veces en el propio hardware; interpreta el lenguaje de máquina. Dispositivos físicos: chips, cables, fuentes de potencia, conectores, etc. Una maquina de procesamiento de información sin software no presta ninguna utilidad. El software puede clasificarse en dos grandes grupos: • • Programas de sistema (software de sistema): controlan la operación de la computadora. Esta formado por el sistema operativo (comandos básicos de CPU) y por las herramientas del sistema (CPU en modo usuario. Editores, intérpretes de comando, compiladores, etc). Programas de aplicación (software de aplicación): resuelven las necesidades de procesamiento de información de los usuarios. Ej.: reproductores de audio ó video, juegos, etc. El Sistema Operativo es el programa fundamental entre los programas de sistemas; controla todos los recursos de la computadora y proporciona la base sobre la que pueden escribirse los programas de aplicación. Es un nivel de software por encima del hardware que controla todas las partes del sistema y presenta al usuario una interfaz de alto nivel o máquina virtual. En un sistema de computación se reconocen los siguientes niveles, partiendo desde el usuario hacia la máquina física: programas de aplicación, herramientas del sistema, sistema operativo, lenguaje de maquina, microprogramación y dispositivos físicos. El sistema operativo se ejecuta en modo súperusuario, con plenos poderes; no puede ser alterado por el usuario. Los compiladores y editores se ejecutan en modo usuario, con poderes limitados. Cada usuario podría escribir su propio editor, compilador u otra utilidad. Los programas de aplicación son escritos por los usuarios para resolver problemas particulares. Qué es un sistema operativo. El concepto de sistema operativo se puede ver con base en las funciones que realiza: como maquina extendida y como administrador de recursos. Como máquina extendida: El sistema operativo presenta al usuario una máquina extendida o máquina virtual más fácil de programar que accionar en forma directa sobre el hardware subyacente. En este sentido se dice que el sistema operativo define un ambiente de trabajo, una plataforma de trabajo. El sistema operativo es un programa que se “coloca” entre el hardware y los programas de aplicación, ofreciendo a éstos los servicios de una máquina virtual: interfaz de más alto nivel, extensión y simplificación de lo ofrecido por el nivel de lenguaje máquina, ocultación de gran parte de los detalles del hardware e interfaces universales para los dispositivos. Como controlador de recursos: Permite la asignación ordenada y eficiente los recursos del sistema tales como el procesador, la memoria y los dispositivos de entrada/salida, para que los programas que compiten por el uso de estos recursos puedan ejecutar las actividades para los cuales fueron diseñados. Historia de los Sistemas Operativos Primera generación (1945-1955): bulbos y conexiones. Programación en lenguaje de máquina absoluto, o realizando directamente las conexiones eléctricas. Alrededor de 1950 se introducen las tarjetas perforadas. Segunda generación (1955-1965): transistores y sistemas de procesamiento por lotes. Los programas y datos se entregaban en tarjetas, se acumulaban y luego eran procesados todos juntos por la máquina, buscando minimizar los tiempos muertos. Tercera generación (1965-1980): circuitos integrados y multiprogramación. El sistema 360 de IBM unifica las computadoras comerciales y científicas en una sola línea de máquinas con software compatible. Se introduce la multiprogramación, que divide la memoria en partes y ejecuta un programa distinto en cada una. El spooling permite la operación simultánea y en línea de periféricos. El tiempo compartido es una variante de multiprogramación que habilita a cada usuario una terminal en línea. Surge el sistema operativo UNIX. Cuarta generación (1980-1990): estaciones de trabajo y computadoras personales. Sistemas operativos DOS y UNIX. Software “amigable con el usuario”. Sistemas operativos de red, con varias computadoras interconectadas que pueden ser accedidas por un mismo usuario. Sistemas operativos distribuidos, compuestos por varios procesadores que se presentan al usuario como un sistema único. Conceptos de Sistemas Operativos UNIX La interfaz entre los programas de usuario y el sistema operativo está formada por llamadas al sistema capaces de crear, utilizar y eliminar procesos y archivos. Un proceso es básicamente un programa en ejecución. Consta del programa ejecutable y la pila o stack del programa, su contador de programa, apuntador de pila y otros registros, así como la otra información que se necesita para ejecutar el programa. En si el proceso en el concepto de los sistemas operativos es como el sistema de tiempo compartido. Esto es, que en forma periódica, el sistema operativo decide suspender la ejecución de un proceso y dar inicio a la ejecución de otro, por ejemplo, porque el primero haya tomado ya más de su parte del tiempo de la CPU. Cuando un proceso se suspende temporalmente, debe reiniciarse después exactamente en el mismo estado en que se encontraba cuando se detuvo. Esto significa que toda la información relativa al proceso debe guardarse explícita en algún lugar durante la suspensión. en forma Archivos. Existen llamadas al sistema para crear, eliminar, leer y escribir archivos. Los archivos se agrupan en directorios, y existen llamadas al sistema para crear y eliminar directorios, y para colocar y quitar archivos de ellos. Esto crea una jerarquía de directorios y archivos llamada sistema de archivos. Un archivo se reconoce unívocamente dando la ruta de acceso, que es la sucesión de directorios que permiten alcanzar el archivo a partir del directorio raíz. Cada proceso activo tiene un directorio de trabajo en el que se buscan primariamente los archivos cuando se indica sólo el nombre y no la ruta de acceso. En un sistema multiusuario, es preciso dar privacidad a los archivos de cada persona. Para acceder a un archivo, se verifican primero sus permisos; si son correctos, el sistema devuelve un descriptor de archivo o “entrada de manejo”, un número entero que se utiliza en todas las operaciones subsiguientes. UNIX maneja los dispositivos de entrada y salida con un artificio que los presenta como archivos especiales, lo que permite escribir y leer en ellos con las mismas llamadas al sistema que se usan para los archivos. Los archivos especiales de bloque se usan para dispositivos que organizan los datos en bloques de tamaño fijo y acceso aleatorio, como los discos. Los archivos especiales de caracteres modelan los dispositivos formados con flujos de caracteres como las terminales, impresoras e interfaces de red. En UNIX y DOS, al iniciar un proceso se establece el descriptor de archivo 0 como entrada estándar para recibir datos desde el teclado y el descriptor de archivo 1 como salida estándar para presentar información en la pantalla. El descriptor de archivo 2 es el de error estándar; se usa para mensajes de error y se asigna normalmente a la pantalla. El intérprete de comandos (shell). El sistema operativo es el código que realiza las llamadas al sistema. Los editores, compiladores, ensambladores, enlazadores e intérpretes de comandos definitivamente no son parte del sistema operativo, aunque son importantes y útiles. El Shell es el intérprete de comandos, a pesar de no ser parte del sistema operativo, hace un uso intenso de muchas características del sistema operativo y por tanto sirve como un buen ejemplo de la forma en que se pueden utilizar las llamadas al sistema. También es la interfaz primaria entre un usuario situado frente a su terminal y el sistema operativo. Cuando algún usuario entra al sistema, un “shell” se inicia. El shell tiene la terminal como entrada y como salida estándar. Este da inicio al teclear una solicitud de entrada a un conjunto de caracteres, los cuales indican al usuario que el shell está esperando un comando. El intérprete de comandos de UNIX, o shell, es un proceso que muestra un indicador de comandos ($, %, o #) y aguarda que el usuario digite un comando. Toda vez que el usuario digita un comando, el intérprete lo valida, y si es correcto crea un proceso hijo que realiza la acción encomendada. Al terminar el proceso hijo, exhibe nuevamente el indicador de comando e intenta leer una nueva línea de la entrada. Qué es UNIX. Estrictamente, UNIX designa el núcleo de un sistema operativo multiusuario y multitarea. En un sentido más amplio, comprende el núcleo del sistema operativo más un conjunto de programas que permiten compilar lenguajes de programación, editar texto, interpretar comandos, manejar archivos y discos, acceder a otras máquinas, establecer comunicaciones telefónicas, enviar y recibir correo electrónico, manejar las colas de impresión y un sinfín de tareas más. Algunos de estos programas pueden haber sido desarrollados por los propios usuarios. UNIX designa al mismo tiempo un cierto “ambiente de trabajo”, un conjunto de circunstancias que encuentra el usuario de la computadora donde corre UNIX, tales como la presentación en pantalla, los programas disponibles y la forma de trabajo que impone o permite. Cuando hablemos de UNIX nos estaremos refiriendo al sentido amplio y, conjuntamente, a su ambiente de trabajo. Características Algunas características de UNIX se describen a continuación • • • • • • • • • • Muchas herramientas de software (compiladores, editores, utilitarios para muchas tareas). Reutiliza el software, a través de la combinación de comandos simples en aplicaciones complejas. Portable: el mismo sistema operativo corre en un espectro de máquinas que van desde notebooks a supercomputadoras. Es el único sistema operativo con estas características. Flexible: se adapta a muchas aplicaciones diferentes. Potente: dispone de muchos comandos y servicios ya incorporados. Multiusuario: atiende a muchas personas simultáneamente. Multitarea: hace muchas cosas a la vez. Elegante: sus comandos son breves, coherentes, específicos para cada tarea y muy eficientes. Orientado a redes desde el comienzo. Dispone de un estándar (POSIX) que debe cumplir todo sistema operativo que pretenda ser UNIX, lo que asegura una evolución predecible. Objetivos de UNIX UNIX fue diseñado teniendo en mente los siguientes objetivos: • • • Crear un sistema interactivo de tiempo compartido diseñado por programadores y para programadores, destinado a usuarios calificados. Que fuera sencillo, elegante, escueto y consistente. Que permitiera resolver problemas complejos combinando un número reducido de comandos básicos. El UNIX moderno Orientado en primera instancia a terminales de caracteres, actualmente dispone de la interfase gráfica X-Windows. Esto ha simplificado mucho el uso para los no especialistas. Es ideal para trabajar como servidor: una máquina potente como servidor, terminales o computadores personales baratas en los puestos de trabajo. El paquete de libre uso Samba permite que una máquina UNIX actúe como servidor de puestos de trabajo Windows 3.11, Windows 95, y Windows NT. Se orienta en la dirección contraria a la tendencia de hacer invisible al usuario el sistema operativo, permitiendo el uso de todas las bibliotecas, llamadas al sistema y herramientas internas, aunque su uso requiere un alto nivel de especialización. Es posible compilar un núcleo específicamente adaptado a las necesidades particulares de una empresa o grupo de trabajo, reduciendo el uso de recursos y aumentando la rapidez. Las máquinas RISC de los '80 y '90 adoptaron UNIX como sistema operativo; es por lejos el sistema predominante en las estaciones de trabajo orientadas a cálculos e investigación. También fue adoptado para la creación de Internet, mayoritariamente soportada por UNIX. Por sus características de diseño, está especialmente preparado para su ampliación y desarrollo en 64 bits y el multiprocesamiento en varias CPUs. Qué es Linux? En la actualidad, la difusión del sistema operativo Linux en Latinoamérica ha sido intensiva; en la mayoría de los casos a través de la red y de las universidades, como focos de información hacia el resto de la comunidad. El mundo informático esta evolucionando, Linux es el futuro, pero... ¿Qué es Linux? Esta no es la pregunta del millón, es la pregunta de millones de usuarios de computadores personales que aún desconocen su significado y su poder. La definición inicial suele ser: Linux es un Sistema Operativo (SO). Pero, ¿Qué es un SO?, es lo que muchos podrían preguntar y la primera referencia con respecto al tema, generalmente suele ser Windows 95 / 98 / 2000 / Me / XP. Un SO es la plataforma o base sobre la cual se ejecutan aplicaciones de software (programas) y se administran los diferentes dispositivos del computador. Ahora bien, ¿Es necesariamente todo SO igual a los sistemas Windows? ¿Es Linux igual a Windows?, a nuestro parecer la respuesta es: NO!. Aunque es cierto que existen algunas características similares entre Linux y los productos de Microsoft, también hay diferencias de forma y fondo que generan un abismo infinito entre los dos sistemas. Siguiendo con la definición, Linux es un SO Multi-Usuario y MultiTarea, esto significa, que un número diverso de usuarios puede acceder a sus recursos (Ej: programas, dispositivos, etc) de manera simultánea y que permite realizar múltiples tareas en el mismo instante. Probablemente, la idea anterior puede parecer algo confusa para muchos, afortunadamente dicha definición puede traducirse a una expresión un poco más concreta: Linux es un SO enfocado al trabajo en red. Si se desea ser un poco riguroso en la definición, entonces Linux debe entenderse como un sistema orientado a Internet; pues su protocolo de comunicación nativo es el TCP/IP, el protocolo estándar de transmisión de datos de la red mundial. Pero Linux no solo significa "trabajo en red"; gracias al apoyo de organizaciones como GNU y XFree, en la actualidad, este sistema sirve como plataforma a un sin número de aplicaciones y de entornos gráficos igualmente gratuitos y disponibles para todo el mundo a través de Internet. Es por ello, que Linux no debe ser visto como una herramienta exclusiva de expertos en computación. Partiendo de su precio ($0) y en nuestra opinión como grupo de investigación, Linux debe ser entendido como una solución gratuita a las necesidades informáticas de la comunidad mundial; tanto en el presente, como ya es un hecho, en cientos de empresas y entidades educativas alrededor del mundo, como en el futuro, dada su constante evolución con respecto a las tendencias tecnológicas que día a día cambian el rumbo de los sistemas de computo, las telecomunicaciones y por ende, de Internet. Para entender el "¿Por Qué?" de la trascendencia de Linux a nivel mundial, es importante conocer un poco acerca de su historia: Antecedentes En el año de 1991, D.O.S. era el de las computadoras personales. donde escoger, pues aunque los opción con respecto al D.O.S., más alto. sistema operativo supremo en el mundo El usuario común no tenia mucho de equipos Apple de Mac eran una mejor su precio era astronómicamente mucho De otro lado, Unix; otra alternativa en cuanto a sistemas operativos, se enfocó a soluciones empresariales, despreciando la demanda de usuarios pc y soportando solo arquitecturas tipo servidor, es decir, computadores especializados en soportar grandes cargas de trabajo durante 24 horas al dia. La opción alternativa en ese entonces para investigadores y curiosos de la computación parecía ser Minix, un Sistema Operativo escrito por el profesor holandés Andrew S. Tanenbaum y utilizado como herramienta pedagógica para enseñar el interior de un sistema operativo a los estudiantes de sus cursos. Minix fue diseñado para correr en procesadores Intel 8086, que en ese entonces había invadido el mercado gracias a su diseño y precio, estrategia dirigida al usuario común. A pesar de ser un Sistema Operativo limitado, Minix ofrecía una característica muy particular en ese entonces: la disponibilidad de su código fuente. Cualquiera que tuviera acceso al libro "Operating System" escrito por Tanenbaum, tenia acceso a las 12.000 lineas de código programado en Lenguaje C y en Lenguaje ensamblador; en una época en la que todas las casas de software ocultaban como su tesoro más preciado el código fuente de sus aplicaciones (incluyendo a los Sistemas Operativos). Muchos estudiantes alrededor del mundo adquirieron copias del código fuente de Minix, entre ellos: Linus Torvalds, un estudiante de segundo año de Ciencias de la Computación de la Universidad de Helsinki, en ese entonces. En ese mismo año, el proyecto GNU, un movimiento enfocado a la creación de software libre de calidad, impulsado por Richard Stallman, convocó a programadores de todo el planeta para iniciar el desarrollo de una gran variedad de aplicaciones. GNU liberaría el en ese entonces esperado compilador de C gratuito, pero aún faltarían algunos años para que el grupo liberara un Sistema Operativo o al menos una base estable (kernel) . La esperanza de un Sistema Operativo Gratuito en ese entonces era remota, pues incluso MINIX requería de Licencia. El Nacimiento... El 25 de agosto de 1991, Linus anuncia en un grupo de discusión sobre MINIX (comp.os.minix), sus adelantos en la elaboración de un Sistema Operativo gratuito basado en el creado por Tanenbaum, aunque sin muchas pretensiones. En Septiembre, la versión 0.01 de Linux es liberada. Muchos programadores alrededor del mundo adquieren el código fuente, lo prueban y lo optimizan, enviando sus propias versiones a Torvalds. En Octubre 5, Linus hace un nuevo anuncio en el grupo de discusión; la versión 0.02 de Linux es liberada. La nueva versión presenta una gran cantidad de mejoras con respecto a la primera. La versión 0.03 vendría unas semanas después. En Diciembre de ese año, la versión 0.10 saldría a la luz pública. A pesar de ello, la distribución aún se encontraba en pañales, pues solo poseía soporte para discos duros AT y no ofrecía el servicio de login (el sistema arrancaba en un shell bash directamente). La versión 0.11 fue mucho mejor. Trajo consigo el soporte para teclado multilenguaje, drivers para la unidad de diskette, soporte para tarjetas de video VGA,EGA,Hercules, etc. El número de la versión salto directamente de la 0.12 a la 0.95 y 0.96 y así comenzó a crecer a un ritmo geométrico. Rápidamente el código fuente de Linux se esparció por todo el mundo a través de Internet. Grupos de desarrollo alrededor de Linux comenzaron a formarse por todo el planeta. El proyecto GNU promovió el uso de este sistema operativo, al enfocar el desarrollo de sus aplicaciones hacia dicha plataforma; esto aseguraría una gran variedad de alternativas de software para aquellos usuarios que se decidieran por Linux. Con el fin de asegurar que su código fuente continuara siendo de libre acceso para todos, Linux fue registrado bajo un tipo de licencia especial: GNU GPL (Licencia Publica General GNU). Con ello se garantizaría que ninguna versión futura de Linux pudiese ser monopolizada por ningún grupo en particular. Rápidamente desarrolladores comerciales comenzaron a migrar a Linux. A pesar de ser una plataforma gratuita, varias versiones de software comercial fueron compiladas para dicha plataforma. Compañías como RedHat, Caldera y Debian comenzaron a obtener una respuesta significativa por parte de usuarios de todo el mundo. Con el desarrollo de entornos gráficos (como X-windows y KDE), las distribuciones de Linux ganaron gran popularidad y aceptación, pues cambiaron la antigua forma de ver a los sistemas Unix como herramientas complicadas y de ambientes de trabajo limitados (Ej: Terminales Brutas). Entre tanto, eventos curiosos empezaron a suceder alrededor de Linux: Una versión fue desarrollada para trabajar en un computador PalmPilot de 3com. En 1996, la distribución trabajada por RedHat, gana el premio a "Mejor Sistema Operativo para Equipos de escritorio", otorgado por el magazin InfoWorld. En abril de ese año, científicos de "Alamos National Laboratory" utilizaron Linux para correr 68 computadores como una maquina de procesamiento paralelo para simular ondas de expansión atómica. El proyecto costo 152.000 dólares incluyendo la labor de interconectar los 68 equipos. Cerca de la décima parte de lo que hubiese costado una maquina comercial de igual capacidad en esa época. La velocidad máxima alcanzada por el experimento alcanzo 19 billones de operaciones por segundo, siendo 315 veces mas rápido que el computador más poderoso del mundo en ese entonces. Tres meses después, el sistema no había sido reiniciado ni una sola vez. Entre Mayo escogido a Torvalds. Un es escogido mundo. y Junio partir pequeño como la del mismo año, el logo oficial de Linux es de una propuesta de su creador, Linus pingüino de aspecto tierno y de nombre Tux, imagen representativa de Linux en todo el La compañía Digital Domain es contratada para la realización de varios efectos especiales para la película "titanic" (1997). Para dicho proyecto, 160 estaciones alpha fueron utilizadas; 105 de ellas corriendo una distribución Linux (Red Hat). La pelicula "Shrek", estrenada en E.U. El 18 de mayo del 2001, es realizada totalmente en computadores y estaciones de trabajo con el sistema operativo Linux. Es la primera vez en la historia que una empresa cinematográfica confia a Linux la totalidad de una producción. El presente... En la actualidad, una de las ventajas más sorprendentes de Linux como sistema operativo, es su capacidad de adaptabilidad a cada nueva pieza de hardware que sale al mercado. Es el caso del procesador Intel Xeon, para el cual, unas semanas después de su lanzamiento, el kernel de Linux ya estaba listo para soportarlo. De hecho, Linux ha sido adaptado para múltiples plataformas, entre ellas Alpha, Sun, Mac, PowerPC, e inclusive "palmtops". Y su desarrollo aún continúa. El futuro... Con cada nuevo amanecer, cientos de descubrimientos y de novedades tecnológicas se encuentran a la orden del dia. Gracias a Internet, la información viaja a la velocidad del pensamiento, haciendo que cada rincón del planeta luzca tan distante como la tienda de la esquina. En el mundo de la ciencia y la tecnología del tercer milenio, el futuro es el presente y Linux es un fenómeno en constante evolución, característica que le garantiza un espacio protagónico y constante en el horizonte de las tendencias de la informática y la computación. Pero, ¿Para qué sirve linux? Es una pregunta fácil de contestar, sin embargo, la respuesta nunca es breve. En la actualidad, Linux cuenta con el soporte de infinidad de grupos desarrolladores (como GNU y XFree, mencionados anteriormente) alrededor del mundo. Esto sin mencionar, a todas las empresas dedicadas a trabajar en las diferentes distribuciones del sistema, las cuales invierten gran cantidad de sus recursos en el desarrollo de software. En el área de la informática, cada usuario es un mundo aparte y la gama de necesidades y requerimientos que hacen parte de la expectativa mundial tiende a ser infinita. Afortunadamente y gracias a la creciente demanda de utilidades para Linux, en este momento, el espectro de soluciones es gigante y sigue en aumento constante. Desde empleados de oficina, hasta Proveedores de Servicios Internet (ISP), pasando por Grupos de Investigación Científica, Desarrolladores de Software y adictos al ciber-espacio, el perfil de los usuarios Linux no posee limites. Software para edición de documentos, presentaciones, hojas electrónicas, gráficos de alta definición, Software para Cálculos Matemáticos, Modelación Molecular, Aplicaciones para trabajo en Red, Clientes de Servicios Internet, Juegos de Estrategia, etc., etc... la clasificación de aplicaciones no parece terminar. ¿Para qué sirve Linux? ¿Para qué sirve el Software Libre? Para TODO!!! ¿Qué es el Software Libre SL? Es todo aquel software que goza de 4 libertades: La libertad de ejecutar el programa, con cualquier propósito (libertad 0). La libertad de estudiar como funciona el programa, y adaptarlo a sus necesidades (libertad 1). El acceso al código fuente es una precondición para esto. La libertad de distribuir copias a otros usuarios (libertad 2). La libertad de mejorar el programa, y liberar las mejoras al público de tal manera que toda la comunidad se beneficie. (libertad 3). El acceso al código fuente es una precondición para esto.