domingo, 27 de noviembre de 2011

Historia y Evolución de los Sistemas Operativos

Historia y Evolución de los Sistemas Operativos

Roberto O. Martínez O.
Sistemas Operativos
marti_robert@hotmail.com


Resumen- Este artículo explora la historia y evolución de los sistemas operativos dado desde los años 40 hasta nuestra actualidad. El campo de interés está centrado en como al principio se debía trabajar con la computadora sin ayuda del sistema operativo y como poco a poco comienzan a surgir soluciones hasta llegar lo que hoy en día conocemos como sistema operativo, siendo Microsoft (Windows) el mayor exponente a nivel mundial.

  1. Introducción
Los sistemas operativos han venido evolucionando a través de los años. Ya que los sistemas operativos se han apegado íntimamente a la arquitectura de las computadoras en las cuales se ejecutan.
La primera computadora digital real fue diseñada por el matemático inglés Charles Babbage (1792 - 1871) . Aunque Babbage gasto la mayor parte de su vida y de su fortuna intentando construir sumaquina analítica, nunca la hizo funcionar adecuadamente porque era un diseño puramente mecánico y la tecnología de su época no podía producir las ruedas, el engranaje, levas y otras partes mecánicas con la alta precisión que el necesitaba. Sin tener que decirlo, la maquina analítica no tuvo un sistema operativo.

  1. Años 40
A finales de los años 1940, con lo que podríamos llamar 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.


  1. Años 50
A principios de los años 50 con el objeto de facilitar la interacción entre persona y computador, 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.

3.1. 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.

3.2. Procesamiento por lotes

Como solución para optimizar el tiempo de montaje surgió la idea de agrupar los trabajos en lotes, en una misma cinta o conjunto de tarjetas, de forma que se ejecutaran uno a continuación de otro sin perder apenas tiempo en la transición.

3.3. 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.

  1. Años 60
En los años 1960 se produjeron cambios notorios en varios campos de la informática, con la aparición del circuito cerrado la mayoría orientados a seguir incrementando el potencial de los computadores. Para ello se utilizaban técnicas de lo más diversas:

4.1. Multiprogramación

En un sistema multiprogramado 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.

4.2. Tiempo compartido

En este punto tenemos un sistema que hace buen uso de la electrónica 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 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. 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.

4.3. 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.

4.4. Multiprocesador

Permite trabajar con máquinas que poseen más de un microprocesador. En un multiprocesador los procesadores comparten memoria y reloj.

4.5. Sistemas operativos desarrollados

Además del Atlas Supervisor y el OS/360, los sesenta marcaron el inicio de UNIX, a mediados de los 60 aparece Multics, sistema operativo multiusuariomultitarea 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 década.

  1. Años 70
Debido al avance de la electrónica, pudieron empezar a crearse circuitos con miles de transistores en un centímetro cuadrado de silicio, lo que llevaría, pocos años después, a producirse los primeros sistemas integrados. Ésta década se podría definir como la de los sistemas de propósito general y en ella se desarrollan tecnologías que se siguen utilizando en la actualidad. Es en los años 1970 cuando se produce el boom de los miniordenadores y la informática se acerca al nivel de usuario. En lo relativo a lenguajes de programación, es de señalar la aparición de Pascal y C, el último de los cuales se creó específicamente para reescribir por completo el código del sistema operativo Unix, convirtiéndolo en uno de los pocos SO escrito en un lenguaje de alto nivel. En el campo de la programación lógica se dio a luz la primera implementación de Prolog, y en la revolucionaria orientación a objetos, Smalltalk.

5.1. Inconvenientes de los sistemas existentes

Se trataba de sistemas grandes 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.

5.2. Características de los nuevos sistemas

Para solventar los problemas antes comentados, se realizó un costosísimo trabajo para interponer una amplia capa de software entre el usuario y la máquina, de forma que el primero no tuviese que conocer ningún detalle de la circuitería.

5.3. 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 sistemas operativos de tiempo compartido, que implementó un solo nivel de almacenamiento para el acceso a los datos, desechando la clara distinción entre los ficheros y los procesos en memoria, y uno de los primeros sistemas multiprocesador.
* MVS (Multiple Virtual Storage): Fue el sistema operativo más usado en los modelos de mainframes -ordenadores grandes, potentes y caros usados principalmente por grandes compañías para el procesamiento de grandes cantidades de datos- System/370 y System/390 de IBM, desarrollado también por IBM y lanzado al mercado por primera vez en 1974. Como características destacables, permitía la ejecución de múltiples tareas, además de que introdujo el concepto de memoria virtual y finalmente añadió la capacidad de que cada programa tuviera su propio espacio de direccionamiento de memoria, de ahí su nombre.
*
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, distribuyéndose en disquetes de ocho pulgadas. Fue el SO más usado en las computadoras personales de esta década. Su éxito se debió a que era portátil, permitiendo que diferentes programas interactuasen con el hardware de una manera estandarizada. Estaba compuesto de dos subsistemas: a. CCP (Comand Control Processor): Intérprete de comandos que permitía introducir los mandatos con sus parámetros separados por espacios. Además, los traducía a instrucciones de alto nivel destinadas a BDOS.
b.
BDOS (Basic Disk Operating System): Traductor de las instrucciones en llamadas a la BIOS.
El hecho de que, años después, IBM eligiera para sus PCs a MS-DOS supuso su mayor fracaso, por lo que acabó desapareciendo.

    1. Años 80

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, 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.

