You are on page 1of 8

Historia y evolucin de los sistemas operativos

Un sistema operativo no tiene sentido sin una mquina a la cual proveer los servicios
correspondientes. Como vimos en la clase pasada, un sistema operativo es un conjunto de
programas que trabajan para cumplir una serie de funciones, en esencia dos: a) proporcionar
una interfaz ms sencilla a los usuarios (programas o humanos); b) administrar los recursos del
Hardware, ya sea en el tiempo como en el espacio.
Debido a esto es que su historia y su evolucin estn ntimamente ligadas a la historia y
evolucin del hardware que soportan, y es por eso que debemos insistir en conocer esa historia.
Adems, cualquier hito importante en la historia de los Sistemas Operativos, repercutir en la
evolucin posterior, es decir, una vez que se ha realizado un descubrimiento que mejora
sustancialmente el funcionamiento (por ejemplo: un algoritmo de reemplazo de pgina), los
programadores posteriores podrn aprovechar ese descubrimiento en sus futuros desarrollos.
Antes de las Computadoras Digitales
El primer ordenador digital verdadero fue diseado por el matemtico ingls Charles Babbage
(1792-1871). Aunque Babbage gast la mayor parte de su vida y de su fortuna intentando
construir su mquina analtica, nunca logr que funcionara adecuadamente debido a que era
una mquina puramente mecnica, y la tecnologa de su poca no era capaz de producir las
ruedas, engranajes y levas necesarias con la suficiente precisin que se necesitaba.
La mquina analtica careca por completo de un sistema operativo. Babbage se dio cuenta de
que necesitara software para su mquina, por lo que contrat a una joven mujer llamada Ada
Lovelace, hija del famoso poeta ingls Lord Byron, como la primera programadora de la historia.
El lenguaje de programacin Ada se llama as en su honor.
Tras los infructuosos esfuerzos de Babbage, hubo pocos avances en la construccin de
computadoras digitales hasta la Segunda Guerra Mundial.
En torno a mediados de la dcada de 1940, Howard Aiken en Harvard; y Konrad Zuse en
Alemania, entre otros, tuvieron todos xito en la construccin de mquinas de calcular.
Howard Aiken Harvard Mark I: El IBM Automatic Sequence Controlled Calculator (ASCC), ms
conocido como Harvard Mark I o Mark I, fue el primer ordenador electromecnico, construido
en IBM y enviado a Harvard en 1944. Tena 760.000 ruedas y 800 kilmetros de cable y se
basaba en la mquina analtica de Charles Babbage. El computador empleaba seales
electromagnticas para mover las partes mecnicas. Esta mquina era lenta (tomaba de 3 a 5
segundos por clculo) e inflexible (la secuencia de clculos no se poda cambiar); pero ejecutaba
operaciones matemticas bsicas y clculos complejos de ecuaciones sobre el movimiento
parablico. Funcionaba con rels, se programaba con interruptores y lea los datos de cintas de
papel perforado. La Mark I se programaba recibiendo sus secuencias de instrucciones a travs
de una cinta de papel, en la cual iban perforadas las instrucciones y nmeros que se transferan
de un registro a otro por medio de seales elctricas. El tiempo mnimo de transferencia de un
nmero de un registro a otro y en realizar cada una de sus operaciones bsicas (resta, suma,
multiplicacin y divisin) era de 0,3 segundos. Aunque la divisin y la multiplicacin eran ms
lentas. La capacidad de modificacin de la secuencia de instrucciones con base en los resultados
producidos durante el proceso de clculo era pequeo. La mquina poda escoger de varios
algoritmos para la ejecucin de cierto clculo. Sin embargo, para cambiar de una secuencia de
instrucciones a otra era costoso, ya que la mquina se tena que detener y que los operarios
cambiaran la cinta de control. Por tanto, se considera que la Mark I no tiene realmente saltos
condicionales.
Konrad Zuse - Z3: La computadora Z3 fue la primera mquina programable y completamente
automtica, caractersticas usadas para definir a un computador. De tecnologa
electromecnica, estaba construido con 2300 rels, tena una frecuencia de reloj de ~5 Hz, y una
longitud de palabra de 22 bits. Los clculos eran realizados con aritmtica de punto flotante
puramente binaria. La mquina fue completada en 1941.
Estas primeras computadoras utilizaban rels mecnicos por lo que eran muy lentas, con
tiempos de ciclo medidos en trminos de segundos.
La Primera Generacin de computadoras (1945-1955): Tubos de Vaco y Tableros de
Conexiones
La generacin 0 de Sistemas Operativos
John P. Eckert y John W. Mauchly construyeron en 1946, en la Universidad de Pennsylvania, el
ENIAC, primer computador electrnico, compuesto de 17.468 vlvulas o tubos de vidrio al vaco
(ms resistencias, condensadores, etc.), con 32 toneladas de peso, 2,40 de ancho y 30 metros de
largo. El calor de las vlvulas elevaba la temperatura del local hasta los 50. Para efectuar
diferentes operaciones, deban cambiarse las conexiones (cables) como en las viejas centrales
telefnicas, lo cual era un trabajo que poda tomar varios das. Era capaz de calcular con gran
velocidad la trayectorias de proyectiles, principal objetivo inicial de su construccin.
A fines de los 40s el uso de computadores estaba restringido a aquellas empresas o
instituciones que podan pagar su alto precio, y no existan los sistemas operativos.
El programador deba tener un conocimiento y contacto profundo con el hardware, y en el
infortunado caso de que su programa fallara, deba examinar los valores de los registros y
paneles de luces indicadores del estado de la computadora para determinar la causa del dao y
poder corregir su programa, adems de enfrentarse nuevamente a los procedimientos de
apartar tiempo del sistema y poner a punto los compiladores, etc.; para volver a correr su
programa, es decir, enfrentaba el problema del procesamiento serial (serial processing).
La segunda Generacin de Computadoras
Generacin I de Sistemas Operativos Aos 50
La introduccin del transistor a mediados de la dcada de 1950 cambi radicalmente el
panorama. Los computadores se volvieron lo bastante fiables como para fabricarse y venderse a
clientes dispuestos a pagar por ellos con la confianza de que les seguiran funcionando el tiempo
suficiente como para completar algn trabajo til. Por primera vez hubo una separacin clara
entre diseadores, constructores, operadores, programadores y personal de mantenimiento.
Con el objeto de facilitar la interaccin entre persona y computador, los sistemas operativos
hacen una aparicin discreta y bastante simple, con conceptos tales como el monitor residente,
el proceso por lotes y el almacenamiento temporal.
Monitor residente: Segn fue avanzando la complejidad de los programas, fue necesario
implementar soluciones que automatizaran la organizacin de tareas sin necesidad de un
operador. Debido a ello se crearon los monitores residentes: programas que residan en
memoria y que gestionaban la ejecucin de una cola de trabajos. Un monitor residente estaba
compuesto por un cargador, un Intrprete de comandos y un Controlador (drivers) para el
manejo de entrada/salida.
Procesamiento por Lotes: Los sistemas operativos por lotes requieren que la informacin est
reunida en bloque o "lote" (el programa, los datos, y las instrucciones). Los trabajos son
procesados en el orden de admisin, segn el modelo de "primero en llegar primero en ser
atendido". En estos sistemas la memoria se divide en dos zonas. Una de ellas es ocupada por el
sistema operativo, y la otra se usa para cargar programas transitorios para su ejecucin. Cuando
termina la ejecucin de un programa se carga un nuevo programa en la misma zona de
memoria.
La idea consista en llenar completamente una bandeja de trabajos procedentes del cuarto de
entrada para luego pasarlos a una cinta magntica, empleando un computador pequeo y
(relativamente) barato, como el IBM 1401, el cual era muy bueno para leer tarjetas, copiar
cintas e imprimir salidas, pero realmente penoso para realizar clculos numricos.
Otras mquinas mucho ms caras, como el IBM 7094, realizaban los clculos propiamente
dichos
Lo primero era una tarjeta $JOB, que especificaba el tiempo de ejecucin mximo expresado en
minutos, el nmero de cuenta al cual cargar el coste del procesamiento y el nombre del
programador. Luego vena una tarjeta $FORTRAN, que indicaba al sistema operativo que deba
cargar el compilador de FORTRAN de la cinta del sistema. Despus vena el programa a compilar
y luego una tarjeta $LOAD, que indicaba al sistema operativo que deba cargar en memoria el
programa objeto recin compilado. A continuacin vena la tarjeta $RUN, que indicaba al
sistema operativo que deba ejecutar el programa con los datos que venan a continuacin de
esa tarjeta. Por ltimo, la tarjeta END marcaba el final del trabajo. Estas primitivas tarjetas de
control fueron las precursoras de los lenguajes de control de trabajos e intrpretes de comandos
modernos.
Almacenamiento Temporal: Se avanza en el hardware, creando el soporte de interrupciones.
Luego se lleva a cabo un intento de solucin ms avanzado: solapar la E/S de un trabajo con sus
propios clculos. Por ello se crea el sistema de buffers con el siguiente funcionamiento:
Un programa escribe su salida en un rea de memoria (buffer 1).
El monitor residente inicia la salida desde el buffer y el programa de aplicacin calcula
depositando la salida en el buffer 2.
La salida desde el buffer 1 termina y el nuevo clculo tambin.
Se inicia la salida desde el buffer 2 y otro nuevo clculo dirige su salida al buffer 1.
El proceso se puede repetir de nuevo.
Los problemas surgen si hay muchas ms operaciones de clculo que de E/S (limitado por la
CPU) o si por el contrario hay muchas ms operaciones de E/S que clculo (limitado por la E/S).
Multiprocesador: Permite trabajar con mquinas que poseen ms de un microprocesador. Se
denomina multiprocesador a un computador que cuenta con dos o ms microprocesadores
(CPUs). Gracias a esto, el multiprocesador puede ejecutar simultneamente varios hilos
pertenecientes a un mismo proceso o bien a procesos diferentes. Los multiprocesadores
presentan problemas de diseo que no se encuentran en computadoras monoprocesador. Estos
problemas derivan del hecho de que dos programas pueden ejecutarse simultneamente y,
potencialmente, pueden interferirse entre s. Concretamente, en lo que se refiere a las lecturas y
escrituras en memoria. Existen dos arquitecturas que resuelven estos problemas:
La arquitectura NUMA, donde cada procesador tiene acceso y control exclusivo a una parte de la
memoria.
La arquitectura SMP, donde todos los procesadores comparten toda la memoria. Esta ltima
debe lidiar con el problema de la coherencia de cach. Cada microprocesador cuenta con su
propia memoria cache local. De manera que cuando un microprocesador escribe en una
direccin de memoria, lo hace nicamente sobre su copia local en cach. Si otro
microprocesador tiene almacenada la misma direccin de memoria en su cach, resultar que
trabaja con una copia obsoleta del dato almacenado.
Para que un multiprocesador opere correctamente necesita un sistema operativo especialmente
diseado para ello. La mayora de los sistemas operativos actuales poseen esta capacidad.
Spoolers: Hace aparicin el disco magntico con lo que surgen nuevas soluciones a los
problemas de rendimiento. Se eliminan las cintas magnticas para el volcado previo de los datos
de dispositivos lentos y se sustituyen por discos (un disco puede simular varias cintas). Debido al
solapamiento del clculo de un trabajo con la E/S de otro trabajo se crean tablas en el disco para
diferentes tareas, lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line)
Aos 60
En los aos 60 se produjeron cambios notorios en varios campos de la informtica, con la
aparicin del circuito integrado orientados a seguir incrementando el potencial de los
computadores. Para ello se utilizaban tcnicas de lo ms diversas:
Multiprogramacin: En un sistema multiprogramado la memoria principal alberga a ms de un
programa de usuario. La CPU ejecuta instrucciones de un programa, cuando el que se encuentra
en ejecucin realiza una operacin de E/S; en lugar de esperar a que termine la operacin de
E/S, se pasa a ejecutar otro programa. Si ste realiza, a su vez, otra operacin de E/S, se mandan
las rdenes oportunas al controlador, y pasa a ejecutarse otro. De esta forma es posible,
teniendo almacenado un conjunto adecuado de tareas en cada momento, utilizar de manera
ptima los recursos disponibles.
Tiempo compartido: En este punto tenemos un sistema que hace buen uso de la electrnica
disponible, pero adolece de falta de interactividad; para conseguirla debe convertirse en un
sistema multiusuario, en el cual existen varios usuarios con un terminal en lnea, utilizando el
modo de operacin de tiempo compartido. En estos sistemas los programas de los distintos
usuarios residen en memoria. Al realizar una operacin de E/S los programas ceden la CPU a
otro programa, al igual que en la multiprogramacin. Pero, a diferencia de sta, cuando un
programa lleva cierto tiempo ejecutndose el sistema operativo lo detiene para que se ejecute
otro aplicacin. Con esto se consigue repartir la CPU por igual entre los programas de los
distintos usuarios, y los programas de los usuarios no se sienten demasiado lentos por el hecho
de que los recursos sean compartidos y aparentemente se ejecutan de manera concurrente.
Tiempo real: Estos sistemas se usan en entornos donde se deben aceptar y procesar en tiempos
muy breves un gran nmero de sucesos, en su mayora externos al computador. Si el sistema no
respeta las restricciones de tiempo en las que las operaciones deben entregar su resultado se
dice que ha fallado. El tiempo de respuesta a su vez debe servir para resolver el problema o
hecho planteado. El procesamiento de archivos se hace de una forma continua, pues se procesa
el archivo antes de que entre el siguiente, sus primeros usos fueron y siguen siendo en
telecomunicaciones. Ej: Centrales Telefnicas Digitales
Sistemas operativos de esta poca: Adems del Atlas Supervisor y el OS/360 (que uniformiza
todos los modelos IBM), los sesenta marcaron el inicio de UNIX, a mediados de los 60 aparece
Multics, sistema operativo multiusuario - multitarea desarrollado por los laboratorios Bell de
AT&T y programado en PL/1 uno de los pocos SO desarrollados en un lenguaje de alto nivel en
aquel tiempo, luego del fracaso del proyecto, UNIX comienza a desarrollarse a partir de este a
finales de la dcada.
Aos 70
Debido al avance de la electrnica, pudo empezar a crearse circuitos con miles de transistores en
un centmetro cuadrado de silicio, lo que llevara, pocos aos despus, a producir los primeros
sistemas integrados. sta dcada se podra definir como la de los sistemas de propsito general
y en ella se desarrollan tecnologas que se siguen utilizando en la actualidad. Es en los aos 70
cuando se produce el boom de los mini computadores y la informtica se acerca al nivel de
usuario. En lo relativo a lenguajes de programacin, es de sealar la aparicin de Pascal y C, el
ltimo de los cuales se cre especficamente para reescribir por completo el cdigo del sistema
operativo Unix, convirtindolo en uno de los pocos SO escritos en un lenguaje de alto nivel.
En el campo de la programacin lgica se dio a luz la primera implementacin de Prolog, y en la
revolucionaria orientacin a objetos, Smalltalk.
Inconvenientes de los sistemas existentes: Se trataba de sistemas grandes y costosos, pues
antes no se haba construido nada similar y muchos de los proyectos desarrollados terminaron
con costos muy por encima del presupuesto y mucho despus de lo que se marcaba como fecha
de finalizacin. Adems, aunque formaban una capa entre el hardware y el usuario, ste deba
conocer un complejo lenguaje de control para realizar sus trabajos. Otro de los inconvenientes es
el gran consumo de recursos que ocasionaban, debido a los grandes espacios de memoria
principal y secundaria ocupados, as como el tiempo de procesador consumido. Es por esto que
se intent hacer hincapi en mejorar las tcnicas ya existentes de multiprogramacin y tiempo
compartido.
Sistemas operativos desarrollados en esta poca:
MULTICS (Multiplexed Information and Computing Service): Originalmente era un proyecto
cooperativo liderado por Fernando Corbat del MIT, con General Electric y los laboratorios Bell,
que comenz en los 60, pero los laboratorios Bell abandonaron en 1969 para comenzar a crear
el sistema UNIX. Se desarroll inicialmente para el mainframe GE-645, un sistema de 36 bits;
despus fue soportado por la serie de mquinas Honeywell 6180. Fue uno de los primeros
sistemas operativos de tiempo compartido, que implement un solo nivel de almacenamiento
para el acceso a los datos, desechando la clara distincin entre los archivos y los procesos en
memoria, y uno de los primeros sistemas multiprocesador.
CP/M (Control Program/Monitor): Desarrollado por Gary Kildall para el microprocesador
8080/85 de Intel y el Zilog Z80, sali al mercado en 1976, distribuyndose en disquetes de ocho
pulgadas. Fue el SO ms usado en las computadoras personales de esta dcada. Su xito se
debi a que era porttil, permitiendo que diferentes programas interactuasen con el hardware
de una manera estandarizada. Estaba compuesto de tres subsistemas:
CCP Procesador Control de Comandos.
BDOS Sistema Operativo Bsico en Disco.
BIOS Sistema de Entrada y Salida Bsico, (dependiente de la mquina)
CCP era un Intrprete de comandos que permita introducir mandatos y sus parmetros
separados por espacios. Unos pocos de estos mandatos eran internos al propio Sistema
Operativo. Pero si el mandato no era reconocido, se buscaba un programa con el mismo nombre
en el directorio actual del disco. Permitiendo traducir los mandatos del usuario en un conjunto
de instrucciones de alto nivel destinadas al sistema bsico en disco. As mismo, los programas
podan comunicarse con BDOS para realizar tareas abstractas tales como "abrir fichero", luego,
el BDOS traduca dichas instrucciones en llamadas a la BIOS de la computadora.
Aos 80
Con la creacin de los circuitos LSI -integracin a gran escala-, chips que contenan miles de
transistores en un centmetro cuadrado de silicio, empez el auge de los ordenadores
personales. En stos se dej un poco de lado el rendimiento y se busc ms que el sistema
operativo fuera amigable, surgiendo menes, e interfaces grficas. Esto reduca la rapidez de las
aplicaciones, pero se volvan ms prcticos y simples para los usuarios.
En esta poca, siguieron utilizndose lenguajes ya existentes, como Smalltalk o C, y nacieron
otros nuevos, de los cuales se podran destacar: C++ y Eiffel dentro del paradigma de la
orientacin a objetos. Un avance importante que se estableci a mediados de la dcada de 1980
fue el desarrollo de redes de computadoras personales que corran sistemas operativos en red y
sistemas operativos distribuidos. En esta escena, dos sistemas operativos eran los mayoritarios:
MS-DOS, 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 hacan uso del
Motorola 68000.
MS DOS: En 1975, en Harvard, Bill Gates y Paul Allen programaban un lenguaje de
programacin (BASIC) para el primer micro ordenador: el Altair. Fue entonces cuando
decidieron abandonar los estudios y crear su propia empresa: Microsoft. En 1980 la IBM decidi
ingresar al mercado de las computadoras personales, y fue tal su prisa que primero desarroll su
arquitectura de hardware, para despus buscar el sistema operativo. Pensaron en primer lugar
en Gary Kildall, fundador de la Digital Research Inc. y autor CP/M. Con criterio especulativo,
Kildall viaj a Florida en compaa de su esposa y se dedic a divertirse, realizar vuelos en
avioneta, etc. y no atenda las desesperadas llamadas telefnicas de IBM. Enterado de esta
situacin Bill Gates acudi a una empresa llamada Seattle Computer Products, para la cual
trabajaba el Ing. Tim Paterson, quien haba clonado CP/M, el cual evidentemente haba sido
desensamblado y alterado, al que denomin Quick and Dirty D.O.S o QDOS. En 1981 Microsoft,
adquiri los "derechos de autor" de este sistema operativo, por US $ 50,000 y contrat a Tim
Paterson, para que trabajase 4 das a la semana, con el objeto de que realizara "algunos
cambios", para poder "transformar" al sistema. Este mismo producto "mejorado" por Microsoft,
fue vendido a la IBM, bajo el nombre de PC-DOS y Microsoft se reserv el derecho de poder
comercializarlo bajo el nombre de MS-DOS. Microsoft vendi el sistema a IBM quien permiti a
Bill no incluir en esa venta la exclusividad de su uso. IBM tena su IBM-DOS, pero Microsoft
tambin lo tena con el nombre de MS-DOS.
Apple Macintosh: El lanzamiento oficial se produjo en enero de 1984, al precio de 2.495 dlares.
Muchos usuarios, al ver que estaba completamente diseado para funcionar a travs de una GUI
(Graphic User Interface), acostumbrados a la lnea de comandos, lo tacharon de juguete. A pesar
de todo, el Mac se situ a la cabeza en el mundo de la edicin a nivel grfico. A Steve Jobs
Fortune Magazine lo ha denominado el businessman ms poderoso del medio dentro de su
Top25. Despus de una tormentosa historia de Steve como Fundador de Apple Computer
y despus de una inminente quiebra, Steve vuelve con el gadget mas deseado por todos: el iPod
ese aparatito que hizo que Apple renaciera como un Fenix. Con el mercado en sus manos Steve
lanzo iTunes Music Store que fue la puerta a la grandeza y riqueza. Con el mundo a sus pies
Steve mostr al mundo que aun faltan cosas por conocer. Claro que mas el Gadget del ao el
iPhone.
Aos 90
GNU/Linux: Linux naci gracias a la idea de Linus Torvalds de crear un sistema basado en Unix
para mquinas i386. En ms de una ocasin, Linus Torvalds ha afirmado que si hubiera sabido
de la existencia de los sistemas BSD que ya cumplan lo que haca Linux, no se habra molestado
en modificar Minix. MINIX fue creado por Andrew Tanenbaum cuando AT&T registra UNIX y no
autoriza su distribucin gratuita ni siquiera para fines educativos. La historia de Linux est
fuertemente vinculada a la del proyecto GNU. El proyecto GNU, iniciado en 1983, tiene como
objetivo el desarrollo de un sistema Unix completo compuesto enteramente de software libre.
Hacia 1991, cuando la primera versin del ncleo Linux fue liberada, el proyecto GNU haba
producido varios de los componentes del sistema operativo, incluyendo un intrprete de
comandos, una biblioteca C y un compilador, pero an no contaba con el ncleo que permitiera
completar el sistema operativo. Entonces, el ncleo creado por Linus Torvalds, quien se
encontraba por entonces estudiando en la Universidad de Helsinki, llen el hueco final que el
sistema operativo GNU exiga. Subsecuentemente, miles de programadores voluntarios
alrededor del mundo han participado en el proyecto, mejorndolo continuamente. Torvalds y
otros desarrolladores de los primeros das de Linux adaptaron los componentes de GNU y de
BSD, as como de otros muchos proyectos como Perl, Apache, Python, etc. para trabajar con el
ncleo Linux, creando un sistema operativo completamente funcional procedente de muchsimas
fuentes diferentes, la mayora libres.
Un estudio sobre la distribucin Red Hat 7.1 revel que sta en particular posee ms de 30
millones de lneas de cdigo real. Utilizando el modelo de clculo de costos COCOMO, puede
estimarse que esta distribucin requerira 8.000 programadores por ao para su desarrollo. De
haber sido desarrollado por medios convencionales de cdigo cerrado, hubiera costado ms de
mil millones de dlares en los Estados Unidos
Linus Torvald: Se puede decir que creci hacker porque en su adolescencia se entretena
programando en lenguaje ensamblador, en una computadora Commodore. En pocos aos que
llego a estudiar en la Universidad Tecnolgica de Helsinki. En la primavera de 1989, mientras
estaba en la universidad, empez a trabajar en el desarrollo de un kernel basado en el sistema
operativo propietario UNIX para computadoras con procesadores Intel. Una vez creado, lo puso
a disposicin del pblico a travs de un servidor FTP de la universidad finlandesa. Linux era el
nick (apodo) de Linus en la universidad, para evitar que lo acusaran de egocntrico, quiso llamar
a su cracin Freax (free+freak+x) pero el webmaster decidi que le gustaba ms Linux.

You might also like