Para empezar , se puede aclarar que un sistema operativo es un conjunto de programas destinado a permitir el uso apropiado de las partes físicas del ordenador, osea, su hardware. Un sistema operativo utiliza todos los medios necesarios para la sincronizacion de los programas de un computadora y su correcto funcionamiento.
Los primeros sistemas operativos fueron desarrollados por cada usuario para adecuar el uso de su propio 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.3. El cual es llamado en un pricipio: Sistema de entrada/salida.
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 hacia en lenguaje de máquina.
La década de 1950
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 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.
Tiempo compartido
Artículo principal: 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 70
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 de Prolog, 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.
- 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 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 del Mouse 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. Ahora el más reciente es (Windows 7)
(Windows Seven) que salio al mercado el 22 de octubre del 2009, dejando
atrás al (Windows Vista), que tuvo innumerables criticas durante el poco
tiempo que duró en el mercado.
La década de 1990
GNU/Linux
Este sistema 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.
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 navegacion 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.
Portada de Windows 95
Portada de Linux
Primer sistema operativo elaborado por Microsoft, Windows 1.0