Historia de los sistemas operativos
Un sistema
operativo es un conjunto de programas destinado a permitir el uso
apropiado de las partes físicas del ordenador (hardware).
Los sistemas
operativos proveen un conjunto de funciones necesarias y usadas por
diversos programas
de aplicaciones de una computadora, y los vínculos
necesarios para controlar y sincronizar el hardware de la misma. En las
primeras computadoras, que no tenían sistema operativo cada programa necesitaba
la más detallada especificación del hardware para ejecutarse correctamente y
desarrollar tareas estándares,
y sus propios drivers para los dispositivos periféricos como impresoras y lectores
de tarjetas
perforadas. El incremento de la complejidad del hardware y los
programas de aplicaciones eventualmente hicieron del sistema operativo una
necesidad.
Los primeros sistemas
operativos fueron desarrollados por cada usuario para el uso de su propia computadora
central, y es en 1956 que la General Motors desarrolla
lo que es hoy considerado el primer sistema, el GM-NAA I/O, para
su IBM 704.
La década de 1940
A finales de la
década de 1940, con lo que se podría considerar la aparición de la primera generación
de computadoras, se accedía directamente a la
consola de la computadora desde la cual se actuaba sobre una serie de micro
interruptores que permitían introducir directamente el programa en la memoria
de la computadora (en realidad al existir tan pocas computadoras todos podrían
considerarse prototipos y cada constructor lo hacía sin seguir ningún criterio
predeterminado). Por aquel entonces no existían los sistemas operativos, y los programadores debían interactuar con
el hardware del
computador sin ayuda externa. Esto hacía que el tiempo de preparación para
realizar una tarea fuera considerable. Además para poder utilizar la computadora debía hacerse por turnos.
Para ello, en muchas instalaciones, se rellenaba un formulario de reserva en el
que se indicaba el tiempo que el programador necesitaba para realizar su
trabajo. En aquel entonces las computadoras eran máquinas muy costosas lo que
hacía que estuvieran muy solicitadas y que sólo pudieran utilizarse en periodos
breves de tiempo. Todo se hacía en lenguaje de máquina.
La década de 1950
(Sistema Batch)
A principios de
los años 50 con
el objeto de facilitar la interacción entre persona y computadora, los sistemas
operativos hacen una aparición discreta y bastante simple, con conceptos tales
como el monitor residente, el proceso por lotes y el almacenamiento temporal.
Monitor residente
Su funcionamiento era bastante simple, se limitaba a
cargar los programas a memoria, leyéndolos de una cinta o de tarjetas perforadas, y ejecutarlos. El
problema era encontrar una forma de optimizar el tiempo entre la retirada de un
trabajo y el montaje del siguiente.
Procesamiento por
lotes
Como solución para optimizar, en una misma cinta o
conjunto de tarjetas, se cargaban varios programas, de forma que se ejecutaran
uno a continuación de otro sin perder apenas tiempo en la transición.
Almacenamiento
temporal
Su objetivo era disminuir el tiempo de carga de los
programas, haciendo simultánea la carga del programa o la salida de datos con
la ejecución de la siguiente tarea. Para ello se utilizaban dos técnicas,
el buffering y
el spooling.
La década de 1960
En los años 60 se produjeron cambios notorios en varios campos
de la informática,
con la aparición del circuito integrado la mayoría orientados a seguir
incrementando el potencial de los ordenadores. Para ello se utilizaban técnicas
de lo más diversas.
Multiprogramación
En un sistema multi programado la memoria principal alberga a más
de un programa de usuario. La CPU ejecuta
instrucciones de un programa, cuando el que se encuentra en ejecución realiza
una operación de E/S; en lugar de esperar a que termine la operación de E/S, se
pasa a ejecutar otro programa. Si éste realiza, a su vez, otra operación 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 electrónica disponible, pero adolece la
falta de interactividad;
para conseguirla debe convertirse en un sistema multiusuario, en el cual
existen varios usuarios con un terminal en
línea, utilizando el modo de operación de tiempo compartido. En estos
sistemas los programas de los distintos usuarios residen en memoria. Al
realizar una operación de E/S los programas ceden la CPU a otro programa, al igual que en
la multiprogramación.
Pero, a diferencia de ésta, cuando un programa lleva cierto tiempo ejecutándose
el sistema operativo lo detiene para que se ejecute otra aplicación.
Tiempo real
Estos sistemas se usan en entornos donde se deben
aceptar y procesar en tiempos muy breves un gran número de sucesos, en su
mayoría externos al ordenador. 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.
Multiprocesador
Diseño que no se encuentran en ordenadores
monoprocesador. Estos problemas derivan del hecho de que dos programas pueden
ejecutarse simultáneamente 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 dirección de memoria, lo hace únicamente sobre su copia local en
caché. Si otro microprocesador tiene almacenada la misma dirección 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 diseñado para ello.
La mayoría de los sistemas operativos actuales poseen esta capacidad.
Sistemas operativos
desarrollados
Además del Atlas Supervisor y el OS/360, los años 1970 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 Unix, convirtiéndolo en
uno de los pocos SO escritos en un lenguaje de alto nivel. En el campo de
la programación lógica se
dio a luz la primera implementación deProlog, y
en la revolucionaria orientación a objetos, Smalltalk.
Inconvenientes de los
Sistemas operativos
Se trataba de sistemas grandes, complejos y costosos,
pues antes no se había construido nada similar y muchos de los proyectos
desarrollados terminaron con costos muy por encima del presupuesto y mucho
después de lo que se marcaba como fecha de finalización. Además, aunque
formaban una capa entre el hardware y el usuario, éste debía 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 técnicas ya existentes de multiprogramación y tiempo compartido.
Características de
los nuevos sistemas
Sistemas operativos
desarrollados
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;
después fue soportado por la serie de máquinas Honeywell 6180.
Fue uno de los
primeros. Además, los traducía a instrucciones de alto nivel destinadas a BDOS.
·
CP/M: (Control Program
for Microcomputers) fue un sistema operativo desarrollado por Gary Kildall para
el microprocesador Intel 8080 (los Intel 8085 y Zilog Z80 podían ejecutar
directamente el código del 8080, aunque lo normal era que se entregara el
código recompilado para el microprocesador de la máquina). Se trataba del
sistema operativo más popular entre las computadoras personales en los años 70.
Aunque fue modificado para ejecutarse en un IBM PC, el hecho que IBM eligiera
MS-DOS, al fracasar las negociaciones con Digital Research, hizo que el uso
de CP/M disminuyera hasta
hacerlo desaparecer. CP/M originalmente
significaba Control Program/Monitor. Más tarde fue renombrado a Control Program
for Microcomputers. En la época, la barra inclinada (/) tenía el significado de
"diseñado para". No obstante, Gary Kildall redefinió el significado
del acrónimo poco después. CP/M se
convirtió en un estándar de industria para los primeros micro-ordenadores.
El hecho de que, años
después, IBM eligiera para sus PC a MS-DOS supuso su mayor fracaso, por
lo que acabó desapareciendo.
La década de 1980
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.
Mac OS
El lanzamiento oficial del ordenador Macintosh en enero
de 1984, al precio de US
$1,995 (después cambiado a $2,495 dólares)[1]. Incluía su sistema
operativo Mac OS cuya
características novedosas era una GUI (Graphic User Interface), Multitareas
y Mouse. Provocó diferentes
reacciones entre los usuarios acostumbrados a la línea de comandos y
algunos tachando el uso delMouse como juguete.
MS-DOS
En 1981 Microsoft compró un
sistema operativo llamado QDOS que,
tras realizar unas pocas modificaciones, se convirtió en la primera versión de
MS-DOS (Micro Soft Disk Operating System). A partir de aquí
se sucedieron una serie de cambios hasta llegar a la versión 7.1, versión 8 en
Windows Milenium, a partir de la cual MS-DOS dejó de existir como un componente
del Sistema Operativo.
Microsoft Windows
A mediados de los años 80 se crea este sistema
operativo, pero no es hasta la salida de (Windows 95) que se le puede
considerar un sistema operativo, solo era una interfaz gráfica del (MS-DOS) en
el cual se disponía de unos diskettes para correr los programas. Hoy en día es
el sistema operativo más difundido en el ámbito doméstico, aunque también hay
versiones para servidores como Windows NT. (Microsoft) ha diseñado también
algunas versiones para superordenadores, pero sin mucho éxito. Años después se
hizo el (Windows 98) que era el más eficaz de esa época. Después se crearía el
sistema operativo de (Windows ME) (Windows Millenium Edition) aproximadamente
entre el año 1999 y el año 2000. Un año después se crearía el sistema operativo
de (Windows 2000) en ese mismo año. Después le seguiría el sistema operativo
más utilizado en la actualidad, (Windows XP) y otros sistemas operativos de
esta familia especializados en las empresas. (Windows 7) (Windows Seven) salió
al mercado el 22 de octubre del 2009, dejó atrás a (Windows Vista), que tuvo
innumerables críticas durante el poco tiempo que duró en el mercado. El más
reciente hasta la fecha es (Windows 8) (Windows Eight) lanzado en octubre de
2012.
La década de 1990
GNU/Linux
Este sistema al parecer es una versión mejorada de
Unix, basado en el estándar POSIX,
un sistema que en principio trabajaba en modo comandos. Hoy en día dispone de
Ventanas, gracias a un servidor gráfico y a gestores de ventanas como KDE, GNOME entre
muchos. Recientemente GNU/Linux dispone de un
aplicativo que convierte las ventanas en un entorno 3D como por ejemplo Beryl o Compiz.
Lo que permite utilizar Linux de una forma visual atractiva para guarreo y
vicio cibernetico.
Existen muchas
distribuciones actuales de Gnu/Linux (Debian, Fedora, Ubuntu, Slackware, etc.)
donde todas ellas tienen en común que ocupan el mismo núcleo Linux. Dentro de
las cualidades de Gnu/Linux se puede caracterizar el hecho de que la navegación
a través de la web es sin riegos de ser afectada por virus, esto debido al
sistema de permisos implementado, el cual no deja correr ninguna aplicación sin
los permisos necesarios, permisos que son otorgados por el usuario. A todo esto
se suma que los virus que vienen en dispositivos desmontables tampoco afectan
al sistema, debido al mismo sistema de permisos.
ReactOS
ReactOS (React
Operating System) es un sistema operativo de código abierto destinado a lograr
la compatibilidad binaria con aplicaciones de software y controladores de
dispositivos hechos para Microsoft Windows NT versiones 5.x en adelante
(Windows XP y sus sucesores).
En 1996 un grupo de
programadores y desarrolladores de software libre comenzaron un proyecto
llamado FreeWin95 el cual consistía en implementar un clon de Windows 95. El proyecto
estuvo bajo discusión por el diseño del sistema ya habiendo desarrollado la
capa compatible con MS-DOS, pero lamentablemente esta fue una situación que no
se completó. Para 1997 el proyecto no había lanzado ninguna versión, por lo que
los miembros de éste, coordinados por Jason Filby, pudieron revivirlo. Se
decidió cambiar el núcleo del sistema compatible con MS-DOS y de ahora en adelante
basarlo en uno compatible con Windows NT y así el
proyecto pudo seguir adelante con el nombre actual de ReactOS, que comenzó en
febrero de 1998, desarrollando las bases del kernel y algunos drivers básicos.