6.1. Apple Macintosh

El lanzamiento oficial se produjo en enero de 1984, al precio de 2495 dólares. Muchos usuarios, al ver que estaba completamente diseñado para funcionar a través de una GUI (Graphic User Interface), acostumbrados a la línea de comandos, lo tacharon de juguete. A pesar de todo, el Mac se situó a la cabeza en el mundo de la edición a nivel gráfico.

6.2. 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 (MicroSoft Disk Operating System). A partir de aquí se sucedieron una serie de cambios hasta llegar a la versión 7.1, a partir de la cual MS-DOS dejó de existir como tal y se convirtió en una parte integrada del sistema operativo Windows.

6.3. Microsoft
Microsoft WindowsA 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.

  1. Años 90
En 1991 aparece la primera versión del núcleo de Linux. Creado por Linus Torvalds y un sinfín de colaboradores a través de Internet. Este sistema se basa en Unix, un sistema que en principio trabajaba en modo comandos, estilo MS-DOS. Hoy en día dispone de Ventanas, gracias a un servidor grafico 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. Lo que permite utilizar linux de una forma muy visual y atractiva.

8.1. Microsoft Windows

Familia de sistemas operativos propietarios desarrollados por la empresa de software Microsoft Corporation, fundada por Bill Gates y Paul Allen. Todos ellos tienen en común el estar basados en una interfaz gráfica de usuario basada en el paradigma de ventanas, de ahí su nombre en inglés. Las versiones de Windows que han aparecido hasta el momento se basan en dos líneas separadas de desarrollo que finalmente convergen en una sola con la llegada de Windows XP. Desde el principio, Windows 95 se publicitó como un sistema operativo de 32 bits. Pero cuando salió a la luz se pudo ver que esto no era totalmente verdad: era un sistema operativo (ya no un entorno), porque no necesitaba de ningún otro programa para poder funcionar (aunque se incluía el DOS 7.0 "completo" y alguien dijo que "sí" lo necesitaba). Por otro lado, la promesa de los 32 bits (programas más rápidos y mejor aprovechamiento de la memoria) no se cumplió. Muchas de las "partes" de este sistema operativo fueron de 16 bits como sus antecesores. Esto se explicó diciendo que era así por la cantidad de programas "heredados" de las versiones anteriores (Windows 3.1).
Casi en el mismo momento (un año antes) apareció en el mercado un verdadero sistema operativo de 32 bits que sería la competencia directa al tan publicitado Windows 95: OS/2 de IBM. En principio fue desarrollado en cooperación entre IBM y Microsoft (como años atrás con el DOS), y como años atrás surgieron diferencias que hicieron que cada empresa presentara su producto.
OS/2 fue un sistema operativo totalmente de 32 bits que muchos expertos consideran mejor, más estable y con mayores prestaciones que Windows 95, pero que (nuevamente) las campañas publicitarias relegaron a un segundo lugar, ya que la gran mayoría de los desarrolladores decidieron hacer sus programas "compatibles" con Windows 95 y no con OS/2.
Windows 98 no representó para los usuarios comunes ningún cambio significativo. Sólo un poco de retoque gráfico y alguna que otra utilidad nueva o mejorada (como el "liberador de espacio" o el viejo "defrag"). Pero si trajo algunas cosas nuevas: el soporte completo para los 32 bits, y la “eliminación” del DOS como sistema independiente (ya que no incluyó una nueva versión, sino un emulador del mismo).
En esta época no podemos dejar de mencionar Windows NT (Windows Nueva Tecnología). Windows NT fue un sistema operativo de 32 bits especializado en redes que utilizó otro sistema para el manejo de los archivos (NTFS), y por lo tanto
"incompatible" con Windows 95/98.
Versiones
de Windows NT: 3.1, 3.5, 3.51, 4; está última versión tuvo estas variantes: Workstation, Server, Server Enterprise Edition, Terminal Server, Embedded.

  1. Año 2000
