Década 1940: Primero computadores
La lógica o software de los ordenadores se ha complicado conforme han evolucionado éstos. Los primeros ordenadores, a partir de 1944 en que Aiken construyó el Mark-I, sólo podían programarse en lenguaje máquina, y puede decirse que el Sistema Operativo aún no existía.
J. V. Neumann fue quien dio el primer paso en la informática y en las relaciones hombre-máquina con el concepto de programa almacenado, que consiste en archivar en el ordenador un conjunto de instrucciones máquina para posteriormente ejecutarlas. La aparición del Assembler, lenguaje nemotécnico-simbólico, constituyó un gran avance sobre la primitiva programación en código máquina. La forma de explotar los sistemas ha ido evolucionando con el tiempo; los más sencillos funcionaban con monoprogramación. Monoprogramación o monoejecución es el sistema de explotación en el que se ejecuta solamente un programa cada vez y no comienza la ejecución de otro hasta terminar con el anterior.
En 1948, con Noam Chomsky, surge la teoría de las gramáticas generativas transformacionales, que es la base de los traductores de lenguajes. En 1955 comenzó el desarrollo de los lenguajes de alto nivel, y al mismo tiempo se empezó a dividir el trabajo entre personas: operadores y programadores. Las funciones del operador tenían más directamente que ver con la administración y control de los recursos del Sistema Operativo y la carga de trabajos, y las de los programadores con la codificación de los programas.
El monitor es el programa antepasado del Sistema Operativo. Abarca funciones muy elementales, como visualizar y modificar los contenidos de la memoria principal, el lanzamiento automático para la ejecución de un programa, la introducción de puntos de ruptura en los programas para puesta a punto, etc. Gracias al monitor apareció el concepto de secuencia automática de trabajos.
Actualmente, al estar superado el concepto de monoprogramación, es frecuente que tengamos que familiarizarnos con los conceptos de multiprogramación, tiempo compartido, multiproceso y tiempo real.
Década 1950: Procesamiento Batch.
Algunos programas conocidos que pueden funcionar en modo por lotes: R-project, gnuplot, GNU Octave, Adobe Photoshop, command.com, EXEC II, entre otros muchos.
Realmente, casi cualquier programa puede ejecutar en modo batch, siempre y cuando pueda especificarse los distintos pasos de ejecución o las entradas de usuario a partir de un script.
Importante no confundir los programas o archivos .bat de los sistemas batch (de los cuales heredan su nombre debido a su metodología). Como bien esta explicado mas arriba, estos archivos se ejecutan de manera secuencial, y cerrando la ejecución al usuario ya que este no puede interactuar ni intervenir en el programa que se ejecuta.
Frente a este tenemos los 'Sistemas por batch', los cuales son una manera de llevar a cabo el proceso de la información, en lenguaje llano, una manera de hacer informática, en estos sistemas los programas y tareas se ejecutan de manera secuencial, no porque el programa lo exija como es el caso de los .bat, sino porque no conocía otra forma de ejecución.
Década 1960: Multiprogramación.
Durante la segunda generación , al menos un proveedor ofrecía un sistema de multiprocesamiento, que era un sistema de computo que tenía más de una unidad central de proceso. En realidad el sistema consistía en dos computadoras completas; las computadora más pequeña tenía un sistema operativo y controlaba ambas máquinas. La computadora más grande era esclava de la más pequeña. La computadora pequeña procesaba la entrada de información y ordenaba e imprimía toda la salida utilizando todos los discos como entrada de almacenamiento temporal. Un sistema operativo ubicado en la computadora más grande indicaba a la máquina de control que necesitaba servicio.
Sistemas en línea :Los primeros sistemas en líneas presentaban programas de sistema operativo diseñados especialmente para controlar los recursos de la computadora. Los programas de aplicación de un sistema en linea expresan la lógica de aplicación y los llamados mediante programas de sistemas.
El supervisor de un sistema en línea establece una serie de colas y programa el servicio. Primero se arma un mensaje de entrada en un buffer de comunicaciones; puede cambiarse el código de este mensaje y trasladarse a una cola de entrada en la memoria mediante un programa de aplicación. El sistema operativo registra este mensaje en la cola de mensajes a procesarse.
Cuando la unidad central de proceso esta disponible el supervisor le ordena que atienda una cola, por ejemplo la que contiene un mensaje de entrada. Un programa de aplicación llamado mediante el sistema operativo puede verificar la corrección del mensaje, después de lo cual el mensaje se coloca en una cola de trabajo.
El nacimiento del tiempo compartido : Los primeros sistemas de negocios también estaban utilizando sistemas operativos para sus equipos de segunda generación. Cuando fue anunciada la tercera generación de computadoras los fabricantes claramente habían abrazado la idea de un sistema operativo. La línea 360 de la IBM no podía funcionar sin la ayuda de tal sistema operativo maneja toda la entrada/salida por medio de interrupciones. De hecho existen interrupciones especiales que la computadora solo puede ejecutar cuando está en estado supervisor, bajo el control de los sistemas operativos.
Esta generación se caracteriza por la utilización de la tecnología que incluye transistores. Estos proporcionan mejores características que los tubos al vacío: son más pequeños, disipan menos calor y son más rápidos.
En esta época, ya no hay un solo grupo que se dedica a diseñar, construir, operar y mantener el sistema computacional, sino que la mantención la realizan otras personas. La programación, en este período se ve apoyada por la creación de lenguajes ensambladores y lenguajes de alto nivel; como Fortran y Cobol .
Para optimizar el tiempo de utilización del sistema computacional, se adoptó el Procesamiento por Lotes. Este procedimiento se puede resumir en los siguientes pasos:
•Varios trabajos son leídos desde tarjetas perforadas y almacenados en cinta
•El computador ejecuta programas que lee de una cinta y escribe los resultados en otra cinta.
•Los resultados escritos en la cinta son desplegados a través de la impresora.
Como consecuencia de la utilización de tecnología de mejores características, el procesamiento por lotes, la utilización de un operador de sistema y un sistema operativo primitivo se logró minimizar el tiempo ocioso de los computadores.
Década 1970 (principios): Time-Sharing & minicomputadores
Trabajo interactivo con el computador a través de terminales.
Nace el concepto de Proceso.
Asignación de tiempo de CPU por tajadas de tiempo.
Ya no se habla de tiempo de despacho de un job, sino que tiempo de respuesta.
Núcleos monolíticos. Todas las funciones y servicios del sistema operativo están dentro del núcleo.
Espacio de direcciones virtuales para cada proceso, utilizando mecanismos de segmentación o paginación.
Sistemas Operativos: Unix, VAX/VMS, AS/400.
Década 1980 (principio): Microprocesadores & PC.
Esta generación se caracteriza por la utilización de los microprocesadores para la construcción de computadores de menor tamaño, haciendo posible que una sola persona tuviera su propio computador personal. Los computadores personales con mayores capacidades y que se empezaron a utilizar en la empresa y en las universidades recibieron el nombre de estaciones de trabajo.
Durante esta generación aparecen los sistemas operativos que proporcionan una interfaz más amigable al usuario, esto se traduce en mejores herramientas de interacción con el computador, tales como capacidades gráficas, íconos, sistemas de menús, etc.
Los sistemas operativos que cobran gran popularidad en este período son MS-DOS de Microsoft y UNIX. Este último tuvo sus primeros desarrollos en Berkeley y posteriormente en AT&T.
DOS (sistema operativo en disco)
VERSIONES:
PC-DOS (IBM)
DR-DOS (Digital Research)
MS-DOS 1.0 Abril 1981
1.1
2.0
3.0
3.1
3.2
MS-DOS (Microsoft) ! 3.3
! 4.0
5.0
! 6.0
6.2
7.0 Agosto 1995
Se trata del 1º sistema operativo creado para ordenadores personales en la década de los 80 dado que los sistemas anteriores fueron creados para maquinas grandes en entornos de empresa. A lo largo del tiempo pugnaron tres fabricantes por la hegemonía del mercado hasta que en la década de los 90 con la aparición de las 1as plataformas de Windows 3.0 3.1 y 3.11 Microsoft se queda sola por la retirada de los demás aunque ya IBM lo había dejado mucho tiempo antes.
Se trata de un sistema operativo grabado sobre disco de modo que se ha de encontrar permanentemente activo y residente para poder trabajar con esa maquina.
Esto ahora parece intrascendente ya que todos los sistemas operativos (Windows, Windows9.x, unix, linux, etc..) Están ocupando algunos de los discos duros del ordenador pero al principio los ordenadores no tenían disco duro ya que aun no se habían inventado y por tanto se encontraba en un diskette que debía estar permanentemente introducido con el agravante de que solo había una disquetera.
Entre todas las versiones que salieron al mercado y omitiendo las primeras muy dependientes de la rudimentaria tecnología de entonces son las versiones 3.3,4.0 y 6.2 las que tuvieron un mayor éxito comercial. En la actualidad la versión 7.0 aun siendo la más reciente no es la mas difundida ya que esta muy arraigada la 6.22. Por otro lado estas versiones han dejado paso a aquellas otras que dependen de Windows como sistema mayoritariamente extendido pasando a adoptar la numeración de la versión de Windows.
CARACTERISTICAS DEL SISTEMA
a)Monotarea.- Ya que no dispone de gestores de memoria protegida para ejecutar cada aplicación o proceso en su espacio individual de memoria distribuyendo las zonas del mapa que se han visto según las necesidades del programa para el solo.
b)Monopuesto.- Ya que no permite gestionar espacios de memoria distintos para diferentes usuarios
c)Monoproceso.-Porque no esta diseñado para trabajar con mas de un procesador a la vez y tampoco ninguna de las aplicaciones desarrolladas para ver esto.
d)Entorno de texto.- Con fondo negro y ejecucion en modo carácter por medio de comandos u ordenes y sus parametros cuya sintaxis se ha de respetar.
El arranque de un sistema gobernado por el DOS se produce escalonadamente cargandose en la memoria una serie de modulos de diferentes programas del DOS que se encargaran de todas las operaciones
Década 1970, 1980: Redes, Sistemas Distribuidos, Sistemas Paralelos.
El núcleo se denomina microkernel, que proporciona un conjunto de servicios esenciales (comunicación, procesos, y memoria virtual).
El resto de los servicios del microkernel se implementan como servidores, que corren en modo usuario.
La idea es mantener un núcleo lo mas pequeño posible.
Una llamada al sistema puede consistir en un mensaje entre un proceso servidor y el microkernel.
Los procesos servidores y el microkernel se ejecutan en espacio de direcciones diferentes.
Ejemplos: Mach, Chorus, Amoeba.
Década 1990 y Futuro: PC’s, WWW, Sistemas Móviles (redes móviles e inalámbricas), Sistemas Distribuidos.
Desde aproximadamente mediados de los '80 surgió el crecimiento de las redes de computadores con sistemas operativos de red y sistemas operativos distribuidos.
En los sistemas operativos de red cada computador tiene su propia copia de sistema operativo, los usuarios saben que existen varios computadores, pueden conectarse explícitamente a diferentes máquinas remotas para transferir archivos, hacer búsquedas, etc.
En los sistemas operativos distribuidos existe una integración real de los recursos, la red es transparente a los usuarios, es decir, que éstos pueden no darse cuenta de la existencia de varias máquinas conectadas. Sobre este tipo de sistema operativo, una tarea puede ser ejecutada en varios nodos a la vez, pues existen facilidades de migración de procesos. Además este sistema computacional puede crecer fácilmente y la tolerancia a fallas se realiza en mejor forma (la tolerancia a fallas está relacionada con la confiabilidad, por ejemplo, si un computador falla puede seguir operando en su reemplazo).
El desarrollo de los sistemas computacionales de los últimos tiempos ha generado un conjunto de estándares, que han servido de base para futuros desarrollos de fabricantes que trabajan en conjunto. Dentro de los estándares más conocidos se encuentran los siguientes:
•Estándares de comunicaciones abierto
◦Modelo OSI (Open System Interconection), desarrollado por I SO.
•Estándares de sistemas operativos abiertos
◦POSIX (IEEE standar 1003.1)
◦SVID (System V Interfase Definition)
•Estándares de interfaces de usuarios abiertos
◦X Windows desarrollado por MIT
•Estándares de aplicaciones de usuarios abiertos
◦X/Open
OSF (Open Software Foundation)
La mezcla de sistemas continúa durante la tercera y cuarta generación. Ahora pueden tenerse aplicaciones en tiempo compartido, en línea y en batch procesándose simultáneamente en el mismo sistema de cómputo. Además existen nuevos paquetes para reducir los problemas del desarrollo de sistemas en línea.
El sistema operativo consiste en una serie de manejadores y cada manejador debe lograr lo siguiente: controlar los recursos; hacer cumplir las políticas en cuanto a qué, quién y cuánto del recurso se asigna; asignar el recurso, y recuperar el recurso.
Las tendencias de futuro prevén el desarrollo de Sistemas Operativos con potencialidad de:
- Explotación del proceso en paralelo y de forma concurrente.
- Integración mediante informática corporativa del tratamiento en distintos Sistemas Operativos de micros, minis y mainframes, a través de interfaces gráficas de usuario y la arquitectura cliente-servidor.
Avances Evolutivos
La tercera y media generación de hardware trajo consigo modificaciones y mejoras a los sistemas operativos. El avance más importante fue sacar el concepto de la memoria virtual fuera del dominio exclusivo del tiempo compartido e incluirlo en los sistemas batch. Para facilitar los esquemas de la memoria virtual, un fabricante adicionó hardware especial para ayudar a traducir las direcciones virtuales. Los programas utilizan direcciones que sobrepasan el tamaño de la memoria primaria de la computadora en un sistema virtual, y es necesario hacer un mapa de estas direcciones en el espacio de la memoria física. Este mapeo puede lograrse mediante software o hardware.