HISTORIA DE LOS SISTEMAS OPERATIVOS
Década 1940: A fines de los 40´s el uso de computadores estaba restringido a aquellas empresas o instituciones que podían pagar su alto precio, y no existían los sistemas operativos, en su lugar, el programador debía tener un conocimiento y contacto profundo con el hardware, y en el infortunado caso de que su programa fallara, debía examinar los valores de los registros y paneles de luces indicadores del estado de la computadora para determinar la causa del dallo y poder corregir su programa, además de enfrentarse nuevamente a los procedimientos de apartar tiempo del sistema y poner a punto los compiladores, limadores, etc.; para volver a correr su programa, es decir, enfrentaba el problema del procesamiento serial (serial processing).
Década 1950: La importancia de los sistemas operativos nace históricamente desde los 50´s, cuando se hizo evidente que el operar una computadora por medio de tableros enchufables en la primera generación y luego por medio del trabajo en lote en la segunda generación se podía mejorar notoriamente, pues el operador realizaba siempre una secuencia de pasos repetitivos, lo cual es una de las características contempladas en la definición de lo que es un programa, es decir, se comenzó a ver que las tareas mismas del operador podían plasmarse en un programa, el cual a través del tiempo y por su enorme complejidad se le llamo "sistema operativo". Así, tenemos entre los primeros sistemas operativos al Fortran Monitor Sistem ( FMS ) e IBSYS:
Sistemas Batch. Procesamiento se hace en lotes de tarjetas perforadas o jobs (trabajos).
El programador no interactúa directamente con el computador.
Un job es un lote de tarjetas perforadas por el programador mediante máquinas especialmente dedicadas para ese propósito llamadas máquinas perforadoras.
Software del sistema: Monitor Residente.
Ejemplo Sist. de IBM 701 y 704).
Década 1960: Una de las características de estos Sistemas Operativos fue el desarrollo de los sistemas compartidos con multiprogramación, y los principios del multiprocesamiento. En los sistemas de multiprogramación, varios programas de usuarios se encuentran al mismo tiempo en el almacenamiento principal, y el procesador se cambia rápidamente de un trabajo a otro. En los sistemas de multiprocesamiento se utilizan varios procesadores en un solo sistema computacional, con la finalidad de incrementar el poder de procesamiento de la máquina. La independencia de dispositivos aparece después. Un usuario que deseara escribir datos en una cinta en sistemas de la primera generación tenia que hacer referencia específica a una unidad en particular. En los sistemas de la segunda generación, el programa del usuario especificaba tan solo que un archivo iba a ser escrito en una unidad de cinta con cierto número de pistas y cierta densidad. El sistema operativo localizaba, entonces, una unidad de cinta disponible con las características deseadas, y le indicaba al operador que montara la cinta en esa unidad.
Multiprogramación Sistemas multiprogramados: Varios trabajos se conservan en memoria al mismo tiempo, y el CPU se comparte entre ellos.
Rutinas de E/S: Provista por el sistema ejecutadas simultáneamente con procesamiento del CPU.
Administración de memoria: El sistema debe reservar memoria para varios trabajos.
Administración del CPU: El sistema debe elegir entre varios trabajos listos para ejecución.
Administración de dispositivos.
Década 1970 (principios): Time-Sharing & minicomputadores.
Se inicia en 1964, con la introducción de la familia de computadores Sistema/360 de IBM. Los computadores de esta generación fueron diseñados como sistemas para usos generales . Casi siempre eran sistemas grandes, voluminosos, con el propósito de serlo todo para toda la gente. Eran sistemas de modos múltiples, algunos de ellos soportaban simultáneamente procesos por lotes, tiempo compartido, procesamiento de tiempo real y multiprocesamiento. Eran grandes y costosos, nunca antes se había construido algo similar, y muchos de los esfuerzos de desarrollo terminaron muy por arriba del presupuesto y mucho después de lo que el planificador marcaba como fecha de terminación.
Sistemas de Tiempo Compartido (Time Sharing). 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.
Con la creación de los circuitos LSI -integración a gran escala-, chips que contenían miles de transistores en un centímetro cuadrado de silicio, empezó el auge de los ordenadores personales. En éstos se dejó un poco de lado el rendimiento y se buscó más que el sistema operativo fuera amigable, surgiendo menús, e interfaces gráficas. Esto reducía la rapidez de las aplicaciones, pero se volvían más prácticos y simples para los usuarios. En esta época, siguieron utilizándose lenguajes ya existentes, como Smalltalk o C, y nacieron otros nuevos, de los cuales se podrían destacar: C++ y Eiffel dentro del paradigma de la orientación a objetos, y Haskell y Miranda en el campo de la programación declarativa. Un avance importante que se estableció a mediados de la década de 1980 fue el desarrollo de redes de computadoras personales que corrían sistemas operativos en red y sistemas operativos distribuidos. En esta escena, dos sistemas operativos eran los mayoritarios: MS-DOS(Micro Soft Disk Operating System), escrito por Microsoft para IBM PC y otras computadoras que utilizaban la CPU Intel 8088 y sus sucesores, y UNIX, que dominaba en los ordenadores personales que hacían uso del Motorola 68000.
Década 1970, 1980: Los sistemas de la cuarta generación constituyen el estado actual de la tecnología. Muchos diseñadores y usuarios se sienten aun incómodos, después de sus experiencias con los sistemas operativos de la tercera generación.
Con la ampliación del uso de redes de computadores y del procesamiento en línea los usuarios obtienen acceso a computadores alejados geográficamente a través de varios tipos de terminales.
Los sistemas de seguridad se ha incrementado mucho ahora que la información pasa a través de varios tipos vulnerables de líneas de comunicación. La clave de cifrado esta recibiendo mucha atención; han sido necesario codificar los datos personales o de gran intimidad para que; aun si los datos son expuestos, no sean de utilidad a nadie mas que a los receptores adecuados.
Década 1990: Los Sistemas Operativos que dominaron el campo de las computadoras personales fueron UNIX, MS-DOS y los sucesores de Microsoft para este Sistema: Windows 95/98, Windows NT y Windows 2000. Durante esta época el desarrollo de Linux tuvo una gran importancia. Linux es un sistema operativo similar a UNIX, desarrollado por miles de voluntarios. Durante esta década se desarrollaron sistemas operativos en tiempo real. Algunos ejemplos son: QNX (QNX 1997), RTEMS y VRTX (Ready 1986). En cuanto a las interfaces de programación, durante esta etapa tiene importancia el desarrollo POSIX. Este estándar persigue que las distintas aplicaciones que hagan uso de los servicios de un sistema operativo sean potables sin ninguna dificultad a distintas plataformas con sistemas operativos diferentes. La evolución de los sistemas operativos se va orientar hacia las plataformas distribuidas y la computación móvil e inalámbrica. Gran importancia tendrá la construcción de sistemas operativos y entornos que permitan utilizar estaciones de trabajo heterogéneas (computadoras de diferentes fabricantes con sistemas operativos distintos) conectadas por redes de interconexión, como una gran máquina centralizada, lo que permitirá disponer de una mayor capacidad de cómputo y facilitará el trabajo cooperativo.