SISTEMAS OPERATIVOS
Integrantes: Felipe Acuña
L.
Gino Núñez R.
Alvaro Ortiz R.
Daniel Sáez I.
Asignatura: S.de Computación.
Profesor: Yussef Farrán
L.
Ayudante: Johanna Shorwer.
Sumario
En este trabajo analizaremos el sistema más
común, tan usado que a veces lo pasamos por alto; sin embargo, es
el que lo soporta todo a través de la intermediación entre
el usuario y la máquina.
Veremos los tipos que existen, su estructura y las
funciones que desempeñan. Además viajaremos por la historia
de los sistemas operativos más famosos y miraremos un poco al futuro.
(ejercicio muy bueno a al terminar un semestre).
Indice
Sumario
1.Introducción
1.1
¿Qué es un sistema operativo?
1.2
Los primeros sistemas
2. Tipos de sistemas operativos:
2.1 Sistemas por lotes simples
2.2 Multiprogramación
2.3
Tiempo compartido
2.4
Sistemas Multiprocesadores
2.5
Sistemas distribuidos
2.6
Sistemas de Tiempo Real
3 Estructura de los sistemas
operativos
3.1
Administrador de Procesos
3.2
Administrador de Memoria
3.3
Administrador de almacenamiento secundario
3.4
Administrador de Archivos
3.5
Sistema de protección
3.6 Networking
4. Sistema Intérprete de Comandos
5 Servicios de los sistemas operativos
5.1
Tipos de servicios
7. Estructura del sistema
7.1
Estructura Simple
7.2
Estructura por capas
9. Funciones
y características de los Sistemas Operativos
9.1 Funciones
9.2
Funciones desde el punto de vista del usuario.
9.3
Funciones internas.
10. Historia de Windows
11. Historia de Linux
12. Historia de UNIX
13. La historia del MS-DOS
14. Bill Gates
revela Microsoft Windows XP: el nuevo Windows
15. Conclusión.
16. Bibliografía.
Un sistema operativo es un programa que actúa como intermediario entre el usuario de una computadora y el hardware. El propósito de un sistema operativo es proveer un entorno en el cual el usuario pueda ejecutar programas. El principal objetivo es hacer un sistema que convenga usar, el objetivo secundario es usar el hardware de una computadora de manera eficiente.
1.1 ¿Qué es un sistema operativo?
Un sistema operativo es una parte importante de un
sistema de computación. Un sistema de computación se puede
dividir en cuatro componentes: el hardware, el sistema operativo, los programas
de aplicación y los usuarios.
El hardware (unidad central de proceso, memoria y dispositivos de entrada/salida)
provee los recursos de computación básicos. Los programas
de aplicación (como compiladores, bases de datos, juegos y demás
programas) definen la forma en la que estos recursos se utilizan para resolver
los problemas de los usuarios. Puede haber muchos usuario (personas, otras
computadoras, máquinas) intentando resolver diferentes problemas.
Por lo tanto, puede haber varios programas de aplicación. El sistema
operativo controla y coordina el uso del hardware para los diferentes programas
de aplicación que utilizan los diferentes usuarios.
Un sistema operativo no realiza una función
útil en si, sino provee un entorno en el cual los demás programas
pueden realizar su trabajo.
Podemos ver a un sistema operativo como un contenedor
de recursos. Un sistema de computación tiene muchos recursos (hardware
y software) que se pueden solicitar para resolver un problema: tiempo de
CPU, espacio de memoria, dispositivos de entrada/salida, etc. El sistema
operativo actúa como administrador de estos recursos y asigna los
mismos a los distintos programas y usuarios para que puedan cumplir su
tarea. Algunas veces se producen conflictos al solicitar los recursos,
el sistema operativo debe decidir que solicitud es más importante
y asignar el recurso a ésta.
Desde un punto de vista distinto el sistema operativo
debe controlar los dispositivos de entrada/salida y los programas de los
usuarios. Por lo que podemos decir que es un programa de control. Un programa
de control controla la ejecución de los programas de usuarios para
prevenir errores y uso inapropiado de la computadora.
Sin embargo, en general, esta definición
no se adecua a un sistema operativo. El objetivo principal de los sistemas
de computación es ejecutar programas de usuario y resolver los problemas
en forma fácil.
El principal objetivo de un sistema operativo es
que sea conveniente para el usuario. Los sistemas operativos existen porque
se supone que hacen fácil el uso de una computadora. Este punto
de vista es claro cuando se observa sobre computadoras personales (PC).
Un objetivo secundario es la operación eficiente
de un sistema de computación. Este objetivo es muy importante en
sistemas grandes y sistemas multiusuarios, ya que estos son muy caros y
se desea que trabajen de la forma más eficiente que sea posible.
Las primeras computadoras eran enormes máquinas
que se ejecutaban desde una consola. El programador, quien además
operaba el sistema de computación, debía escribir un programa,
y operarlo directamente desde la consola. Primero, el programa debía
ser cargado manualmente en la memoria, desde un panel (una instrucción
a la vez), desde una cinta de papel o desde tarjetas perforadas. Luego,
se presionaba un botón para que comience la ejecución del
programa. Mientras el programa corría el operador monitoreaba su
ejecución. Si se producía un error, el programador detenía
el programa, examinaba el contenido de la memoria y de los registros, y
depuraba el programa directamente desde la consola. La salida se imprimía,
o se enviaba a cintas de papel o tarjetas perforadas para luego imprimirlas.
Con el tiempo, se desarrolló software y hardware
adicional. Lectores de tarjetas, impresoras de línea y cintas magnéticas
trajeron mas comodidad. Programas ensambladores, cargadores e intérpretes
se diseñaron para facilitarle la tarea al programador. Se crearon
librerías con programas comunes que podían ser utilizadas
por otros programas sin tener que ser escritas nuevamente.
Cada dispositivo tiene sus propias características
que requieren su programación. Se escribieron subrutinas para cada
uno de los dispositivos, las que se llamaron devices drivers. Un device
driver sabe como usar los buffers, flags, registros, bits de control y
bits de estado de cada dispositivo. Cada dispositivo tiene su propio driver.
Una tarea simple como leer un carácter de una cinta de papel, implica
una secuencia compleja de operaciones de un dispositivo específico.
Para no tener que escribir esa secuencia de operaciones cada vez que se
necesita hacer operación, se crearon los drivers y se utilizaron
como librerías.
Luego, se desarrollaron compiladores como FORTRAN, COBOL y otros lenguajes,
convirtiendo la tarea de programación en algo más fácil,
pero la operación de las computadoras un poco más difícil.
Para preparar un programa en FORTRAN para su ejecución, el programador
debía primero cargar el FORTRAN en la computadora, montar el driver
que realiza las operaciones sobre la cinta magnética y luego cargar
el programa de otra cinta. El compilador FORTRAN produce salidas en código
ensamblado (Assembler - codificado), el cual necesita ser interpretado
por el usuario. Este paso requiere que se cargue otra cinta con el intérprete
necesario para leer el código Assembler. Finalmente el código
se enlaza a una librería, llamada código objeto. Por último
el programa objeto se ejecuta. Este se puede cargar en la memoria y ser
depurado desde la consola como antes.
Es notable destacar la cantidad de tiempo de configuración
necesaria para ejecutar un trabajo. Si se detecta un error ocurre en alguna
parte del programa, se debía corregir y comenzar todos los pasos
de nuevo.
2 Tipos de sistemas operativos:
2.1 Sistemas por lotes simples
Monitor residente
El tiempo de configuración de un trabajo
fue realmente un problema. Mientras las cintas eran cargadas o los programadores
operaban la consola, la CPU permanecía ociosa.
Las tareas ahora se encontraban separadas, el programador ya no operaba
la máquina. Tan pronto un trabajo terminaba, el operador podía
ejecutar el siguiente. El operador tenía mas experiencia en cargar
cintas que el programador, por lo que el tiempo de configuración
se redujo considerablemente. Por supuesto, el operador no podía
depurar un programa incorrecto. En este caso, cuando el programa ejecutaba
un error, éste era volcado en memoria y el programador lo depuraba
desde allí. El vuelco a memoria, permitía que el operador
continuara inmediatamente con el siguiente trabajo.
Por otro lado, los trabajos con necesidades similares
eran procesados juntos (en forma de lote) y se ejecutaban en la computadora
en grupo. Por ejemplo, supongamos que el operador recibe un programa en
FORTRAN, uno en COBOL y otro en FORTRAN. Si se ejecutan los programas en
ese orden, primero se tiene que configurar para que trabaje en FORTRAN,
luego se debe configurara la computadora para que trabaje en COBOL y luego
configurarla nuevamente para que trabaje en FORTRAN. En cambio, si se cambia
el orden y los dos trabajos en FORTRAN se agrupan en un lote, primero se
ejecutan éstos y luego el programa en COBOL, reduciendo considerablemente
el tiempo de operación.
Pero aún existía un problema, cuando
un programa detenía su ejecución (terminación normal
o anormal), el operador tenía que darse cuenta observando la consola,
determinar por qué se había detenido el programa, realizar
un volcado a memoria si era necesario, cargar la lectora de cintas con
el siguiente trabajo y poner de nuevo en marcha la computadora. Durante
esta transición la CPU permanecía inactiva. Para eliminar
el tiempo de inactividad se introdujo el secuenciamiento automático
de trabajos y con el se crearon los primeros y rudimentarios sistemas operativos.
Lo que se deseaba era un procedimiento para la transferencia automática
del control de un trabajo al siguiente. Con este propósito se creo
un pequeño programa llamado Monitor Residente. Este programa se
encuentra siempre en memoria.
Al iniciar la computadora el monitor residente se
cargaba y controlaba la misma, transfiriendo el control a cada programa.
Cuando el programa se colgaba, el monitor residente tomaba nuevamente el
control y continuaba con el siguiente programa. Así el monitor residente
secuenciaba automáticamente un programa tras otro.
Para que el monitor residente supiera que programas tenía que
ejecutar se le indicaba una breve descripción de que programas tenía
que ejecutar y con qué datos. Esta información era suministrada
por el operador a través de tarjetas de control. Además del
programa o datos de un trabajo se incluían tarjetas especiales que
eran directivas para el monitor residente, indicándole que programa
debía ejecutar, en que orden y con que datos.
El problema era, como se determinaba que tarjetas
eran de datos o programas y cuales de control, el problema se solucionó
identificándoles con un carácter especial o un patrón
sobre la tarjeta.
Por lo tanto es monitor residente realizaba el secuenciamiento automático
de trabajos según le indicaban las tarjetas de control.
Sin embargo, incluso con este método, la CPU permanecía
a menudo inactiva. El problema reside en que la velocidad de los dispositivos
mecánicos de E/S es inferior a la de los dispositivos electrónicos.
La diferencia de velocidad entre la CPU y los dispositivos de E/S puede
ser de tres órdenes de magnitud.
El problema es que mientras los dispositivos de
E/S trabajan la CPU permanece inactiva, esperando que la operación
de E/S termine; y mientras la CPU ejecuta, los dispositivos de E/S permanecen
inactivos.
Operación off-line
Una solución fue reemplazar las lentas lectoras
de tarjetas por unidades de cintas magnéticas; en lugar de hacer
que la CPU leyera directamente las tarjetas, estas se copiaban primero
en una cinta magnética. Cuando un programa necesitaba la entrada
de una tarjeta se leía de la cinta. Las lectoras de tarjetas eran
operadas off-line, no por la computadora principal.
Se usaron dos enfoques del procesamiento off-line. Se desarrollaron
dispositivos especializados con salida/entrada directa de cinta magnética.
El otro enfoque consistía en dedicar una computadora pequeña
a la tarea de copiar desde o en una cinta.
La principal ventaja era que los dispositivos de cinta eran mucho más
rápidos que lectoras de tarjetas, por lo tanto la CPU permanecía
menos tiempo inactiva.
Para realizar este proceso en el monitor residente
se modificaba el código que identificaba a la lectora de tarjetas
por uno que indicara que se debían leer de la cinta magnética,
por lo que el programa de aplicación no sufría ninguna modificación.
La capacidad de ejecutar un programa con independencia del dispositivo
de E/S se llama independencia de dispositivos. Esto se logra haciendo que
el sistema operativo determine que dispositivos utilizará un programa
cuando necesite E/S. Los programas se escriben para usar dispositivos de
E/S lógicos.
Buffering (uso de memoria intermedia)
El buffering trata de mantener ocupados tanto la
CPU como los dispositivos de E/S. La idea es sencilla, los datos se leen
y se almacenan en un buffer, una vez que los datos se han leído
y la CPU va a iniciar inmediatamente la operación con ellos, el
dispositivo de entrada es instruido para iniciar inmediatamente la siguiente
lectura. La CPU y el dispositivo de entrada permanecen ocupados. Cuando
la CPU esté libre para el siguiente grupo de datos, el dispositivo
de entrada habrá terminado de leerlos. La CPU podrá empezar
el proceso de los últimos datos leídos, mientras el dispositivo
de entrada iniciará la lectura de los datos siguientes.
Para la salida, el proceso es análogo. En
este caso los datos de salida se descargan en otro buffer hasta que el
dispositivo de salida pueda procesarlos.
Este sistema soluciona en forma parcial el problema de mantener ocupados
todo el tiempo la CPU y los dispositivos de E/S. Ya que todo depende del
tamaño del buffer y de la velocidad de procesamiento tanto de la
CPU como de los dispositivos de E/S.
El manejo de buffer es complicado. Uno de los principales
problemas reside en determinar tan pronto como sea posible que un dispositivo
de E/S a finalizado una operación. Este problema se resuelve mediante
las interrupciones. Tan pronto como un dispositivo de E/S acaba con una
operación interrumpe a la CPU, en ese momento la CPU detiene lo
que está haciendo e inmediatamente transfiere el control a una posición
determinada. Normalmente las instrucciones que existen en esta posición
corresponden a una rutina de servicio de interrupciones. La rutina de servicio
de interrupción comprueba si el buffer no está lleno o no
está vacío y entonces inicia la siguiente petición
de E/S. La CPU puede continuar entonces el proceso interrumpido.
Cada diseño de computadora tiene su propio mecanismo de interrupción,
pero hay varias funciones comunes que todos contemplan.
El buffering puede ser de gran ayuda pero pocas
veces es suficiente.
Spooling
El problema con los sistemas de cintas es que una
lectora de tarjetas no podía escribir sobre un extremo mientras
la CPU leía el otro. Los sistemas de disco eliminaron esa dificultad,
moviendo la cabeza de un área del disco a otra.
En un sistema de discos, las tarjetas se leen directamente desde la
lectora sobre el disco. La posición de las imágenes de las
tarjetas se registran en una tabla mantenida por el sistema operativo.
En la tabla se anota cada trabajo una vez leído. Cuando se ejecuta
un trabajo sus peticiones de entrada desde la tarjeta se satisfacen leyendo
el disco. Cuando el trabajo solicita la salida, ésta se copia en
el buffer del sistema y se escribe en el disco. Cuando la tarea se ha completado
se escribe en la salida realmente.
Esta forma de procesamiento se denomina spooling,
utiliza el disco como un buffer muy grande para leer tan por delante como
sea posible de los dispositivos de entrada y para almacenar los ficheros
hasta que los dispositivos de salida sean capaces de aceptarlos.
La ventaja sobre el buffering es que el spooling
solapa la E/S de un trabajo con la computación de otro. Es una característica
utilizada en la mayoría de los sistemas operativos.
Afecta directamente a las prestaciones. Por el costo de algo de espacio
en disco y algunas tablas, la CPU puede simultanear la computación
de un trabajo con la E/S de otros. De esta manera, puede mantener tanto
a la CPU como a los dispositivos de E/S trabajando con un rendimiento mucho
mayor.
Además mantiene una estructura de datos llama job spooling,
que hace que los trabajos ya leídos permanezcan en el disco y el
sistema operativo puede seleccionar cual ejecutar, por lo tanto se hace
posible la planificación de trabajos.
Es un método para incrementar el empleo de
la CPU disponiendo en todo momento de algo que la CPU pueda ejecutar.
El proceso es el siguiente, cuando un trabajo deja libre la CPU para
realizar una E/S, el sistema operativo cambia a otro trabajo y lo ejecuta.
Cuando este último deba esperar por una E/S, la CPU pasará
a otro trabajo y así sucesivamente.
Un sistema operativo multiprogramado es bastante
sofisticado. Tener varios trabajos para ejecutar significa tenerlos simultáneamente
en memoria. Tener varios programas en memoria requiere una gestión
de memoria, además el sistema operativo deberá seleccionar
para elegir uno de ellos. Esto se denomine planificación de CPU.
Los sistemas batch se caracterizan por la falta de
interacción entre el usuario y la computadora. El trabajo se prepara
y se deja. Al cabo de un cierto tiempo aparece la salida. Los sistemas
interactivos suelen estar compuestos por muchas acciones breves en las
que los resultados del comando siguiente pueden ser imprescindibles.
Un sistema operativo en tiempo compartido utiliza
la planificación de CPU y la multiprogramación para dotar
a cada usuario de una pequeña parte de la computadora. En lugar
de dejar que la CPU permanezca inactiva cuando sucede esto, el sistema
operativo cede rápidamente el control de la CPU al programa de otro
usuario.
Permite que muchos usuarios compartan simultáneamente
la computadora.
En estos sistemas operativos los trabajos deben
permanecer en simultáneamente en memoria, lo cual requiere de algunas
técnicas de administración y protección de memoria.
Tal que se pueda obtener un tiempo de respuesta razonable, los trabajos
son intercambiados entre la memoria principal y el disco, un método
muy utilizado es la memoria virtual, técnica que permite que un
trabajo no esté completamente en memoria. La principal ventaja es
que permite que la memoria física tenga menor tamaño que
el trabajo que se quiere procesar.
Los sistemas operativos de tiempo compartido deben
proveer mecanismos para la sincronización y comunicación
de trabajos, y deben asegurar que los trabajos no quedarán por siempre
esperando que otro termine.
2.4 Sistemas Multiprocesadores
Un sistema multiprocesador tiene mas de un CPU compartiendo
memoria y periféricos. Las ventajas más evidentes son mayor
potencia de computación y fiabilidad.
Estos sistemas asignan una tarea específica
a cada procesador. Un procesador maestro controla el sistema, los otros
esperan al maestro o tienen tareas predefinidas. Este esquema define una
relación maestro/esclavo. Pueden usarse pequeños ordenadores
situados a cierta distancia de la CPU principal, trabajando en lectoras
de tarjetas e impresoras en línea y transfiriendo estos trabajas
a y desde la CPU principal. Los sistemas de tiempo compartido se componen
generalmente de un ordenador grande (principal) y un ordenador más
pequeño que solo es responsable de las entradas / salidas sobre
terminales.
Otra forma son las redes de ordenadores, donde se comunican muchos
sistemas informáticos independientes, transfiriéndose información.
Sin embargo, cada sistema tiene su propio sistema operativo y trabaja independientemente.
Podemos clasificar en sistemas multiprocesadores
simétricos, en el cual cada procesador corre una copia idéntica
del sistema operativo y se comunica con los demás procesadores según
sus necesidades; o multiprocesadores asimétricos, en los cuales
cada procesador tiene asignado una tarea predefinida. Un procesador maestro
controla el sistema.
2.5 Sistemas distribuidos
La principal diferencia entre los sistemas de multiprocesadores
y distribuidos, es que estos últimos no comparten memoria y periféricos.
Cada procesador tiene su propia memoria local. Los procesadores se comunican
entre si a través de varias líneas de comunicación,
tales como líneas telefónicas o buses de alta velocidad.
Los procesadores pueden variar en tamaño y función.
Las principales ventajas son:
- Recursos compartidos: si tenemos varias computadoras conectadas entre
si, los usuarios de una podrán utilizar los recursos de las otras.
- Velocidad de computación: Si una operación se puede
sub-dividir en un número mas pequeño de sub-operaciones que
se ejecutan concurrentemente en varias computadoras, entonces el sistema
distribuido permite distribuir cada sub-operación en varias computadoras.
- Confiablidad: si una computadora falla, las demás continúan
operando sin problema. Si el sistema está compuesto de un número
muy grande de instalaciones autónomas, la falla de una no afecta
a las demás. Por el contrario, si cada computadora ejecuta una función
crítica y la falla de esta puede afectar al sistema general, se
utiliza una configuración redundante (tanto de hardware como de
datos) para que el sistema pueda continuar con su ejecución en caso
de falla.
- Comunicación: en muchas ocasiones los programas necesitan
intercambiar datos con otros sistemas, los sistemas distribuidos permiten
la planificación de este intercambio.
Se utilizan cuando hay requerimientos de tiempo muy
rígidos en las operaciones o en el flujo de datos, generalmente
se utilizan como sistemas de control en una aplicación dedicada.
Por ejemplo: sistemas de control industrial, experimentos científicos
y sistemas médicos.
Se pueden clasificar en:
Los sistemas de tiempo real por hard, garantizan
que las tareas críticas se ejecutan en tiempo. Los datos son almacenados
en memorias no volátiles (ROM), no utilizan técnicas de memoria
virtual ni tiempo compartido, ambas técnicas no pueden ser implementadas
en por hardware.
Los sistemas de tiempo real por soft, ejecutan tareas
menos críticas y manejan técnicas de prioridades para la
asignación de tareas. Estos sistemas tienen menos utilidades que
los implementados por hard, por ejemplo no pueden utilizarse para control
industrial y robótica. Pero sí para multimedia, supervisión
de controles industriales y realidad virtual.
3 Estructura de los sistemas operativos
Si bien no todos los sistemas operativos tienen la misma estructura, la mayoría de los sistemas operativos modernos poseen esta estructura.
Un programa no hace nada a menos que sus instrucciones sean ejecutadas por la CPU. Un proceso necesita ciertos recursos, tiempo de CPU, memoria, archivos y dispositivos de E/S, para completar sus tareas. Estos recursos son reservados cuando se crea el proceso o bien se otorgan en tiempo de ejecución.
El sistema operativo es responsable de:
- La creación y eliminación de procesos de sistema y
de usuarios.
- Detener y continuar ejecutando un proceso.
- Proveer mecanismos para sincronizar procesos.
- Proveer mecanismos para comunicar procesos.
- Proveer mecanismos para proteger procesos.
El procesador central lee y escribe datos directamente
en memoria. La memoria principal es generalmente el único dispositivo
de almacenamiento que la CPU puede acceder directamente. Por ejemplo para
que la CPU procese datos del disco, primero se deben cargar éstos
en la memoria.
El sistema operativo es responsable de:
- Mantener historial de las partes de memoria que pueden ser accedidas
concurrentemente y que procesos pueden hacerlo.
- Decidir qué procesos se cargarán en memoria cuando
se encuentre lugar disponible en ésta.
- Asignar y quitar espacio de memoria según las necesidades.
3.3 Administrador de almacenamiento secundario
Como la memoria principal es muy chica como para almacenar todos los datos y programas necesarios, la computadora posee un almacenamiento secundario para volcar los datos de memoria no utilizados. Las computadoras modernas utilizan el disco para este fin. La mayoría de los programas se almacenan en disco hasta que son cargados en memoria.
El sistema operativo es responsable de:
-Administrar el espacio libre.
- Asignar espacio de almacenamiento.
- Organizar el disco.
Administrador de sistemas de E/S
Una de los propósitos del sistema operativo es ocultar las peculiaridades
de los dispositivos de hardware al usuario. Los sistemas de E/S consisten
de:
- Un sistema de buffer intermedio.
- Una interfaz general.
- Manejadores de dispositivos de hardware específicos.
El administrador de archivos es uno de los componentes más visibles de un sistema operativo. Las computadoras pueden almacenar información en diferente tipos de medios físicos. Cintas magnéticas, discos magnéticos y discos ópticos, son los más comunes. Cada uno de estos medios tiene sus propias características y organización física. Cada medio se controla por un dispositivo. Las propiedades incluyen velocidad, capacidad, velocidad de transferencia de datos y método de acceso (secuencial o random).
Por conveniencia el sistema operativo provee una vista lógica uniforme de la información, independientemente de las características de cada dispositivo, utiliza la unidad archivo.
Un archivo es un grupo de información relacionada definida por su creador (programas o datos).
El sistema operativo es responsable de:
- Creación y eliminación de archivos.
- Creación y eliminación de directorios.
- Soporte de primitivas (instrucciones) para manipular archivos y directorios.
- Mapeo de archivos dentro de almacenamiento secundarios.
- Resguardar archivos en medios de almacenamiento estables.
Si un sistema tiene múltiples usuarios y permite
múltiples usuarios concurrentes, los procesos deben estar protegidos
de otras actividades. Para tal propósito se provee de mecanismos
que aseguran que los archivos, segmentos de memoria, CPU y otros recursos
pueden ser operados sólo por aquellos procesos que tienen permiso
otorgado por el sistema operativo.
Por protección se entiende a los mecanismos para controlar el
acceso de programas, procesos y usuario a los recursos definidos por el
sistema.
Un sistema distribuido es una colección de
procesos que no comparten memoria o recursos. Cada procesador tiene su
propia memoria local, y los procesadores se comunican con otros a través
de varias líneas de comunicación como ser buses de alta velocidad
o líneas telefónicas.
Los procesadores en el sistema se conectan a través
de redes de comunicación, las cuales se pueden configurar de muchas
maneras. La red puede esta completa o parcialmente conectada.
En un sistema distribuido los recursos se comparten
entre varias estaciones, los sistemas operativos de red se encargan de
administrar el acceso a estos recursos.
4 Sistema intérprete de comandos
Uno de las funciones más importantes de un
sistema operativo es el intérprete de comandos, que es la interfaz
entre el usuario y el sistema operativo. Algunos sistemas operativos incluyen
el intérprete en el kernel. Otros como el DOS o UNIX, poseen un
programa especial para cumplir esta función que se ejecuta cuando
se inicia el sistema.
Los sistemas operativos se diferencian en el área
de interpretación de comandos, según el grado de facilidad
que presenten a los usuarios. Por ejemplo en Windows 95 para copiar un
archivo de una unidad a otra el usuario puede seleccionar con el mouse
el archivo que desea copiar y arrastrarlo hasta su nuevo destino; mientras
que en DOS, debe ingresar una sentencia desde una pantalla de caracteres
5 Servicios de los sistemas operativos
- Ejecución de programas. El sistema tiene que ser capaz de cargar
un programa en memoria y ejecutarlo.
- Operaciones de entrada/salida. Como un programa no puede acceder
directamente a un dispositivo de E/S el sistema operativo debe facilitarle
algunos medios para realizarlo.
- Manipulación del sistema de archivos. El sistema operativo
debe facilitar las herramientas necesarias para que los programas puedan
leer, escribir y eliminar archivos.
- Detección de errores. El sistema operativo necesita constantemente
detectar posibles errores. Los errores pueden producirse en la CPU y en
el hardware de la memoria, en los dispositivos de E/S o bien en el programa
de usuario. Para cada tipo de error, el sistema operativo debe adoptar
la iniciativa apropiada que garantice una computación correcta y
consistente.
Los sistemas operativos con usuarios múltiples pueden mejorara
su eficiencia compartiendo entre ellos los recursos de la computadora.
- Asignación de recursos. Cuando hay múltiples usuarios
o múltiples trabajos ejecutándose al mismo tiempo, hay que
asignar recursos a cada uno de ellos. El sistema operativo gestiona muchos
tipos de recursos diferentes.
- Contabilidad. Deseamos controlar los pasos de los usuarios que utilizan
la computadora, en qué medida lo hacen y qué tipo de recursos
emplean.
- Protección. Cuando hay muchos trabajos ejecutándose
al mismo tiempo no debe ser posible que un trabajo interfiera en otro
Los sistemas operativos prestan sus servicios de muchas maneras. Dos métodos básicos de prestación de servicios son las llamadas al sistema y los programas de sistemas.
Llamadas al sistema
Constituyen una interfaz entre los programas que
se están ejecutando y el sistema operativo. Estas llamadas se implementan
generalmente por instrucciones en lenguaje de máquina.
Se pueden agrupar en tres categorías: control
de procesos o de trabajos, manipulación de dispositivos y archivos,
y mantenimiento de información.
Control de procesos y de trabajos
- Finalización (normal o anormal)
- Cargar o ejecutar otro programa
- Crear nuevos procesos, terminar procesos
- Obtener atributos de un proceso. Establecer atributos de un proceso
- Esperar un tiempo
- Esperar un suceso
Manipulación de archivos
- Crear / Borrar un archivo
- Abrir / Cerrar un archivo
- Leer, escribir, reposicionar un archivo
- Obtener atributos de un archivo. Establecer atributos de un archivo.
Manipulación de dispositivos
- Solicitar dispositivo. Liberar dispositivo.
- Leer, Escribir, Reposicionar
- Obtener atributos de dispositivos. Establecer atributos de dispositivos.
Mantenimiento de información
- Obtener hora o fecha. Establecer hora o fecha.
- Obtener datos del sistema, modificar datos del sistema.
- Obtener atributos de proceso, archivos o dispositivos. Establecer
atributos de proceso, archivos o dispositivos.
Son un grupo de programas que resuelven problemas corrientes y ofrecen un entorno mas adecuado para el desarrollo y la ejecución de programas.
Se pueden dividir en las siguientes categorías:
- Manipulación de archivos:: estos programas crean, borran, copian,
renombran, imprimen, listan y generalmente manejan archivos y directorios.
- Información de estados: usados para pedir la fecha, la hora,
la cantidad de memoria disponible o el espacio en disco.
- Modificación de archivos: editores de texto usados para crear
y modificar el contenido de un archivo.
- Soporte al lenguaje de programación: compiladores, intérpretes
y ensambladores que dan soporte a lenguajes de alto nivel.
- Programas de aplicación: programas que son útiles para
resolver problemas corrientes, como editores de texto, programas de gráfica,
calculadoras, etc.
Uno de los programas más importante en un sistema operativo es el intérprete de comando, éste se ejecuta al iniciarse el sistema operativo, su función es sencilla, captar un comando dictado por el usuario, interpretarlo y ejecutarlo. Por ejemplo el comando Delete archivo utilizado por DOS, para que este comando se pueda ejecutar el intérprete de comandos debe contener el programa adecuado que elimine el archivo del disco rígido.
Los sistemas operativos actuales son grandes y complejos, éstos deben poseer una ingeniería correcta para su fácil actualización y para que puedan cumplir su función correctamente. La estructura es generalmente modular, cada módulo cumple una función determinada e interactúa con los demás módulos.
El sistema MS-DOS es, sin duda, el mejor sistema
operativo para microcomputadores. Sin embargo, sus interfaces y niveles
de funcionalidad no están bien definidos. Los programas de aplicación
pueden acceder a operaciones básicas de entrada / salida para escribir
directamente en pantalla o discos. Este libre acceso, hace que el sistema
sea vulnerable, ya que un programa de aplicación puede eliminar
por completo un disco rígido por alguna falla. Además este
sistema, también está limitado al hardware sobre el que corre.
Otra estructura simple es la utilizada por la versión
original de UNIX, ésta consiste de dos partes separadas, el kernel
y los programas de sistemas. El kernel fue posteriormente separado en manejadores
(drivers) de dispositivos y una serie de interfaces. El kernel provee el
sistema de archivos, la programación de CPU, el administrador de
memoria y otras funciones del sistema operativo que responden a las llamadas
del sistema enunciadas anteriormente.
7.2 Estructura por capas (layers)
Las nuevas versiones de UNIX se diseñaron
para hardware más avanzado. Para dar mayor soporte al hardware,
los sistemas operativos se dividieron en pequeñas partes. Ahora
los sistemas operativos tienen mayor control sobre el hardware y las aplicaciones
que se ejecutan sobre éste.
La modularización de un sistema se puede presentar de varias
formas, la mas utilizada es la de capas, la cual consiste en dividir al
sistema operativo en un número de capas. La capa de menor nivel
es el hardware y la de mayor nivel es la interfaz con el usuario.
La principal ventaja es que cada capa cumple con
una serie de funciones y servicios que brinda a las otras capas, esto permite
una mejor organización del sistema operativo y una depuración
más fácil de éste.
Cada capa se implementa sólo utilizando las operaciones provistas
por la capa de nivel inferior. Una capa no necesita saber como se implementan
estas funciones, sólo necesita saber que operaciones puede realizar.
Conceptualmente un sistema operativo está hecho de capas.
Un sistema operativo con Máquina Virtual
puede crear la ilusión de múltiples procesos, cada uno ejecutando
en su propio procesador con su propia memoria (virtual). Por supuesto,
normalmente, los procesos tienen características adicionales, como
llamadas al sistema y sistemas de archivos. En la maquina virtual no se
provee ninguna función adicional, pero si una interfaz que es idéntica
al hardware.
Los recursos físicos del computador son compartidos
para crear máquinas virtuales. La programación de CPU puede
ser usada para compartir la CPU y crear la apariencia de que los usuarios
tienen su propio procesador.
El principal problema con la máquina virtual
es el disco. Supongamos que tenemos en un computador con sólo 3
discos pero queremos utilizar 7 máquinas virtuales. Es claro que
no podemos asignar un disco a cada máquina virtual. Una máquina
virtual necesita espacio en el disco para proveer memoria virtual y spooling.
La solución es proveer discos virtuales, los cuales son idénticos
en todo excepto en tamaño.
Cada máquina virtual esta completamente aislada
de las otras, por lo que no hay problemas de seguridad. Es decir, no hay
compartición directa de recursos de la computadora.
Los sistemas operativos actuales como Windows 95
y Windows NT, utilizan esta técnica.
9 Funciones y características de los Sistemas Operativos
El Sistema Operativo crea el entorno en el que se
ejecutan los procesos y para ello ofrece tanto a los procesos como a los
usuarios una serie de funciones que varían mucho de unos sistemas
a otros.
Todo Sistema Operativo tiene que tener 3 prestaciones fundamentales:
1. Permitir que existan n usuarios trabajando sobre m aplicaciones
(simultáneamente o no).
2. Además tiene que tener una serie de facilidades: procesadores
de texto,
compiladores, ensambladores, montadores...
3. Debe asegurar un flujo continuo de trabajo en forma de tareas batch
o
interactivas multiacceso.
Las funciones de todo Sistema Operativo conforman las distintas partes con que se construye un SO. Las funciones que tiene un Sistema Operativo de propósito general varían mucho de unos a otros, pero las que todos tienen que tener son las siguientes:
- Multiacceso
- Gestión de memoria
- Secuenciamiento de trabajos
- Control de procesos
- Intérprete de OSCL
- Gestión de operaciones de E/S
- Gestión de dispositivos y ficheros
- Gestión de interrupciones
- Planificación
- Control de errores y protección
- Contabilidad del sistema
- etc.
Aunque todas estas funciones las podemos resumir en 2 funciones básicas:
9.2 Funciones desde el punto de vista del usuario.
Van a transformar el hardware en una máquina más tratable. Provisión de máquina virtual en varios aspectos:
1. En lo referente a la carga y ejecución de programas
- Gestión de memoria. Que habrá que presentarla en la
forma y tamaño
adecuada a cada programa y usuario, dependiendo de sus necesidades
y no
de las características concretas de cada ordenador.
- Mecanismos de comunicación o intercomunicación entre
procesos. Es
decir, que deberá existir un lenguaje de control que transmita
a la máquina
las peticiones del usuario: el OSCL. Además, a ser posible,
deberá ser fácil y
rápido de manejar.
- Gestión de interrupciones
2. En cuanto a las operaciones de E/S. Se trata de liberar al usuario de programas los mecanismos hardware, presentándole facilidades de E/S sencillas pero igual de potentes.
3. En cuanto al manejo de ficheros y dispositivos. El Sistema Operativo
debe:
a. Proporcionar acceso fácilmente a la información
mediante nombres simbólicos.
b. Mantener la integridad de la información.
4. En cuanto a la detección y manejo de errores y protección. Diferentes equipos hardware proporcionan niveles de protección muy diferentes, es el Sistema Operativo el que tendrá que incrementar el nivel de protección hasta el deseado.
- Dan soporte a la compartición de recursos.
Motivos de la compartición de recursos:
- Es más barato
- Hay recursos -como la información- que por naturaleza son
compartidos
- Nos permite trabajar usando trabajos ya creados (reutilización)
- Eliminación de la redundancia de información
Problemas que acarrea la compartición de recursos:
- Cómo dar soporte a varios accesos y ejecuciones simultáneas
- Dónde ubicar los recursos compartidos y cómo protegerlos
Windows 1 : Primera Versión de Microsoft Windows. Lanzado en 1985. Tomó un total de 55 programadores para desarrollarlo y no permitía ventanas en cascada.
Microsoft comenzó el desarrollo del "ADMINISTRADOR
DE INTERFAZ", que posteriormente derivó en Microsoft Windows en
Septiembre de 1981. La interfaz inicial tenía menús ubicados
en la parte inferior de la ventana y la interfaz sufrió un cambio
en 1982 cuando se diseñaron los ahora comunes menús desplegables.
Esto ocurrió después de Apple Lisa,
un experimento de Apple por llevar una interfaz gráfica al usuario.
Sin embargo, ocurrió antes de Macintosh.
Windows prometía una interfaz gráfica
fácil de usar y la utilización de gráfica independiente
del dispositivo, así como el soporte de multitarea.
Las siguientes fueron las principales características de Windows
1.0:
1. Interfaz gráfica con menús desplegables, ventanas
en cascada y soporte para mouse.
2. Gráficos de pantalla e impresora independientes del dispositivo.
3. Multitarea cooperativa entre las aplicaciones Windows.
Windows 2 : Segunda versión de Microsoft Windows, lanzada en
1987. Windows 2 tenía más características que Windows
1, tales como iconos y ventanas traslapdas. Cuando se lanzó Windows/386,
Windows 2 fue renombrado como Windows/286.
Nacen aplicaciones como Excel, Word for Windows, Corel Draw!, Ami,
PageMaker).
Las siguientes fueron las principales características de Windows
2.0:
1. Ventanas traslapadas
2. Archivos PIF para aplicaciones DOS
Windows/386: En 1987 Microsoft lanzó Windows/386. A pesar de
ser equivalente a su hermano Windows/286, mientras corrían aplicaciones
Windows, éste proveía la capacidad de ejecutar múltiples
aplicaciones DOS simultáneamente en memoria extendida
Las siguientes fueron las principales características de Windows/386:
1. Múltiples máquinas virtuales DOS con multitarea.
Windows 3.0: Una completa reconstrucción de Windows con muchas
nuevas facilidades tales como la habilidad de direccionar más allá
de 640k. Fue lanzado en 1990, y vendió más de 10 millones
de copias.
Las siguientes fueron las principales características de Windows
3.0:
1. Modo estándard (286), con soporte de memoria grande (large
memory).
2. Modo Mejorado 386, con memoria grande y soporte de múltiples
sesiones DOS.
3. Se agregó en Administrador de Programas y de Archivos
4. Soporte de Red
5. Soporte para más de 16 colores.
6. Soporte para combo boxes, menús jerárquico y los archivos.
INI privados para capa aplicación empezaron a cobrar más
valor.
Windows 3.1: Una versión de Windows con muchas mejoras a Windows
3.0. Incluye soporte para fuentes True Type y OLE. Esta versión
fue testigo de la pérdida del modo real, lo cual significa que no
corre en procesadores Intel 8086.
Las siguientes fueron las principales características de Windows
3.1:
1. No hay soporte para el modo Real (8086).
2. Fuentes TrueType.
3. Multimedia.
4. OLE - Object Linking and Embedding
5. Capacidad para que una aplicación reinicie la máquina.
6. Soporte de API de multimedia y red.
Windows 3.11: Una actualización gratis de Windows 3.1, que contenía
parches para errores menores.
Windows for Workgroups 3.1: Una versión de Windows 3.1 que trabja
en red. Aunque Windows 3.1, por sí solo, puede trabajar en red,
la instalación y configuración se mejoró con Windows
for Workgroup.
Proveía capacidades para compatición punto a punto de
archivos e impresoras. Los archivos podían ser accedidos desde otras
máquinas corriendo DOS o Windows.
Windows for Workgroups incluye dos aplicaciones adicionales: Microsoft
Mail, para envió de correo electrónico, y Schedule+, una
agenda para trabajo en grupo.
Windows for Workgroups 3.11: Una significativa mejora para Windows for
Workgroup 3.1 agregando acceso a archivo de 32 bits y capacidad de fax.
Windows 95:(Win95) Sucesor de Windows 3.11 para PC's IBM. Se le conoció
cómo "Chicago" durante su desarrollo. Lanzado el 24 de Agosto de
1995. En contraste con las anteriores versiones de Windows, Win95 es un
sistema operativo más que una interfaz gráfica de usuario
que corre sobre DOS.
Provee soporte para aplicaciones de 32 bits, multitarea con desalojo,
soporte de red incorparado (TCP/IP,IPX, SLIP, PPP, y Windows Sockets).
Incluye MS-DOS 7.0 como una aplicación.
La interfaz gráfica, aunque similar a las previas versiones,
fue significativamente mejorada.
Win32s : Win32s es un conjunto de librerías para Windows 3.1,
la cual posibilita a los usuarios de correr la mayorías de las aplicaciones
de Windows NT en Windows 3.1. Si bien permite ejecutar aplicaciones escritas
para Windows NT, Win32s no da soporte para multitares con desalojo en Windows
3.1
Windows 98: Nueva versión del sistema operativo Windows. Podría
decirse que es una compilación de características. Muchas
de estas características ya se encontraban en Internet Explorer
4.0 (al ser instalado con la actualización de escritorio) y en Windows
95 OSR-2.
Permite soporte para la FAT32 (al igual que Win95 OSR-2) y el Active
Desktop (de IE 4).
Soporte para USB y DVD.
Windows NT:(Windows New Technology, NT). El sistema operativo de 32
bits desarrollado originalmente para que sea OS/2 3.0 antes que Microsoft
e IBM discontinuaran su trabajo con OS/2. NT se diseñó para
estaciones de trabajo avanzadas (Windows NT 3.1) y para servidores (Windows
NT 3.1 Advanced Server).
El primer lanzamiento fue Windows NT 3.1 en Septiembre de 1993.
A diferencia de Windows 3.1, que era una interfaz gráfica que
corría sobre MS-DOS, Windows NT es un sistema operativo por sí
solo. El usuario lo ve como Windows 3.1, pero tiene multi-procesos real,
seguridad y protección de memoria.
Está basado en un microkernel, con un direccionamiento de hasta
4GB de RAM, soporte para sistemas de archivos FAT, NTFS y HPFS, soporte
de red incorporado, soporte multiprocesador, y seguridad C2
NT está diseñado para ser independiente del hardware.
Una vez que la parte específica de la máquina - la capa HAL
(Capa de Absttracción de Hardware)- ha sido llevada a una máquina
particular, el resto del sistema operativo debería compilar teóricamente
sin alteración. Se lanzó una versión de NT para correr
en máquinas Alpha de DEC.
NT necesitaba un 386, con al menos 12MB de RAM (preferible 16MB), y
al menos 75MB de disco duro libre.
Windows NT 3.1: Primera version de Windows NT (WNT). Existe una leyenda
popular que dice que la persona responsable del desarrollo de VMS en VAX
de DEC fue también responsable de Windows NT, y si cada letra de
VMS es avanzada a la siguiente letra del abecedario se llega a WNT.
Windows NT 3.5: Una versión mucho más mejorada de NT 3.1.
Desde estas versión Windows NT se vende como "Windows NT 3.5 Workstation"
y "Windows NT 3.5 Server".
Windows NT 4: La nueva versión de Windows NT, denominada "Cairo"
en su etapa de desarrollo. Presenta las mismas características de
la interfaz de Windows 95. Tiene algunas modificaciones en su diseño
con respecto a las porciones GDI y USER del sistema operativo.
Windows CE: Un sistema operativo de la familia Windows y que fue el
primero en no estar orientado a los equipos de escritorio. Los dispositivos
en los que Windows CE presta servicios son Handheld PC y PalmSize PC. Windows
CE también ha permitido la creación de un nuevo sistema denominado
AutoPC, que consiste de un PC empotrado en un automóvil que va ubicado
en donde actualmente va una radio. Permite controlar la radio, CD y revisar
el correo electrónico. Windows CE también permite la creación
de aplicaciones en tiempo real.
El padre de Linux es Linus Torvalds, un programador finlandés de 21 años que inicialmente no tenía más pretensión que 'divertirse' creando un sistema operativo para su uso personal. Torvalds colocó Linux en Internet para que cualquiera lo bajara gratis, en 1991, y desde entonces participan en su desarrollo cientos de voluntarios. Hoy Linux se difunde más rápido que cualquier otro sistema operativo, es venerado por una comunidad de diez millones de usuarios y comienza a verse como una alternativa real a Windows. Esta es su historia.
1991
1992
1993
1994
1996
1997
1999
Los orígenes de UNIX se remontan al año
1962 en el que el CTSS y el MIT se encuentran investigando en áreas
de tiempo compartido y protección. En 1965, Bell Labs (la división
de investigación de AT&T), General Electric y el MIT se encuentran
trabajando en un macroproyecto llamado MULTICS, previsto para desarrollar
una gran potencia de cálculo y almacenamiento de muchos usuarios.
De este proyecto, se obtuvieron interesantes resultados (capacidad de multiproceso,
árbol de ficheros, shell); pero, como todo proyecto gigante, su
complejidad desbordó al equipo que lo emprendió (seguramente
no habían estudiado cibernética o teoría de complejidad)
así que en 1969 fue abandonado. El caso, es que una de las mejores
"cosas" que salieron de allí fue un tal Ken Thompson, un tanto "mosqueado",
eso sí, pero con ideas propias que le llevaron a desarrollar ese
mismo año un sistema de ficheros propio. A Thomsom, en realidad,
lo que le interesaba era derrotar al imperio Klingom jugando al Star Trek,
así que se montó una simulación de la galaxia que
quitaba el aliento en un sistema GECOS. Y si no lo quitaba, al menos eso
le pareció a una tal Dennis Ritchie, que pasaba por allí
y también veía Star Trek. El caso es que homson encontró
un PDP-7 (otro ordenador más potente) y construyó para él
su sistema de ficheros para poder jugar mejor con Ritchie sin que nadie
les viera.
Bueno, esta es la leyenda que dice que los origenes
de UNIX vienen "de Vulcano". Puede que no fuera así, pero lo cierto
es que muchos grandes avances han surgido del desarrollo que grandes hombres
han hecho para su disfrute en ratos de "ocio" y este fue uno de ellos.
Sea como fuere, en el añoo '71, Ritchie y Kernigham crean y utilizan
el lenguaje C en un PDP-11 (algo así como un AT), lenguaje nacido
para la programación de sistemas. As¡, dos años después
en 1973, Ritchie y Thompson re-escriben su engendro en lenguaje C, pero
esta vez desarrollan un sistema multiusuario. UNIX había nacido.
El sistema, nacido del trabajo y la ilusión de sólo dos hombres,
demostró ser algo tan bueno que ese mismo año Bell Labs contaba
con 25 instalaciones funcionando con UNIX.
En 1974 aparece un artículo en las comunicaciones
del ACM (Association for Computer Machinery) y se distribuye a las universidades.
En 1977 ya son 500 los centros y 125 la universidades que utilizan el sistema.
Su expansión es fulgurante ya que se distribuye sin licencias y
con fuentes. Entre 1977 y 1982 se combina con un sistema comercial y nace
UNIX System III. Ya
en 1984 existen 100.000 sistemas UNIX en todo el mundo.
Paralelamente en Berkeley.......
Entre las universidades a la que llego UNIX, se encontraba
la University of California Berkeley. Allí se modificó el
sistema incorporando una variante notable: la utilización de memoria
virtual paginada. Así en 1978 surge UNIX 3BSD (Berkeley Software
Distribution). En 1980 DARPA (Defense Advanced Research Projects Office),
verdadero motor de investigación en
USA, (sí, sí, la de la famosa DARPA InterNet, que pasó
a ARPANet o ARPA Internet y de ahí a sólo internet), subvenciona
el desarrollo de 4BSD. Poco después surge 4.1BSD incorporando nuevas
utilidades como el clásico editor vi y la shell csh. En 1982 SUN
desarrolla para sus arquitecturas el sistema SunOS basado en la versión
BSD. Un año después surge la versión 4.2BSD que incorpora
DEC en VAX y adopta SUN Microsystems. 1984 marca un nuevo hito en la historia
de UNIX ya que SUN desarrolla los conceptos de RPC (Remote Procedure Call)
y NFS (Network File System) y los incorpora a SunOS.
Panorama actual: Familias de UNIX
Cada fabricante ha ido desarrollando sus estándares:
AT&T SVID, el interfaz SYSTEM V; HP, UP-UX (tipo SYSTEM V); DEC, ULTRIX
(tipo 4.2BSD); Microsoft, XENIX; e IBM, AIX. Como se puede ver, en líneas
generales, existen dos tipos de UNIX: tipo BSD y tipo SYSTEM V. También
existen implementaciones de tipo académico, como MINIX, desarrollada
por Tanembaum con afán didáctico en 1983; o XINU, desarrollada
por Comer en 1984. La razón de los distintos nombres que recibe
el sistema es que UNIX es una marca registrada de AT&T. Así,
cada implementación recibe el suyo propio.
En la actualidad Berkeley acaba de anunciar la salida
de 4.4BSD y su retirada del mundo UNIX, por lo que el futuro es de SYSTEM
V. SUN, por ejemplo, ha pasado ya a este sistema en la última versión
de su S.O. Solaris. Sin embargo, en los últimos años se ha
buscado la convergencia de los sistemas. As¡, desde el punto de vista
de programación, BSD ha ganado la batalla ya que su interfaz de
sockets a pasado a ser el medio clásico de comunicación entre
procesos. En su momento, los usaremos.
Se pueden encontrar muchos otros UNIX: SCO, NetBSD,
FreeBSD, LINUX, GNU (...) y cada vez más para el mundo PC.
En este momento nos detendremos para dirigir una breve mirada a LINUX.
Cronología
1969 Desarrollo original por Thompson y Ritchie (Laboratorios Bell AT&T) sobre un PDP-7.
1970 Versión de 2 usuarios sobre DEC PDP-11.
1971 Versión multiusuario sobre PDP-11/40,45,70.
1973 Re-escritura del S.O. en C (Kernighan, Ritchie) ya que originalmente
estaba programado en ensamblador. De esta forma
se podía transportar a otras máquinas.
1974 Empieza la explotación comercial (25.000 dólares) de las fuentes.
1975 Versión 6 de UNIX y cesión a Universidades para su enseñanza.
1983 Aparece el UNIX System V (ATT) con soporte para mensajes y memoria
compartida. También aparece una versión
para PC: XENIX (Microsoft).
1989 UNIX System V, R4 con soporte para RFS, Streams, Redes y Tiempo Real.
En 1993 Novell compra UNIX a la compañía AT&T
En 1994 Novell le da el nombre "UNIX" a X/OPEN
En 1995 Santa Cruz Operations le compran UnixWare a Novell. Santa Cruz Operations y Hewlett-Packard anuncia que desarrollarán conjuntamente una versión de Unix de 64-bit.
En 1996 International Data Corporation prevee que en 1997 habrá
mas de 3 millones de computadoras con Unix a nivel
mundial.
Acabando el año 1980, IBM se puso en contacto con Microsoft, de Bill Gates, y le expuso que estaba desarrollando su propio ordenador personal de 8 bits, al estilo del Apple ][. IBM deseaba que Microsoft portara su BASIC y se incluyera en la ROM de su nuevo ordenador.
B. Gates estaba convencido, y convenció a IBM, de que el futuro de los ordenadores personales estaba en los 16 bits. Nadie sabía de que hubiera un sistema operativo de 16 bit. Unicamente un ingeniero de Seattle Computer Products, Tim Patterson, había desarrollado una tarjeta basada en un nuevo procesador de Intel, el 8086 de 16 bits, y requería un nuevo soft que Patterson desarrolló a partir del CP/M.
Originalmente Patterson le llamó QDOS, Quick and Dirty Operating System (Rápido y Sucio Sistema Operativo). Conservó las estructuras fundamentales del CP/M, a fin que la traducción de los programas CP/M a QDOS fuera rápida y fácil. Añadió un control de dispositivos llamado FAT, File Allocation Table (Tabla de Localización de Ficheros) que Gates había desarrollado para su BASIC de disco del Altair que aun hoy permanece vigente.
Gary Kindall, el fundador de Digital Research, estaba a punto de comprar una versión de BASIC de un competidor de Microsoft cuando le propusieron desde IBM que desarrollase una versión de 16 bits del CP/M.
Las claúsulas de no divulgación de
IBM respecto a Digital Research puede que no le gustaran mucho a G. Kindall.
Puede que a B. Gates no le gustara mucho la maniobra de G. Kindall de incluir
en el CP/M-86 un BASIC que no fuera el suyo (conociendo las maniobras posteriores
de B. Gates, yo me inclino por esta versión). Lo cierto es que B.
Gates y P. Allen compraron a T. Patterson el QDOS por unos 5 millones de
pesetas y se lo ofrecieron a IBM junto con el BASIC más los desarrollos
que se hicieran de FORTRAN, COBOL, Pascal y el ensamblador 8086.
En noviembre de 1980 IBM aceptó.
El 12 de Agosto de 1981 IBM presentó su nuevo ordenador personal, denominado PC, el sistema operativo se renombró a PC-DOS. Microsoft mantuvo el nombre MS-DOS para sus propios desarrollos. Se ofrecía como opción un CP/M-86 que estaría disponible varios meses después y un p-system UCDS, pero a unos precios disuasorios, con lo que los desarrolladores de software eligieron PC/MS-DOS.
Las distintas versiones del MS-DOS
(o PC-DOS)
PC-DOS 1.0 (MS-DOS 1.0)
(agosto 1980)
Cuando IBM presentó su ordenador personal
PC incluía la primera versión del DOS que denominó
PC-DOS 1.0
Era muy semejante al CP/M-80, pero contenía cierto número
de mejoras:
MS-DOS 4.0 (PC-DOS 4.0)
(verano 1988)
El divorcio de Microsoft e IBM es ya inevitable. IBM desea presentar como el sistema operativo stándard a OS/2. Por su parte Microsoft tiene en mente el Windows como entorno de trabajo. El usuario del PC está muy cansado de tanta línea de comandos, desea un entorno de ventanas y comienza a migrar (peligrosamente) al Macintosh.
Quizás haya sido el mejor DOS de todos. Las versiones 3.2 y 5.0 han tenido merecida fama por ser un gran avance sobre lo anterior y disponer de una estabilidad a toda prueba.
La opinión generalizada es que debería haber sido una revisión de la versión 5, sin embargo Microsoft decidió sacarla como nueva. Estaba plagada de numerosos fallos, compartiendo con las versiones del MS-DOS 4 la triste fama de ser un fiasco. Los fallos fueron corregidos con un paquete independiente de corrección: el MS-DOS 6.22.
Microsoft ha dado por finalizada la vida útil
del MS-DOS. A finales de 1995 presentó el muy esperado Windows'95.
Pese a las espectativas surgidas gracias a las versiones betas del que
sería Windows'95 (se denominaron Chicago) la versión definitiva
del Windows'95 defraudó al público especializado. Pese a
dar por muerto al DOS, Windows sigue dependiendo de él para arrancar
y para sorpresa de todos el MS-DOS, en su versión 7 sigue vivo.
14 Bill Gates revela Microsoft Windows XP: el nuevo Windows
Evento exclusivo presenta el debut de nuevas experiencias y apariencias emocionantes
SEATTLE, Washington; febrero 13, 2001. - Hoy, el
sistema operativo Microsoft® Windows® XP hizo su debut público
durante el Experience Music Project en Seattle. Bill Gates, Presidente
y Director de arquitectura de software de Microsoft , y Jim Allchin, Vicepresidente
del grupo de Windows y del grupo de productos de plataformas, presentaron
al mundo Windows XP (anteriormente con el nombre de código "Whistler"),
el nuevo Windows para el hogar y el trabajo. El evento mostró un
vistazo del nuevo diseño visual para Windows y se ofrecieron demostraciones
en el escenario de las nuevas y emocionantes experiencias de cómputo
personal habilitadas por Windows XP, así como declaraciones grabadas
en video de líderes de la industria garantizado el soporte sin precedente
para el producto.
"Las personas desean hacer más y más
con sus PCs", explicó Gates. "Windows XP se desarrolló sobre
sus sueños, al llevar el poder y la adaptabilidad de la PC a un
nivel nuevo. Se ofrece sobre nuestra visión de proporcionar el Windows
más avanzado a la fecha a los usuarios del hogar, otorgando el verdadero
y sorprendente potencial de las PCs de todas las personas".
Windows XP, desarrollado sobre el motor mejorado
Windows 2000, ofrece una nueva y fresca apariencia, y amplía experiencia
de cómputo personal al unir las PCs, los dispositivos y los servicios
como nunca antes. Windows XP también representa un paso importante
al ofrecerlo sobre la visión Microsoft .NET. La PC basada en Windows
XP se localizará al centro de la experiencia .NET, facultando a
las personas para avanzar más allá de las aplicaciones, servicios
y dispositivos desconectados para completar las experiencias de cómputo
que redefinen la relación entre las personas, el software y la Internet.
Windows XP introduce una apariencia fresca.
Windows XP introducirá una apariencia completamente nueva que permitirá que sea muy fácil de usar, e increíblemente poderosa para todos los tipos de usuarios de PC. El nuevo diseño visual facilitará la computación basada en tareas, ofreciendo una apariencia fresca para su escritorio familiar, además de que será la actualización más significativa para la interfaz Windows desde Windows 95. El diseño ofrecerá una apariencia sencilla, colorida y limpia al escritorio, al tiempo que permitirá que la PC sea más fácil y más intuitiva de usar. Con el objetivo de mejorar la experiencia del usuario, estas mejoras son el resultado de una importante aportación de los clientes, investigación y desarrollo. Aquellos interesados en echar un vistazo a estos nuevos y emocionantes elementos deben visitar
Windows XP ofrecerá y permitirá ricas experiencias a los usuarios.
Windows XP no sólo mejorará la experiencia en la PC, sino que ampliará el poder de la PC a través de los dispositivos, de los medios digitales y de los servicios Web para ofrecer nuevas y más ricas experiencias a los usuarios. Microsoft mostró hoy ejemplos de estas experiencias ricas para los usuarios, como la capacidad de cualquier persona que cuente con una cámara digital o scanner de copiar imágenes en su PC, verlas, imprimirlas y compartirlas con el mundo. Windows XP mejora la experiencia de música digital, facilitando a los usuarios crear sus colecciones de música digital rápidamente y llevarse su música con ellos en dispositivos de música portátiles populares. Además, Windows XP facilita y hace divertido para los usuarios encontrar y ver películas en la Web, editar y compartir sus propias películas del hogar y reproducir DVDs. Windows XP también facilita a los usuarios obtener ayudar sobre una pregunta o problema, permitiéndoles conectarse directamente con un amigo o con un experto que les puede ayudar. La PC basada en Windows XP será el lugar en donde todos estos dispositivos digitales, medios emocionantes y servicios nuevos se unen.
La industria une sus fuerzas en Windows XP.
Incluso antes del lanzamiento oficial de Windows
XP, programado para el segundo semestre de este año, los líderes
de la industria unen sus fuerzas detrás del sistema operativo. Los
fabricantes de computadoras personales están deseosos de ofrecer
a los clientes productos nuevos al combinar las innovaciones más
recientes de hardware con el nuevo Windows.
"La combinación de Windows XP y Compaq PCs
ofrecerá a nuestros clientes una experiencia de cómputo más
rica, ya sea en casa, en el trabajo o en el camino", dijo Michael D. Capellas,
Presidente y Director General de Compaq. "Compaq y Microsoft comparten
una visión común enfocada en facilitar a los clientes el
acceso a la información, contenidos y entretenimiento que desean,
cuando, donde y como lo desean. Windows XP es un producto innovador que
permitirá que esta visión se convierta en realidad. Compaq
ha trabajado estrechamente con Microsoft para dar vida a Windows PX, y
estamos comprometidos en tenerlo disponible para nuestras PCs empresariales
y de cliente tan pronto como se libere".
Además, los minoristas ya anticipan una fuerte
demanda para una amplia gama de productos que funcionarán con Windows
XP, incluyendo PCs, software, hardware y dispositivos nuevos. Varios de
estos minoristas planean ofrecer productos que asegurarán una transición
suave a Windows XP cuando esté disponible más adelante este
año.
"Circuit City está comprometiéndose
fuertemente con nuestros clientes", expresó W. Alan McCollough,
Presidente y Director General de Circuit City. "A partir de hoy, vamos
a asegurar que todas las PCs basadas en Windows que vendemos estén
configuradas para permitir una transición fácil a Windows
XP. Cuando esté disponible, todas las PCs basadas en Windows que
vendemos estarán ejecutando Windows XP. También estamos trabajando
estrechamente con Microsoft para ayudar a nuestros socios de hardware y
software a estar listos para este importante lanzamiento, y asegurar que
los productos de hoy estén listos para Windows XP.
Disponibilidad de Windows XP
Windows XP estará disponible en dos versiones:
Windows XP Profesional para usuarios empresariales y Windows XP Home Edition
para los usuarios del hogar. Se tiene programado que la segunda versión
beta de Windows XP saldrá al mercado el próximo mes para
un grupo selecto de clientes, socios y probadores de beta Microsoft. La
versión final de Windows XP está programada para estar disponible
al público durante el segundo semestre de 2001.
A lo largo del desarrollo de este trabajo comprendimos
la importancia y la versatilidad de los sistemas operativos.
Reconocemos en ellos un componente esencial en el
trabajo con computadores y además por la cercanía de “su
labor” con el usuario es tremendamente importante el grado de comodidad
que permita en la operación de los sistemas computacionales.
Por esto ultimo es evidentemente que el ambiente
gráfico en la interfaz que le entrega el Sistema Operativo al usuario
ha tomado la relevancia que hoy tiene.
Vimos como Windows ha alcanzado la importancia que
hoy tiene especialmente entre los usuarios de “nivel medio” y la evolución
que ha tenido, como también la de otros importantes Sistemas Operativos.
Por último hay que decir que el soporte hardware
del sistema operativo es muy amplio, admitiendo por ejemplo unidades ópticas
SCSI-2, infrarrojos, PCMCIA y dispositivos especiales para los portátiles
ThinkPad de IBM, como floppys externos o Ultrabays.
Publicaciones de apoyo:
Hanez, D.: Introducción a los Sistemas Operativos, Addison Wesley, 1987.
Silberschatz y Galvin: Sistemas Operativos. Prentice Hall.
Direcciones Internet visitadas: