Evolución de los sistemas computacionales A través de las décadas ha evolucionado la arquitectura de las computadoras y de los sistemas operativos, de tal manera que se puede evidenciar una clara división o distintas generaciones y sus principales características, debido a una estrecha relación a lo largo de su evolución. Todo da un inicio cuando un matemático llamado Charles Babbage trata de construir una máquina analítica, sin embargo, se da cuenta que necesita algún programa que lo administre (un sistema operativo), a raíz de esto contrata a una joven llamada Ada Lovelace para que programe tal sistema. A pesar de ello, no sería hasta unas décadas después cuando se da un gran avance en las computadoras, a partir de aquí comienza una generación en la década de los 40. Entre las generaciones se identifican cuatro, las cuales son: 1. La primera generación (1940 a 1955): tubos de vacío 2. La segunda generación (1955 a 1965): transistores y sistemas de procesamiento de datos 3. Tercera generación (1965 a 1980): circuitos integrados y multiprogramación 4. La cuarta generación (1980 a la actualidad): las PC o computadoras personales 1. La primera generación o tubos de vació (1940 a 1955): Tubos de vacío En esta generación se destaca el surgimiento de diversas investigaciones a nivel mundial respecto a las computadoras, se caracterizaban por requerir un espacio físico muy amplio debido a sus grandes tamaños y se manejaba el lenguaje máquina. Las computadoras que se destacaron fueron la Z3, ABC (1939), Collosus (1941) la Mark I (1944), la ENIAC (1946), EDVAC (1949) y UNIVAC (1951). Algunos eran binarios, utilizaban bulbos, eran programables, utilizaban núcleos magnéticos para la memoria y consumían mucha electricidad, pero todas eran muy primitivas. ENIAC Generalmente para cada máquina existía un grupo de profesionales ingenieros que diseñaban, construían, programaban, operaban y daban mantenimiento a estas grandes máquinas, por lo que era muy costoso económicamente mantenerlas, además toda la programación se realizaba en lenguaje binario o mediante conexiones de cables a tableros de conexiones o plugboards para controlar las funciones básicas de la máquina. Los lenguajes de programación o incluso el lenguaje ensamblador era desconocido. Crace Hooper Usualmente, el proceso de programar era muy tedioso porque el programador tenía que insertar un tablero de conexiones y esperar durante horas para realizar cálculos sencillos, hasta después de un tiempo aparecieron las tarjetas perforadas donde se escribían los programas de manera un poco más práctica. Es importante destacar el gran avance del almirante Grace Hooper en la informática quien creó el primer compilador llamado A-0 (math matic) en 1951 y en 1957 realizo el primer compilador de procesamiento de datos B-0 o (Flow-matic), con el cual desarrollo muchas aplicaciones contables. Finalmente, en 1960 su primera versión del lenguaje COBOL (Common Business – Oriented language). 2. La segunda generación (1955 a 1965): transistores y sistemas de procesamiento de datos. Transistor (izquierda) En esta época se introduce el transistor a las computadoras, lo que las hizo un poco más accesibles y ágiles (en la actualidad se les conoce como mainframe). A diferencia de la primera generación que se perdía mucho tiempo en terminar algún trabajo para seguir con el siguiente, esta generación evoluciono en gran sentido esa desventaja. Los sistemas operativos fueron diseñados para hacer más fluida la transmisión entre trabajos. Es aquí donde dan comienzo los sistemas de procesamiento por lotes donde los trabajos se reúnen en grupos o lotes. En 1957, IBM desarrolla el lenguaje Fortran, el objetivo era crear una alternativa práctica del lenguaje ensamblador para programar el computador IBM 704, los programadores de Fortran utilizaban tarjetas perforadas con 80 columnas. Sistema de procesamiento de datos por lotes y sistema offline Las tarjetas de control, aparecen en este tiempo, siendo estas las precursoras de los shells e intérpretes de comandos modernos, lo cual mejoro el uso de tarjetas perforadas, las computadoras se usaban principalmente para cálculos de ingeniería y científicos que se programaron en su mayoría en FORTRAN y lenguaje ensamblador. Los sistemas operativos que se utilizaban eran:
GM-NAA I/0 (Input and Output system o sistema de entrada/salida)Fue creado en 1956 por General Motors y la aviación de USA, estaba basado en sistema de procesamiento en lotes y su principal función era que ejecutaba automáticamente un nuevo programa una vez que había terminado la ejecución del anterior. El SOS (Share Operating System o Sistema operativo compartido) Creado en 1959, el primer sistema de usuario compartido, fue una mejora de GM-NAAI/O, proporciono nuevos métodos de manejo del buffer y la entrada/salida de dispositivos. El FMS (Fortran Monitor System o sistema de monitoreo Fortran) Un sistema operativo de IBM para compilar programas en FORTRAN. IBSYS Creado por IBM, basado en el FMS y SOS, fue era el sistema operativo de IBM 7090/94. 3. La tercera generación (1965 a 1980): circuitos integrados y multiprogramación: IBM system 360 En esta generación se destaca que a comienzos de la década de los 60 las computadoras erar incompatibles entre sí, por lo que resultaba ser una gran desventaja, ya que las compañías que las compraban debían gastar un suma económica bastante elevada para su mantenimiento.Para tratar de remendar lo anterior, IMB introduce la System/360 una serie de máquinas con software compatible, ya que presentaban una arquitectura similar para poder correr estos programas. La línea de IBM fue muy importante de computadoras que utilizaban los circuitos integrados, así ofrecían una ventaja respecto al precio y el rendimiento que las de la segunda generación. Esta idea fue tan innovadora que los demás fabricantes la adoptaron. Sin embargo la gran debilidad era crear software compatible con máquinas de pocos y extensos recursos ya que tenía que funcionar y presentar igual eficiencia en todos los equipos. Multiprogramación La multiprogramación en esta generación se hizo una técnica popular para crear los sistemas operativos, es básicamente particionar la memoria, cada una con distintos trabajos, lo que redujo en gran medida la brecha del tiempo ejecución y terminación de un trabajo con el siguiente. Otra técnica fue el Spooling u operación simultánea de periféricos en línea, permitía al sistema operativo ejecutar trabajos conforme era necesario, cada que terminaba una ejecución de un programa, el sistema operativo cargaba el siguiente en la partición que había quedado vacía y posteriormente lo ejecutaba, con esta técnica desapareció en gran medida el uso del transporte de cintas. A pesar de grandes avances, el tiempo de presentación de un trabajo y terminación de la misma seguía siendo de unas horas. Una respuesta a lo anterior, se opto por una variante de la multiprogramación llamada el tiempo compartido o el CTSS (sistema serio de tiempo compartido) en la que cada usuario tiene una terminal en línea y varios procesos podían ejecutarse en el CPU. Ante la popularidad de las técnicas, varios fabricantes emprendieron el desarrollo de un servicio de computadora, es decir, una máquina que diera apoyo a los usuarios de tiempo compartido simultáneos. El modelo desarrollado era el sistema de distribución de electricidad (si usted necesita electricidad, enchufe y obtenga tanto como necesite), posteriormente llamado MULTICS o servicio de información de computación multiplexada que ofrecía dar servicio a muchos usuarios, sin embargo esta idea se desvaneció al decaer los precios de las computadoras. MULTICS tuvo influencia sobre los sistemas. DEP PDP-1 Otro avance, fue el uso de las microcomputadoras como la DEC PDP-1 en 1961 , tenía 4K de palabras de 18 bits y se vendieron rápidamente, posteriormente aparecieron otras versiones de las PDP pero todas eran incompatibles, llego hasta la versión 11. La aparición de las PDP tuvo gran influencia en el desarrollo del sistema operativo UNIX, donde un programador escribió en una PDP-7 una versión reducida de MULTICS para un usuario. UNIX se dio a conocer principalmente en el mundo académico, el código fuente se podía obtener fácilmente y muchos desarrollaron sus versiones incompatibles entre sí. A razón de esto IEEE creo un estándar para UNIX llamado POSIX que define una interfaz de llamadas al sistema que todas las versiones de UNIX deben reconocer. 4. La cuarta generación (1980 a la actualidad): las PC o computadoras personales. Chips de silicio Los circuitos LSI o integración a gran escala, que contenían miles de transistores en un chip de silicio, fue un gran avance de la electrónica y ciertamente el principio de la computadoras personales. Intel fue la primera en presentar el microprocesador o CPU 8080 en 1974, a la cual le integraron un disco flexible de 8 pulgadas, convirtiéndola en la primera microcomputadora con disco, este avance se le atribuye a Gary Kildall, quien un tiempo después le escribe a la 8080 el sistema operativo basado en disco CP/M (programa de control para microcomputadoras). Digital reseach (compañía de Gary kindall) rediseño el CP/M para que pudiera correr en varios microprocesadores. A principios de los 80, IBM rediseña su IBM PC con un sistema operativo de Seattle Computers Products modificado por Microsoft, el MS-DOS
(sistema operativo en disco de Microsoft) que se basaba en características tomadas de UNIX. A pesar del avance, estos sistemas operativos se basaban en comandos mediante el teclado, esto cambio con la GUI o interfaz grafica de usuario, la cual Apple aprovecho con su Apple Macintosh que presentaba una interfaz amigable con el usuario. Al mismo tiempo Microsoft lanza Windows y 10 años más tarde Microsoft presenta otras versiones como Windows 95, seguido de Windows 98, NT de 32bits, NT 4.0, 2000, Me (millennium edition), XP, Vista y Win7, y próximamente se espera el lanzamiento oficial de Windows 8. Distribuciones de Windows Otro competidor destacado es UNIX y sus variantes, este es más fuertes en servidores tanto de redes como empresariales, pero cada vez se encuentra más en las PC, en especial en países como China o India, que son países que se desarrollan con rapidez, en las computadoras Pentium Linux se está convirtiendo en la alternativa de Windows entre los diferentes usuarios. Sistemas operativos en red El crecimiento de redes en computadoras personales en las que se ejecutan sistemas operativos de red o sistemas operativos distribuidos, fue una tendencia a mediados de los 80. En un sistema operativo de red los usuarios están conscientes de la existencia de múltiples computadoras y pueden ingresar en máquinas remotas y copiar archivos de una máquina a otra. Cada máquina ejecuta su propio sistema operativo local y tiene su propio usuario o usuarios locales. Estos sistemas necesitan controlador de la interfaz con la red y software de bajo nivel para operarlo, así como programas para realizar inicios de sesión remotos y acceso a archivos. En cambio un sistema distribuido se compone de múltiples procesadores en donde el sistema operativo tiene que administrar de forma eficiente y automática.