Windows 2000 fue el sucesor de NT, por lo que estuvo orientado a empresas y heredó muchas de las características de este; hasta llegar a su última versión 2003 Server.
Windows XP fue la mejora más importante técnicamente desde Windows 9x, y unificó en cierto modo las versiones separadas que hubo estos años: WINDOWS 9x/ME para usuarios hogareños y SOHO contra Windows NT/2000 para usuarios corporativos con requerimientos de trabajo en redes de alto nivel.
Windows Vista requiere de hardware realmente potente para ejecutarse en toda su dimensión o con una performance aceptable; incluso para las versiones más "básicas" de este S.O.
Las versiones disponibles son varias: Enterprise, Business, Ultimate (para usuarios corporativos), Starter (solo comercializada en países emergentes, una versión reducida que si es similar a su homónima de Windows XP); y por último las versiones Home Basic y Home Premium (para usuarios domésticos).
Windows 7 es la versión más reciente de Microsoft Windows. A diferencia del gran salto arquitectónico y de características que sufrió su antecesor Windows Vista con respecto a Windows XP, Windows 7 fue concebido como una actualización incremental y focalizada de Vista y su núcleo NT 6.0, lo que permitió mantener cierto grado de compatibilidad con aplicaciones y hardware en los que éste ya era compatible. Sin embargo, entre las metas de desarrollo para Windows 7 se dio importancia a mejorar su interfaz para volverla más accesible al usuario e incluir nuevas características que permitieran hacer tareas de una manera más fácil y rápida, al mismo tiempo que se realizarían esfuerzos para lograr un sistema más ligero, estable y rápido.

    1. Linux: ¿el futuro alternativo?
Cuando Linus Torvalds comenzó a trabajar sobre Minix para obtener su propio sistema operativo no tenía ni la más remota idea de lo que su trabajo llegaría a ser en todo el mundo. Este sistema operativo es totalmente distinto a los vistos anteriormente por un montón de razones. He aquí algunas de ellas:
* No fue desarrollado por una gran empresa:
Linus Torvalds desarrolló el kernel (el corazón) del sistema y luego liberó el código fuente del mismo en Internet para que cualquier programador que se animara pudiera modificarlo y
agregarle lo que quisiera. Así, el Linux que hoy se conoce fue creado por cientos de programadores "libres" alrededor del mundo y no por una empresa.
* Es gratis y abierto:
Todo el sistema operativo es totalmente gratuito (al igual que muchísimos de sus programas), si posee una conexión a Internet es posible bajarlo a su máquina. Lo que algunas empresas hacen es "empacar" el sistema y algunos programas y grabarlos en CD’s, que junto con algún manual es lo que luego "venden". Esto se conoce como Distribuciones.
Además, junto con el sistema vienen los códigos fuentes del mismo (y de algunos programas) para que pueda ser modificado a gusto del usuario (si este es un programador experimentado), es por esto que se dice que es "abierto".
* Nació a partir de otro sistema operativo:
Es una modificación del sistema Minix, que a su vez nació como una "reducción" de UNIX, "el único sistema operativo verdadero, a partir del cual se crearon los demás" (incluido DOS) según la opinión de muchos Hackers.
Este sistema operativo es el elegido por las empresas que proveen acceso a Internet, debido a su gran estabilidad y eficiencia. Además, posee un muy buen manejo de redes y seguridad, lo que está haciendo que muchas empresas e instituciones (escolares sobre todo) lo tengan en cuenta para reemplazar sus sistemas actuales.
En un principio, Linux también era una "pantalla negra" en modo texto y muy poco intuitivo (al igual que DOS, al igual que UNIX). Pero desde hace un tiempo se desarrollaron entornos gráficos (varios: KDE, Gnome, etc.) que no tienen nada que envidiarle a Windows 95/98 y que hacen que más usuarios (menos experimentados) se "animen" a usarlo.
Por lo anterior y el gran auge de Internet este es el sistema operativo que más crecimiento ha tenido en los últimos años, y el que se perfila quizá como una alternativa válida para el futuro.
Algunas distribuciones de Linux conocidas: Red Hat, Debian, Fedora, Gentoo, Mandriva, Rxart, Slackware, Suse, Ubuntu, Kubuntu

Referencias
[1] L. Soto. (n.d.) Historia y Evolución de los Sistemas Operativos. [Online]. Disponible en: http://www.mitecnologico.com/Main/HistoriaEvolucionSistemaOperativo
[2] G. F. Torrealday. (n.d.) Sistemas Operativos. [Online]. Disponible en: http://www.torrealday.com.ar/articulos/articulo005.htm
[3] D. Semper. (2006) Evolución de los Sistemas Operativos. [Online]. Disponible en: http://www.aeromental.com/2006/08/16/evolucion-de-los-sistemas-operativos/
[4] A. Madera. (2010) Historia y Evolución de los Sistemas Operativos. [Online]. Disponible en:

No hay comentarios:

Publicar un comentario