Download es un sistema operativo - wikisistemasoperativos
Document related concepts
Transcript
COMPILACION BIBLIOGRAFICA DE SISTEMAS OPERATIVOS Julián Alejandro Cardona 904554 Fredy Daniel Riascos 906545 Nelson Zuluaga 906558 Carlos Andrés Zuluaga 906559 Carlos Hernán Gómez Profesor UNIVERSIDAD NACIONAL DE COLOMBIA SEDE MANIZALES 2009 Página 1 INDICE Marco Teórico…………………………………………………3 1. Introducción………………………………………………..4 2. Estructura de los sistemas operativos…………………..8 3. Gestión del procesador…………………………………..10 4. Gestión de memoria……………………………………...13 5. Concurrencia……………………………………………...14 6. Gestión de archivos entrada/salida……………………..16 7. Principios de diseño………………………………………21 8. Sistemas Operativos Multiprocesadores………………..22 9. Sistemas Operativos Distribuidos……………………….23 10. Sistemas Operativos De Tiempo Real………………...26 11. Presentación técnica de sistemas operativos………..27 12. Bibliografía……………………………………………….74 Conclusiones Y Observaciones…………………………...76 Página 2 MARCO TEORICO En este trabajo, se nombraran las partes que constituyen un sistema operativo, para así poder entender bien su funcionamiento, ya que este es el corazón de las computadoras y es sobre el cual se soportan todos los procesos y acciones realizadas por la computadora. También se explica de manera detallada, los procesos realizados por el sistema operativo para la correcta ejecución de los procesos necesarios para el funcionamiento de la computadora, además de cómo este interactúa con las diferentes partes del hardware (procesador, memorias, etc.) para gestionar los procesos y así asegurar eficiencia en el sistema. Además, se hará una reseña histórica de los sistemas operativos mas conocidos (Windows, UNIX, etc.) donde se mostrara sus inicios y evolución debido a las nuevas tecnologías de hardware. Página 3 1. INTRODUCCION Un sistema operativo es el soporte lógico que controla el funcionamiento del equipo físico o hardware haciendo que el trabajo con la computadora sea sencillo. Desde este punto de vista podemos definirlo de la siguiente manera: Un Sistema Operativo es un conjunto de programas y funciones que controlan el funcionamiento del hardware ocultando sus detalles, ofreciendo al usuario una vía sencilla y flexible de acceso a la computadora. Los sistemas operativos han venido evolucionando a través de los años, ya que estos se han apegado íntimamente a la arquitectura de las computadoras en las cuales se ejecutan, por lo que estos S.O deben irse actualizando a medida que se desarrolla nuevo hardware sobre el cual tiene que actuar. 1.1 Historia y evolución de los sistemas operativos La evolución de los sistemas operativos ha sido una consecuencia de los avances producidos en el hardware de las computadoras, desde las primeras que se construyeron, hasta la gran variedad de ellas que existen hoy en día; por esta razón, hablaremos de cuatro niveles de sistemas operativos: El primer nivel, constituido por los sistemas operativos básicos, que surgieron en los años cincuenta con las primeras computadoras, donde todo el trabajo consistía en controlar y secuenciar la ejecución de los programas y sus datos, que en aquella época estaban sustentados en tarjetas perforadas. Apareció Página 4 la denominada secuencia automática de trabajos consistentes en intercalar entre las tarjetas de un programa y otro, una serie de tarjetas de control con instrucciones o comandos del lenguaje de control de trabajos (JCL-Job Control Languaje). El programa que controlaba el secuenciamiento de los trabajos se denominó monitor y constituyó el primer sistema operativo. El segundo nivel estuvo disponible en la década de los sesenta y su ayuda a la programación y a la gestión de los trabajos fue decisiva, proporcionando nuevos métodos de trabajo con el fin de aumentar el rendimiento de utilización del procesador. La diferencia de velocidad entre el procesador y los periféricos para la realización de operaciones de entrada/salida, hacen que el tiempo libre de espera del procesador sea excesivamente grande y por ello, surgieron métodos para minimizarlos. Aparasen los procesos online y off-line que consisten en conectar directamente los dispositivos lentos a la computadora (on-line) o hacerlo a través de dispositivos más rápidos (off-line). El tercer nivel de sistemas operativos apareció en la década de los setenta. Para mejorar aún más el rendimiento en los sistemas informáticos se utiliza el concepto de multiprogramación consistente en la ejecución, en un mismo procesador, de varios programas a la vez. Para ello existen las modalidades de proceso por lotes (batch), el tiempo compartido (Time sharing) y el tiempo real (real time) en el que, a través de políticas de asignación, se ejecutan varios programas intercalando la ejecución de sus instrucciones en el procesador. El proceso batch consiste en ir solicitando la ejecución de procesos que no precisan conversación con el usuario (no conversacionales) y estas peticiones van situándose en una cola, siendo el sistema operativo el que da entrada a un conjunto de ellos para su ejecución. Página 5 El cuarto nivel es el constituido por las últimas innovaciones en los sistemas operativos aparecidas todas ellas a partir de la década de los ochenta. En primer lugar indicaremos que no se trata, en estos casos, de aumentar la seguridad, la velocidad de procesos y las prestaciones que pueden ofrecer se al usuario. Existen sistemas operativos que controlan lo que se denomina proceso distribuido, consistente en la conexión en paralelo de varias computadoras compartiendo memoria, buses y terminales con el fin de ganar seguridad en el servicio, debido a que el sistema operativo va repartiendo el trabajo solicitado en las distintas computadoras en incluso ante el fallo o caída de una de ellas no se interrumpe el servicio por parte del resto. Para aumentar la velocidad de proceso, existe el multiproceso consistente en computadoras que poseen más de un procesador, con lo que el sistema operativo controla el reparto de trabajo entre los distintos procesadores, aumentando el número de instrucciones que la máquina puede ejecutar por unidad de tiempo. Por último, existen sistemas operativos en red para control del trabajo que se realiza en una red de computadoras y entornos operativos que permiten la utilización de un sistema operativo con mayor facilidad y además, aumentando sus prestaciones. 1.2 Conceptos y visión general de los sistemas operativos Un Sistema Operativo es un programa que actúa como intermediario entre el usuario y el hardware de un computador y su propósito es proporcionar un entorno en el cual el usuario pueda ejecutar programas. El objetivo principal de un Sistema Operativo es, entonces, lograr que el Sistema de computación se use de manera cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente. Página 6 Un Sistema Operativo es una parte importante de cualquier sistema de computación. Un sistema de computación puede dividirse en cuatro componentes: el hardware, el Sistema Operativo, los programas de aplicación y los usuarios. El hardware (Unidad Central de Procesamiento (UCP), memoria y dispositivos de entrada/salida (E/S)) proporciona los recursos de computación básicos. Los programas de aplicación (compiladores, sistemas de bases de datos, juegos de vídeo y programas para negocios) definen la forma en que estos recursos se emplean para resolver los problemas de computación de los usuarios. Característica de un Sistema Operativo. En general, se puede decir que un Sistema Operativo tiene las siguientes características: Conveniencia. Un Sistema Operativo hace más conveniente el uso de una computadora. Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera más eficiente posible. Habilidad para evolucionar. Un Sistema Operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio. Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos. Relacionar dispositivos (gestionar a través del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera. Organizar datos para acceso rápido y seguro. Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras. Procesamiento por bytes de flujo a través del bus de datos. Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil al Página 7 usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora. Técnicas de recuperación de errores. Evita que otros usuarios interfieran. El Sistema Operativo evita que los usuarios se bloqueen entre ellos, informándoles si esa aplicación esta siendo ocupada por otro usuario. Generación de estadísticas. Permite que se puedan compartir el hardware y los datos entre los usuarios. El software de aplicación son programas que se utilizan para diseñar, tal como el procesador de palabras, lenguajes de programación, hojas de cálculo, etc. El software de base sirve para interactuar el usuario con la máquina, son un conjunto de programas que facilitan el ambiente plataforma, y permite el diseño del mismo. 2. ESTRUCTURA DE LOS SISTEMAS OPERATIVOS Un sistema operativo tiene la siguiente estructura: Cargador: Cualquier programa que requiere ser ejecutado en la computadora, deberá ser transferido desde su lugar de residencia a la memoria principal. Cargador para el S.O: Este programa se encarga de transferir desde algún medio de almacenamiento externo (disco, cinta o tambor) a la memoria principal, los programas del sistema operativo que tienen como finalidad establecer el ambiente de trabajo del equipo de cómputo. Existe un programa especial almacenado en memoria ROM que se encarga de accesar a este Página 8 programa cargador. Cuando el sistema operativo esta cargado en memoria toma el control absoluto de las operaciones del sistema. Cargador incluido en el S.O: Su función es cargar a memoria todos los archivos necesarios para la ejecución de un proceso. Supervisor: Es el administrador del sistema que controla todo el proceso de la información por medio de un gran número de rutinas que entran en acción cuando son requeridos. Funge como enlace entre los programas del usuario y todas las rutinas que controlan los recursos requeridos por el programa para posteriormente continuar con su ejecución, el supervisor también realiza otras funciones como: Administración de la memoria, administración de las rutinas que controlan el funcionamiento de los recursos de la computadora, manejo de archivos, administración y control de la ejecución de los programas. Lenguaje de comunicación: Es el medio a través del cual el usuario interactúa directamente con el sistema operativo y esta formado por comandos que son introducidos a través de algún dispositivo. Generalmente un comando consta de dos partes, la primera formada por una palabra que identifica el comando y la acción a realizar y la segunda parte por un conjunto de valores o parámetros que permiten seleccionar diversas operaciones de entre los que dispone el comando. Utilería de sistema: Son programas o rutinas del sistema operativo que realizan diversas funciones de uso común o aplicación frecuente como son: clasificar, copiar e imprimir información. 2.1 Administración de recursos Sirven para administrar los recursos de hardware y de redes de un sistema informático, como el CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida. Página 9 3. GESTION DEL PROCESADOR 3.1 Planeación y despacho La planificación del procesador se refiere a la manera o técnicas que se usan para decidir cuánto tiempo de ejecución y cuando se le asignan a cada proceso del sistema. Obviamente, si el sistema es monousuario y monotarea no hay mucho que decidir, pero en el resto de los sistemas esto es crucial para el buen funcionamiento del sistema. En los sistemas de planificación generalmente se identifican tres niveles: el alto, el medio y el bajo. El nivel alto decide que trabajos (conjunto de procesos) son candidatos a convertirse en procesos compitiendo por los recursos del sistema; el nivel intermedio decide que procesos se suspenden o reanudan para lograr ciertas metas de rendimiento mientras que el planificador de bajo nivel es el que decide que proceso, de los que ya están listos (y que en algún momento paso por los otros dos planificadores) es al que le toca ahora estar ejecutándose en la unidad central de procesamiento. En este trabajo se revisaran principalmente los planificadores de bajo nivel porque son los que finalmente eligen al proceso en ejecución. Una estrategia de planificación debe buscar que los procesos obtengan sus turnos de ejecución apropiadamente, conjuntamente con un buen rendimiento y minimización de la sobrecarga (overead) del planificador mismo. En general, se buscan cinco objetivos principales: justicia o imparcialidad, maximizar la producción, maximizar el tiempo de respuesta, evitar el aplazamiento indefinido, el sistema debe ser predecible. El planificador del procesador tiene como misión la asignación del mismo a los procesos que están en la cola de procesos preparados. Esta cola es alimentada desde dos puntos distintos: Página 10 1. Cada vez que un usuario inicie la ejecución de un programa, el planificador a largo plazo recibe la orden de ejecución, crea el proceso y lo pasa al planificador a corto plazo, colocándose en la cola de procesos preparados. 2. Cuando un proceso deja de estar en estado de ejecución y no existen causas para su bloqueo, o deja de estar bloqueado, pasa nuevamente a la cola de procesos preparados. Cuando un proceso termina su ejecución, deja de existir para el planificador. Las políticas de planificación se agrupan en: • Políticas apropiativas. Son las que producen un cambio de proceso con cada cambio de contexto; es decir, el proceso que está haciendo uso del procesador puede ser temporalmente suspendido y permitir que otro proceso se apropie del procesador. Se utilizan en sistemas operativos con tiempo compartido y tiempo real. • Políticas no apropiativas. Son aquellas en las que un proceso no abandona nunca el procesador desde su comienzo hasta su fin. Se utilizan en sistemas de proceso por lotes. Planificación en tiempo real. Evaluación de algoritmos. El siguiente paso es evaluar los diversos algoritmos que se estén considerando. Hay varios métodos de evaluación distintos, entre ellos: • Modelado determinista. Es un tipo de evaluación analítica que toma una carga de trabajo predeterminada específica y define el desempeño del algoritmo para esa carga de trabajo. • Modelos de colas. Consiste en determinar las distribuciones características del sistema, tales como: la distribución de las ráfagas de CPU y E/S (comúnmente exponencial) y la distribución de los tiempos en que los procesos llegan al sistema. A partir de estas distribuciones es posible calcular el rendimiento promedio, el aprovechamiento, el tiempo de espera, etc. para la mayor parte de los algoritmos. Los modelos consisten asociar a cada recurso colas de procesos en espera. Página 11 Conociendo frecuencias de llegada y rapidez de servicio es posible calcular el aprovechamiento, la longitud de colas, el tiempo de espera promedio, etc. • Simulaciones. Implica programar un modelo del sistema de computación. El simulador tiene una variable que representa un reloj; cuando se incrementa el valor de esta variable, el simulador modifica el estado del sistema de modo que refleje las actividades de los dispositivos, los procesos y el planificador. Conforme se ejecuta la simulación, se recopilan e imprimen los datos estadísticos que indican el desempeño del algoritmo. Los datos que se alimentan a la simulación se pueden generar de varias maneras. El método más común emplea un generador de números aleatorios. Otra forma es a través de cintas de rastreo que se crean vigilando el sistema real y registrando la secuencia de sucesos reales. • Implementaciones. La única forma exacta de evaluar un algoritmo de planificación es codificarlo, colocarlo en el SO y ver cómo funciona. El principal inconveniente es el costo. Es necesario codificar el algoritmo y modificar el SO para que lo apoye, crear las estructuras de datos que requiere y ver la reacción de los usuarios ante un SO que cambie constantemente. Otro inconveniente de cualquier evaluación de algoritmos es que el entorno en el que se usa el algoritmo cambiará no sólo cuando se escriben nuevos programas y los tipos de problemas cambian sino también por el desempeño del planificador. Existen algoritmos de planificación más flexibles que permiten los administradores o usuarios alterarlos o modificar las variables que utilizan. Planificación de la CPU – UNIX Planificación de la CPU – LINUX Planificación de la CPU – WINDOWS NT Página 12 3.2 Administración de procesos 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. De esto se encargar el administrador de recursos ya que reserva estos recursos 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. 4. GESTIÓN DE MEMORIA Un sistema operativo contiene un conjunto de programas cuya misión es la de asignar y controlar el almacenamiento en la memoria interna y externa de la computadora, fundamentalmente la interna por ser un recurso escaso y caro. Gestión de memoria central. Existen multitud de métodos de asignación y control de la memoria central o interna según se trate de un sistema operativo monoprogramado (un solo programa en ejecución) o multiprogramado (varios programas Página 13 en ejecución simultáneamente). Los programas que controlan y gestionan la memoria interna asignan los espacios que deben ocupar los programas y datos estableciendo zonas de seguridad para que no se produzcan colisiones. Además, en caso de sistemas operativos con memoria virtual donde se procesan programas que se van cargando parcialmente en la memoria, los programas de control gestionan la paginación o segmentación del programa para que el proceso no se interrumpa en ningún momento. Gestión de memoria secundaria. Los programas de control y gestión de la memoria secundaria tienen como misión hacer ver al usuario el tratamiento de la información almacenada en la memoria externa, desde el punto de vista lógico ocultándole la realidad física. Por otra parte, un sistema puede mantener en un mismo instante un gran número de usuarios y procesos, y éstos pueden estar solicitando y manejando continuamente archivos en memoria externa, en ocasiones hasta compartiéndolos, y por ello será necesario la existencia de una serie de programas en el sistema operativo que nos aseguren el correcto funcionamiento del almacenamiento secundario. 5. LA CONCURRENCIA Es fundamental en todas estas áreas y para el diseño sistemas operativos. La concurrencia comprende un gran número de cuestiones de diseño, incluida la comunicación entre procesos, compartición y competencia por los recursos, sincronización de la ejecución de varios procesos y asignación del tiempo de procesador a los procesos. Se verá que estas cuestiones no solo surgen en entornos de multiprocesadores y proceso distribuido, sino incluso en sistemas multiprogramados con un Página 14 solo procesador. La concurrencia puede presentarse en tres contextos diferentes: • Múltiples aplicaciones: la multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varias aplicaciones activas. • Aplicaciones estructuradas: como ampliación de los principios del diseño modular y la programación estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes. • Estructura del sistema operativo: las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos o hilos. Principios generales de la concurrencia En un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo aparentando una ejecución simultánea. Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecución intercalada produce beneficios en la eficiencia del procesamiento y en la estructuración de los programas. La intercalación y la superposición pueden contemplarse como ejemplos de procesamiento concurrente en un sistema monoprocesador, los problemas son consecuencia de la velocidad de ejecución de los procesos que no pueden predecirse y depende de las actividades de otros procesos, de la forma en que el sistema operativo trata las interrupciones surgen las siguientes dificultades: 1. Compartir recursos globales es riesgoso 2. Para el sistema operativo es difícil gestionar la asignación óptima de recursos. Página 15 Las dificultades anteriores también se presentan en los sistemas multiprocesador. El hecho de compartir recursos ocasiona problemas, por esto es necesario proteger a dichos recursos. Los problemas de concurrencia se producen incluso cuando hay un único procesado. 6. GESTION DE ARCHIVOS ENTRADA/SALIDA La función principal de un S.O.: controlar todos los dispositivos de E/S de la computadora. El Subsistema de E/S se encarga de · Emitir órdenes a los dispositivos · Captar las interrupciones · Manipular errores Además de proporcionar una interfaz entre dispositivos y resto del sistema. Los Sistemas Operativos controlan los dispositivos de E/S por tres razones: a) La interfaz de hardware para la mayoría de los periféricos es relativamente cruda (necesita software complejo para controlarlos y utilizarlos). Página 16 b) Los periféricos son recursos compartidos (el S.O. debe protegerlos para que los accesos sean correctos y seguros). c) El Sistema Operativo proporciona una interfaz consistente, uniforme y flexible para todos los periféricos (permite a los usuarios referenciar a los dispositivos por el nombre y realizar operaciones de alto nivel sin necesidad de conocer la configuración de la máquina). Diferencias entre dispositivos de E/S. Clasificación Existen gran cantidad de periféricos de E/S que difieren en aspectos de: Velocidad de transferencia de información (por ejemplo, en un disco magnético está en torno a los 10 millones de c.p.s., mientras que en un teclado ronda los 50 c.p.s.). Unidad de transferencia (puede ser carácter, palabra, byte, registro, bloque…). Representación de los datos (distintas formas de codificación para diferentes soportes de E/S). Operaciones permitidas (distintos periféricos, distintos tipos de operaciones. Por ejemplo, una cinta magnética se puede rebobinar, pero el papel de una impresora no). Página 17 Condiciones de error (distintos periféricos tienen distintas causas de error. Por ejemplo, error de paridad, tarjeta arrugada, error de checksum…). Los periféricos de E/S se pueden clasificar en dos categorías: a) Dispositivos de bloques: Almacenan la información en bloques de tamaño fijo, cada uno con una dirección propia (permite leer, escribir o buscar un bloque sin dependencia de los demás). Por ejemplo: Disco magnético. b) Dispositivos de caracteres: Aceptan o entregan un flujo de caracteres sin considerar estructuras de bloques. No son direccionables y, por tanto, no permiten operaciones de búsqueda. Por ejemplo: Impresora, terminales, cintas de papel, interfaz de redes… Algunos dispositivos no encajan bien en esta clasificación. Por ejemplo: El reloj del sistema, que emite interrupciones cada cierto intervalo de tiempo. Controladores de dispositivos Las unidades de E/S constan de dos partes: una mecánica y otra electrónica (controlador de dispositivo o adaptador). El S.O. casi siempre trata con los controladores y no con los dispositivos. La comunicación entre la CPU y los controladores se realiza: En muchos minis y micros mediante un sistema de bus simple en grandes computadoras mediante buses múltiples y procesadores especializados en la E/S, llamados Canales de E/S Página 18 Cada controlador tiene un conjunto de registros (conocidos como Puerto de E/S) que se usan para la comunicación con la CPU. Básicamente: · Registros de datos (búfer de E/S) · Registros de órdenes · Registros de estado Ejemplos de puertos son los puertos paralelos, los puertos serie, los puertos USB… Las direcciones de los puertos de E/S pueden: · estar incluidas en las direcciones de memoria, ó · estar en un espacio de direcciones aparte, llamado Espacio de E/S. El S.O. realiza la E/S escribiendo comandos en los registros de los controladores. La E/S se realiza generalmente guiada por interrupciones, según los siguientes pasos: · El S.O. solicita una operación a un controlador. · El controlador inicia la operación (la CPU puede asignarse a otro proceso). · La operación del controlador finaliza. · El controlador envía una interrupción para informar del resultado. · El S.O. comprueba los resultados de la operación y obtiene los resultados y el estado del dispositivo leyendo uno o más bytes de información de los registros del controlador. Objetivos del software de E/S Independencia de los dispositivos: Debe ser posible escribir programas que se puedan utilizar con archivos (en disquete o en Página 19 disco duro) o sobre otros dispositivos sin tener que modificar los programas para cada caso. Uniformidad en los nombres de dispositivo: El dispositivo se debe poder identificar mediante un número o una cadena de caracteres y no debe depender del dispositivo. Los programas harán referencia al dispositivo mediante su identificador asociado, siendo el S.O. el encargado de detectar el dispositivo real al que se está haciendo referencia. Distinguir el tipo de transferencias: síncronas (bloqueado) o asíncronas (dirigido por interrupciones). La mayoría de la E/S física es asíncrona, es decir, la CPU solicita la operación y hace cualquier otra cosa hasta que recibe la interrupción de fin de la operación solicitada. Los programas de usuario se bloquean hasta que el S.O. recibe las operaciones asociadas a la interrupción. Manipulación de errores: Los errores se deben gestionar tan cerca del hardware como sea posible. Si el controlador detecta un problema en la lectura, intentará corregirlo (por ejemplo, haciendo otra lectura); si no puede, lo hará el driver del dispositivo (por ejemplo, vuelve a leer el bloque). Sólo si las capas inferiores no pueden solucionar el error, se informará a las capas superiores (usuario). Tratamiento uniforme de los periféricos: El S.O. debe manipular todos los tipos de dispositivos evitando los problemas que pueden presentar. Por ejemplo, existen dispositivos compartidos (como el disco duro) y dedicados (como la impresora), y el S.O. debe tratarlos como tales sin que el usuario tenga constancia de estas distinciones. Página 20 Estos objetivos se pueden lograr estructurando el software de E/S en 4 capas: 1. Manipulador de interrupciones 2. Drivers de dispositivos 3. Software de E/S independiente de los dispositivos 4. Software a nivel de usuario 7. PRINCIPIOS DE DISEÑO SO debe definir mecanismos y no políticas. Ej. Generalmente, se da más prioridad a procesos con más E/S No debería fijarlo el SO, sino ser configurable Portabilidad Sistema Operativo escrito en lenguaje de alto nivel minimizando ensamblador No siempre aprovechar toda la funcionalidad específica del HW. Ejemplo: Sistema Operativo que usa 4 niveles de privilegio de Pentium Principio de mínimo privilegio, el software debe ejecutar sólo con privilegio que requiere. Ejemplo: demonios UNIX con permisos de súper usuario Página 21 8. SISTEMAS MULTIPROCESADORES. 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. Un sistema multiprocesador tiene más de un CPU compartiendo memoria y periféricos; la técnica de multiprocesamiento consiste en hacer funcionar varios procesadores en forma paralela para obtener un poder de cálculo mayor que el obtenido al usar un procesador de alta tecnología o al aumentar la disponibilidad del sistema (en el caso de fallas del procesador).Las ventajas más evidentes son mayor potencia de computación y fiabilidad. Un sistema de multiprocesadores debe tener capacidad para gestionar la repartición de memoria entre varios procesadores, pero también debe distribuir la carga de trabajo. Podemos definir como tipos de sistemas de multiprocesadores a: Multiprocesamiento simétrico “SMP” (multiprocesamiento simétrico o multiprocesador simétrico) simétricos; en donde se hace referencia a la arquitectura en la que todos los procesadores acceden a la misma memoria compartida; 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. Página 22 Multiprocesamiento Asimétrico, en los cuales cada procesador tiene asignado una tarea predefinida. Un procesador maestro controla el sistema. 9. 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 sí a través de varias líneas de comunicación, tales como líneas telefónicas o buses de alta velocidad. Los sistemas distribuidos están basados en las ideas básicas de: Transparencia. El concepto de transparencia de un sistema distribuido va ligado a la idea de que todo el sistema funcione de forma similar en todos los puntos de la red, independientemente de la posición del usuario. Queda como labor del sistema operativo el establecer los mecanismos que oculten la naturaleza distribuida del sistema y que permitan trabajar a los usuarios como si de un único equipo se tratara. En un sistema transparente, las diferentes copias de un archivo deben aparecer al usuario como un único archivo. Queda como labor del sistema operativo el controlar las copias, actualizarlas en caso de modificación y en general, la unicidad de los recursos y el control de la concurrencia. El que el sistema disponga de varios procesadores debe lograr un mayor rendimiento del sistema, pero el sistema operativo debe controlar que tanto los Página 23 usuarios como los programadores vean el núcleo del sistema distribuido como un único procesador. El paralelismo es otro punto clave que debe controlar el sistema operativo, que debe distribuir las tareas entre los distintos procesadores como en un sistema multiprocesador, pero con la dificultad añadida de que ésta tarea hay que realizarla a través de varios ordenadores. Eficiencia. La idea base de los sistemas distribuidos es la de obtener sistemas mucho más rápidos que los ordenadores actuales. Es en este punto cuando nos encontramos de nuevo con el paralelismo. Para lograr un sistema eficiente hay que descartar la idea de ejecutar un programa en un único procesador de todo el sistema, y pensar en distribuir las tareas a los procesadores libres más rápidos en cada momento. La idea de que un procesador vaya a realizar una tarea de forma rápida es bastante compleja, y depende de muchos aspectos concretos, como la propia velocidad del procesador, pero también la localidad del procesador, los datos, los dispositivos, etc. Se han de evitar situaciones como enviar un trabajo de impresión a un ordenador que no tenga conectada una impresora de forma local. Flexibilidad. Un proyecto en desarrollo como el diseño de un sistema operativo distribuido debe estar abierto a cambios y actualizaciones que mejoren el funcionamiento del sistema. Esta necesidad ha Página 24 provocado una diferenciación entre las dos diferentes arquitecturas del núcleo del sistema operativo: el núcleo monolítico y el micronúcleo. Las diferencias entre ambos son los servicios que ofrece el núcleo del sistema operativo. Mientras el núcleo monolítico ofrece todas las funciones básicas del sistema integradas en el núcleo, el micronúcleo incorpora solamente las fundamentales, que incluyen únicamente el control de los procesos y la comunicación entre ellos y la memoria. El resto de servicios se cargan dinámicamente a partir de servidores en el nivel de usuario. Escalabilidad. Un sistema operativo distribuido debería funcionar tanto para una docena de ordenadores como varios millares. Igualmente, debería no ser determinante el tipo de red utilizada (LAN o WAN) ni las distancias entre los equipos. Aunque este punto sería muy deseable, puede que las soluciones válidas para unos cuantos ordenadores no sean aplicables para varios miles. Del mismo modo el tipo de red condiciona tremendamente el rendimiento del sistema, y puede que lo que funcione para un tipo de red, para otro requiera un nuevo diseño. La escalabilidad propone que cualquier ordenador individual ha de ser capaz de trabajar independientemente como un sistema distribuido, pero también debe poder hacerlo conectado a muchas otras máquinas. Fiabilidad. Una de las ventajas claras que nos ofrece la idea de sistema distribuido es que el funcionamiento de todo el sistema no debe Página 25 estar ligado a ciertas máquinas de la red, sino que cualquier equipo pueda suplir a otro en caso de que uno se estropee o falle. La forma más evidente de lograr la fiabilidad de todo el sistema está en la redundancia. La información no debe estar almacenada en un solo servidor de archivos, sino en por lo menos dos máquinas. Mediante la redundancia de los principales archivos o de todos evitamos el caso de que el fallo de un servidor bloquee todo el sistema, al tener una copia idéntica de los archivos en otro equipo. Comunicación. La comunicación entre procesos en sistemas con un único procesador se lleva a cabo mediante el uso de memoria compartida entre los procesos. En los sistemas distribuidos, al no haber conexión física entre las distintas memorias de los equipos, la comunicación se realiza mediante la transferencia de mensajes. 10. SISTEMAS DE TIEMPO REAL. 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: Sistemas de tiempo real por hard, garantizan que las tareas críticas se ejecutan en tiempo. Los datos son almacenados en memorias Página 26 no volátiles (ROM), no utilizan técnicas de memoria virtual ni tiempo compartido, ambas técnicas no pueden ser implementadas en por hardware. 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ótico. Pero si para multimedia, supervisión de controles industriales y realidad virtual. 11. PRESENTACIÓN TÉCNICA DE OPERATIVOS DISPONIBLES EN EL DISTINTOS SISTEMAS MERCADO Sistemas operativos Unix y similares. Historia de los sistemas UNIX El primer sistema "Unix" fue desarrollado en 1965 por Ken Thompson en los laboratorios de Bell AT&T en Murray Hill, Nueva Jersey, Estados Unidos. El objetivo de Ken Thompson era desarrollar un sistema operativo interactivo simple, denominado "Multics" (Multiplexed Information and Computing System [Sistema informático y de Información Multiplexado]) de manera que pudiera ejecutar un juego que él mismo había creado (Space Travel [Viaje al espacio], una simulación de un sistema solar). Luego, alrededor de Multics se formó un consorcio compuesto por el MIT (Massachesetts Institute of Technology), la compañía General Electric Co. y los laboratorios Bell Lab. Página 27 En abril de 1969 los laboratorios AT&T decidieron utilizar el GECOS (General Electric Comprehensive Operating System [Sistema Operativo Completo General Electric]) en lugar de Multics. Sin embargo, Ken Thompson y Dennis Ritchie, quien se había unido al equipo, necesitaban hacer funcionar el juego Space Travel (Viaje al espacio) en una máquina más pequeña (un DEC PDP-7, Procesador de Datos Programados que sólo tenía una memoria de 4K para hacer que se ejecutaran los programas del usuario). Por este motivo, ellos rediseñaron el sistema para crear una versión limitada de Multics, denominada UNICS (UNiplexed Information and Computing Service [Servicio informático y de Información UNiplexado]), convenientemente abreviado: Unix. La fecha del 1 de enero de 1970 es considerada la fecha de nacimiento del sistema UNIX, lo que explica por qué todos los relojes del sistema en los sistemas operativos de Unix comienzan con esta fecha. Además de estas actividades, D. Ritchie jugó un papel muy importante en la definición del lenguaje C (ya que él es considerado uno de sus creadores junto con B. W. Kernighan). Así el sistema entero fue completamente reescrito en C en 1973 y se denominó Unix Time-Sharing System (Sistema de Tiempo Compartido Unix) (TSS). Cuando el sistema pasó a la versión 7 en 1979, su desarrollo fue acompañado de notables modificaciones, tales como: la extracción de las limitaciones relacionadas con el tamaño de los archivos, mejor portabilidad del sistema (que opera en varias plataformas de hardware), la inclusión de varias utilidades. Página 28 Un decreto que data del año 1956 impidió que la compañía AT&T, a la que pertenecía Bell Labs, comercializara cualquier otro producto que no fuesen teléfonos o equipos de telégrafo. Es por este motivo que se tomó la decisión, en el año 1973, de distribuir el código fuente de UNIX en las universidades, con fines educativos. Para fines del año 1977, investigadores de la Universidad de California desarrollaron otra versión Unix a partir del código fuente provisto por AT&T para poder ejecutar el sistema en su plataforma VAX y lo denominaron BSD, que significa Berkeley Software Development (Desarrollo del Software Berkeley) de esta forma se conformaron dos ramas de desarrollo para el código fuente: La rama de AT&T que se convertiría en Sistema V de los Laboratorios del Sistema UNIX (USL) La rama de BSD (Berkeley Software Development [Desarrollo del Software Berkeley]), desarrollado por la Universidad de California, en 1977, AT&T puso el código fuente de UNIX a disposición de otras compañías, a pesar de que se desarrollaron muchos sistemas similares a UNIX: AIX, Unix comercial basado en el Sistema V desarrollado por IBM en febrero de 1990 Sun Solaris, Unix comercial basado en el Sistema V y en BSD desarrollado por SUN Microsystems HP-UX, Unix comercial basado en BSD desarrollado por Hewlett Packard a partir de 1986 Ultrix, Unix comercial desarrollado por DEC IRIX, Unix comercial desarrollado por SGI Página 29 Unixware, Unix comercial desarrollado por Novell Unix SCO, Unix comercial basado en el Sistema V desarrollado por Santa Cruz Operations y Hewlett Packard a partir de 1979 Tru64 UNIX, Unix comercial desarrollado por Compaq, en 1983, AT&T tuvo el derecho de comercializar su Unix, lo que marcó la aparición del Sistema UNIX V, la versión comercial de su sistema Unix. En 1985, un profesor holandés llamado Andrew Tannenbaum, desarrolló un sistema operativo mínimo denominado Minix, con el objetivo de poder enseñarles a sus alumnos la programación de sistemas. En 1991, un estudiante finlandés, Linus Torvalds, decidió diseñar, basándose en el modelo Minix, un sistema operativo capaz de ejecutar 386 tipos de arquitecturas. Este sistema operativo se denominó "Linux" y mostraba el siguiente mensaje en el foro de discusión comp.os.minix: Hola a todos los que están utilizando minix – Estoy diseñando un sistema operativo gratuito (se trata sólo de un pasatiempo, no será gigante y profesional como gnu) para clones AT 386 (486). A continuación le mostraremos un diagrama no exhaustivo que muestra nuevamente la apariencia general de los principales sistemas Unix: Página 30 11.1 Unix. Es un sistema operativo portable, multitarea y multiusuario; desarrollado en 1969 por un grupo de empleados de los laboratorios Bell y AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas Mcllroy. Este sistema es uno de los más utilizados y con más futuro debido a que son muchos organismos oficiales y particulares los que defienden su utilización, así como muchas firmas de fabricación y comercialización de computadoras que lo incorporan en sus productos. Para dar un ejemplo, la Comunidad Económica Europea, impone el sistema operativo UNIX en todas las aplicaciones que se desarrollan bajo sus auspicios. Unix es un sistema operativo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus programas. Controla los dispositivos periféricos conectados a la máquina. Además es un sistema multiusuario, en el Página 31 que existe la portabilidad para la implementación de distintas computadoras. Ventajas de unix - Es un sistema operativo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. - Permite a los usuarios correr sus programas. - Controla los dispositivos de periféricos conectados a la máquina. - Es un sistema operativo multiusuario, con capacidad de simular multiprocesamiento y procesamiento no interactivo. - Está escrito en un lenguaje de alto nivel: C. - El sistema de ficheros está basado en la idea de volúmenes, que se pueden montar y desmontar para lo que se les asigna un nodo del árbol como punto de anclaje. Un sistema físico puede dividirse en uno o más volúmenes. - Una de las grandes ideas de UNIX es la unificación y compatibilidad de todos los procesos de entrada y salida. Para UNIX, el universo es un sistema de ficheros. De esta forma existe compatibilidad entre ficheros, dispositivos, procesos, "pipes" y "sockets". - Dispone de un lenguaje de control programable llamado "Shell". - El sistema presenta comandos de usuario (es decir, a nivel de "Shell") para iniciar y manipular Página 32 procesos concurrentes asíncronos. Un usuario puede ejecutar varios procesos, intercambiarlos e interconectarlos a través de "pipes" o "tuberías", simbolizados por un carácter especial. En DOS, también existe la idea del "pipe", sin embargo, al no existir concurrencia de procesos, no se trata de una comunicación en "tiempo real", sino de un paso de información a través de ficheros temporales. - Ofrece facilidades para la creación de programas y sistemas y el ambiente adecuado para las tareas de diseños de software. - Emplea manejo dinámico de memoria por intercambio o paginación. - El núcleo de UNIX es relativamente compacto en comparación con otros sistemas de tiempo compartido. Introduce la idea de reducir el tamaño del "kernel" y ceder ciertas funciones a programas externos al núcleo llamados "demonios". Esto ha sido muy desarrollado y en la actualidad, la tendencia es el desarrollo de "micro-kernels", sin embargo UNIX, aunque pionero, es anterior a estos desarrollos. - Tiene capacidad de interconexión y comunicaciones de procesos. - Emplea un sistema jerárquico de archivos, con facilidades de protección de archivos, cuentas y procesos. En este sistema de ficheros jerárquico todo se encuentra anclado en la raíz. La mayoría de la literatura sobre el tema dice que el sistema de ficheros UNIX es un grafo acíclico, sin embargo, la realidad es que se trata de un grafo cíclico. El DOS, por ejemplo, es un árbol, con un directorio raíz del que cuelgan subdirectorios que a su vez son raíces de otros sub-árboles. Un grafo cíclico es como un árbol en el que se pueden enlazar nodos de niveles inferiores con un Página 33 nivel superior. Es decir, se puede entrar en un subdirectorio y aparecer más cerca de la raíz de lo que se estaba. - Tiene facilidad para redireccionamiento de Entradas/Salidas. - Garantiza un alto grado de portabilidad. - UNIX realiza un riguroso control de acceso a ficheros. Cada uno se encuentra protegido por una secuencia de bits. Sólo se permite el acceso global al "root" o "superusuario". Por tanto, el universo de usuarios de UNIX se encuentra dividido en dos grupos principales, no sólo para el acceso a ficheros sino para todas las actividades: el "root", todopoderoso, para el que no hay barreras; y el resto de los usuarios, controlados por el S.O. según las directivas del "root". - UNIX es un S.O. de red, algo que a veces se confunde con un S.O. distribuido. Por ello, se ha incluido en su núcleo la arquitectura de protocolos de internet, TCP/IP. Desventajas de Unix Las desventajas del mismo pueden variar entre versiones, así como también por diversas condicionantes externas, tales como: el área de uso (personal, comercial o industrial), experticia del usuario, funcionalidad específica de las aplicaciones, entre otras. En general se podría decir que: - Desde el punto de vista comercial, no muchas personas lo conocen, ya que no es un sistema que venga pre cargado en cada PC que se compra. En otras palabras, no es tan popular Página 34 como Windows o incluso como Linux, y por tanto, es difícil encontrar los programas que se acostumbran a usar en esos otros sistemas operativos. - Desde el punto de vista de funcionalidad, el S.O. Unix vienen en muchas variantes como se sabe, sin embargo, el detalle es que hay variantes que están diseñadas para ser ejecutada en equipos especiales fabricados por una marca especifica, como IBM, SUN, HP, DELL, entre otras. Lo que limita un tanto la portabilidad de UNIX - En cuanto a la confiabilidad, UNIX fue desarrollado desde sus inicios para ser más estable que cualquier otro sistema operativo, es decir, que cuando se usa UNIX no es tan común ver ciertas pantallas de errores que salen en los otros S.O, aunque si se podrán dar casos en que hay computadores con sistemas UNIX en desuso, pero será por problemas de Hardware o de algún otro programa que trabaje mal. - A pesar de ser tan estable y no "caerse" prácticamente nunca, resulta ser muy costoso en el sentido de mantenimiento y administración. Es decir, que por ejemplo, hay empresas que pierden más dinero con un equipo fuera de línea que pagando a un administrador del sistema (que cobra mucho por su trabajo a razón de que no muchas personas conocen UNIX). - El S.O UNIX puede requerir más horas de aprendizaje que el resto de las otras plataformas de sistemas operativos. - Como ya se menciono antes, los problemas suelen ser más difíciles de resolver dado el poco apoyo y soporte que hay en el Página 35 mercado y, normalmente, el soporte del fabricante es muy costoso. - Se utiliza un lenguaje de programación muy avanzado: C, aunque en algunos casos permite Fortran y Java. 11.2 Solaris Es un sistema operativo de tipo Unix desarrollado por Sun Microsystems desde 1992 como sucesor de SunOS. Es un sistema certificado oficialmente como versión de Unix. Funciona en arquitecturas SPARC y x86 para servidores y estaciones de trabajo. Aunque Solaris fue desarrollado como software privativo, la mayor parte de su código se ha liberado como proyecto de software libre denominado OpenSolaris. Solaris es conocido por su escalabilidad, especialmente en sistemas SPARC, y por ser origen de innovadoras tecnologías, como DTrace y ZFS. Historia El primer sistema operativo de Sun nació en 1983 y se llamó inicialmente SunOS. Estaba basado en el sistema UNIX BSD, de la Universidad de Berkeley, del cual uno de los fundadores de la compañía fue programador en sus tiempos universitarios. Más adelante incorporó funcionalidades del System V, convirtiéndose Página 36 prácticamente en un sistema operativo totalmente basado en System V. Esta versión basada en System V fue publicada en 1992 y fue la primera en llamarse Solaris, más concretamente Solaris 2. Las anteriores fueron llamadas Solaris 1 con efecto retroactivo. SunOS solo tendría sentido a partir de ese momento como núcleo de este nuevo entorno operativo Solaris. De esta forma Solaris 2 contenía SunOS 5.0. Desde ese momento se distingue entre el núcleo del sistema operativo (SunOS), y el entorno operativo en general (Solaris), añadiéndole otros paquetes como Apache o DTrace. Como ejemplo de esta función, Solaris 8 contiene SunOS 5.8. 11.3 Linux Linux es un sistema operativo diseñado por cientos de programadores de todo el planeta, aunque el principal responsable del proyecto es Linus Tovalds. Su objetivo inicial es propulsar el software de libre distribución junto con su código fuente para que pueda ser modificado por cualquier persona, dando rienda suelta a la creatividad. El hecho de que el sistema operativo incluya su propio código fuente expande enormemente las posibilidades de este sistema. Este método también es aplicado en numerosas ocasiones a los programas que corren en el sistema, lo que hace que podamos encontrar muchísimos programas útiles totalmente gratuitos y con su código fuente. Y la cuestión es que, señores y señoras, Linux es un sistema operativo totalmente gratuito. Mi máquina corre Linux, y puedo asegurar que es uno de los sistemas que más aprovecha mi computadora, es decir, con el consigo ejecutar tareas mucho más rápido que con otros sistemas Página 37 operativos comerciales. Y es que Linux no requiere grandes prestaciones para funcionar. Las funciones principales de este sistema operativo son: Sistema multitarea En Linux es posible ejecutar varios programas a la vez sin necesidad de tener que parar la ejecución de cada aplicación. Sistema multiusuario Varios usuarios pueden acceder a las aplicaciones y recursos del sistema Linux al mismo tiempo. Y, por supuesto, cada uno de ellos puede ejecutar varios programas a la vez (multitarea). Shells programables Un shell conecta las ordenes de un usuario con el Kernel de Linux (el núcleo del sistema), y al ser programables se puede modificar para adaptarlo a tus necesidades. Por ejemplo, es muy útil para realizar procesos en segundo plano. Independencia de dispositivos Linux admite cualquier tipo de dispositivo (módems, impresoras) gracias a que cada una vez instalado uno nuevo, se añade al Kernel el enlace o controlador necesario con el dispositivo, haciendo que el Kernel y el enlace se fusionen. Linux posee una gran adaptabilidad y no se encuentra limitado como otros sistemas operativos. Comunicaciones Linux es el sistema más flexible para poder conectarse a cualquier ordenador del mundo. Internet se creó y desarrollo dentro del mundo de Unix, y por lo tanto Linux tiene las mayores capacidades para navegar, ya que Unix y Linux son sistemas prácticamente idénticos. Con linux podrá montar un Página 38 servidor en su propia casa sin tener que pagar las enormes cantidades de dinero que piden otros sistemas. Linux no sacrifica en ningún momento la creatividad, tal y como lo hacen algunas compañías informáticas. Linux es una ventana abierta por la que es posible huir hacia un mundo donde la verdadera informática puede ser disfrutada sin límites ni monopolios. HISTORIA LINUX Introducción 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 En abril, Linus Torvalds comenzó a crear un programa que varios meses después se convertiría en Linux, un sistema operativo Unix para PC (Unix es un sistema operativo usado en estaciones de trabajo y otros computadores de alto rendimiento; hay muchas versiones de Unix). Linux nació como un pasatiempo de Torvalds, que en esa época tenía 21 años y estudiaba segundo año de Página 39 ciencias de los computadores en la Universidad de Helsinki (Finlandia); su intención inicial no era crear un sistema operativo, sino experimentar creando software para manejar ciertas funciones básicas del PC que había comprado cuatro meses antes (un sistema operativo es el programa que controla el funcionamiento de un computador). La inquietud surgió porque el sistema operativo que usaba en su PC, llamado Minix, era una versión de Unix limitada, y él necesitaba algo mejor; Torvalds no usaba DOS o Windows porque le parecían -aún hoy- sistemas pobres y poco confiables (Minix es un sistema operativo Unix experimental, creado por un profesor holandés para enseñar a los estudiantes el funcionamiento de los sistemas operativos). A mediados del año, el programa estaba avanzado y Trovalds comenzó a pensar seriamente en que podría crear el kernel de un nuevo sistema operativo, similar a Minix pero mejor (el kernel es el corazón de un sistema operativo). Trovalds no tenía grandes pretensiones; él dice que no pensó en crear Linux para que fuera un sistema operativo profesional, sino que lo diseñó para su uso personal. Sin embargo, poco a poco su pasatiempo se fue convirtiendo en un proyecto más serio. El 5 de octubre, Trovalds publicó en un grupo de noticias sobre Minix, en Internet, un mensaje en el que anunció la creación de Linux, un sistema operativo para PC basados en procesadores Intel 386. El mensaje decía que el sistema (Linux versión 0.02) estaba todavía en desarrollo, pero ya funcionaba, y lo ofrecía gratis a cualquiera que deseara bajarlo. También invitó a los programadores interesados en sistemas operativos a usarlo, y enviarle correcciones y mejoras para incluirlas en la próxima versión. Ese fue un suceso clave en la historia de Linux; gracias a Internet, Linux pronto se convertiría en un fenómeno mundial. Página 40 1992 En enero, Linux tenía cerca de 100 usuarios, y varios de ellos ya participaban en el desarrollo de Linux con mejoras y correcciones que enviaban a Torvalds por Internet. Él lanzó ese mes la versión 0.12 de Linux; esa fue la primera versión que incluyó partes desarrolladas por otros programadores y la primera que realmente se desempeñaba mejor que Minix en ciertos aspectos. Microsoft lanzó Windows 3.1. El número de usuarios de Linux comenzó a crecer rápidamente, y no era extraño que tuviera gran acogida. Al igual que Torvalds, muchos estudiantes de sistemas y gomosos de la computación amaban los sistemas operativos Unix por su estabilidad y potencia, pero estos eran inalcanzables porque una versión comercial de Unix costaba en esa época 4.000 o 5.000 dólares, y casi todas funcionaban exclusivamente en estaciones de trabajo de 10.000 o más dólares (no en PC). Linux, en cambio, era un sistema Unix gratuito, y funcionaba en PC basados en procesadores Intel (386, 486, etc.). A medida que creció el número de usuarios, también aumentaron los programadores voluntarios que se involucraron en el desarrollo de Linux. Torvalds distribuyó Linux bajo un tipo de licencia llamada GPL, que permite a cualquier persona bajar, usar, modificar e incluso vender Linux, sin pagar un peso; la única condición es que los cambios o mejoras que una persona o compañía realicen en Linux también deben ser públicos. Es generó un fenómeno de colaboración mundial sin precedentes. Programadores de todo el planeta enviaron a Torvalds mejoras para el kernel, reportaron Página 41 errores y comenzaron a crear controladores de dispositivos para Linux. Se calcula que al final de 1992 Linux tenía aproximadamente 1.000 usuarios. 1993 Se estima que este año Linux completó 20.000 usuarios en el mundo, y más de 100 programadores contribuyeron en su desarrollo. Para poder manejar esas colaboraciones, Torvalds delegó las labores de revisión del código de programación de Linux a cinco personas, que se convirtieron en sus `oficiales' principales. A diferencia de los programas comerciales, que se actualizan cada dos o tres años, en el mundo Linux aparecen actualizaciones y mejoras menores cada pocas semanas; eso ha permitido que Linux evolucione rápidamente. 1996 El 9 de junio se lanzó la versión 2.0 de Linux. Una de las principales novedades fue el soporte a multiprocesamiento simétrico (el sistema aprovechaba el poder de computadores con más de un procesador). Además, Linux 2.0 no solo trabajaba en PC con procesadores Intel x86 (como el 386, 486 y Pentium), sino también en estaciones de trabajo con procesadores Alpha. Se calcula que este año Linux completó 1,5 millones de usuarios. 1997 Página 42 Linus Torvalds se fue a vivir a Santa Clara (California, Estados Unidos), debido a que fue contratado por una compañía llamada Transmeta (es una empresa de chips, que no está relacionada con Linux). Sin embargo, Torvalds continuó encabezando el equipo de gente que se encarga del desarrollo del kernel de Linux. La firma de investigaciones Datapro dijo que Linux era el segundo sistema operativo más popular en los servidores web de Internet, después de Solaris (un sistema Unix de Sun Microsystems). Se estima que Linux completó 3,5 millones de usuarios. Este año se lanzó la versión 2.1. 1998 Varios de los principales fabricantes de programas para el mercado corporativo, como Oracle, Informix, Computer Associates (CA) y Netscape, anunciaron que lanzarán versiones para Linux de sus productos. El respaldo de estas empresas ha sido clave para la consolidación de Linux en las empresas. En junio, Microsoft lanzó Windows 98. En septiembre, Intel Corporation y Netscape anunciaron una inversión de capital en la empresa Red Hat Software. Este hecho fue muy importante para aumentar la credibilidad de Linux, debido a que Intel y Netscape son dos de los líderes de la industria de los computadores. En diciembre, Corel Corporation lanzó una versión para Linux de su Página 43 procesador de palabra WordPerfect 8. El programa se colocó en Internet para que los usuarios lo pudieran probar gratis durante 90 días, y en los primeros seis meses lo bajaron un millón de personas. A finales de 1998, Linux dominaba cerca del 17 por ciento del mercado de sistemas operativos para redes, según la empresa de investigación de mercados International Data Corporation (IDC). Se calcula que Linux completó 7,5 millones de usuarios. Y el número de programadores que participan en el desarrollo y pruebas del programa creció a 10.000. 1999 En enero se lanzó la versión 2.2 de Linux, que ofreció un mejor rendimiento y soporte para procesadores Sparc, Motorola 68000, PowerPC y MIPS. Esta versión, al igual que la 2.0, soporta computadores con 8 procesadores, pero el multiprocesamiento es mucho más eficiente en la versión 2.2. Corel Corporation anunció que antes de terminar este año lanzará Corel Linux, una distribución de Linux dirigida a usuarios de PC. Aunque hay muchas empresas que ofrecen versiones comerciales de Linux, esta tiene gran relevancia por estar dirigida a usuarios comunes y por ser producida por uno de los más grandes fabricantes de software del mundo. Corel también dijo que en el año 2000 lanzará una versión para Linux del programa gráfico más importante del mundo Windows, CorelDraw, lo mismo que una versión de su paquete de programas Corel WordPerfect Suite. Linus Torvalds dijo que a finales de 1999 se lanzará la versión 2.4 Página 44 del kernel de Linux. La versión 2.4 (la actual es la 2.2.11) mejorará el soporte a multiprocesamiento simétrico, y soportará tecnologías como Universal Serial Bus (USB) y PCMCIA (actualmente tienen soporte, pero por medio de programas adicionales). Actualmente, Linux tiene gran acogida y un futuro prometedor. Se calcula que cuenta con más de diez millones de usuarios. Además, trabaja en los principales tipos de procesadores: Intel x86, Motorola 680x0, MIPS, PowerPC (los que usan los Macintosh), Alpha y Sparc (estos dos últimos son procesadores de 64 bits, más potentes que los chips Intel x86). Incluso, hay una versión que funciona en el computador de mano PalmPilot. De otro lado, varios de los principales fabricantes de computadores, como Dell Computer, COMPAQ y Hewlett-Packard, venden equipos que traen Linux pre instalado. 11.4 Mac os X Mac OS X es una línea de sistemas operativos computacionales desarrollada, comercializada y vendida por Apple Inc.. Se basa en Unix y usa una interfaz gráfica desarrollada por Apple llamada Aqua, que se inspira libremente en la interfaz de Mac OS Classic. El gestor de ventanas X11, característico en la familia de sistemas Unix, y Java se usa sólo para compatibilidad con software no nativo de Mac. El Sistema Operativo Mac OS no fue la primera interfaz gráfica, pero fue la primera con gran éxito por su accesibilidad de precio. Para aquellos años en el mercado lo que existía era La Xerox Alto con un costo de 32,000 dólares, la Xerox Star costó 16,600 dólares y la Apple Lisa con un precio de 10,000 dólares. El nombre de esta Apple fue un capricho de Steve Jobs por su hija. Este Sistema 1 Página 45 venía incluido en el primer Macintosh, que tenía un precio de 2,500 dólares. Perspectiva general Apple decidió reemplazar el sistema operativo Mac OS 9 con uno nuevo basado en NEXTSTEP, porque Classic carecía de características requeridas en un sistema operativo contemporáneo. El sistema operativo NEXTSTEP fue desarrollando por la empresa NeXT, el cual fue adquirido por Apple. Mac OS X Server fue lanzado en el año 1999 y se diferencia por incorporar diferentes herramientas administrativas para la gestión de redes, y servicios de red. Su base de bajo nivel se llama Darwin y tiene licencia APSL, una licencia de código abierto y software libre en sus últimas versiones. Sin embargo, las capas superiores del sistema (por ejemplo el subsistema gráfico en general) son código cerrado. Versiones La letra X se corresponde con el número romano 10 y continua con la numeración de los sistemas operativos previos de Mac OS Classic, como Mac OS 8 y Mac OS 9. Pese a que oficialmente se lee como diez alguna gente lo lee como la letra X. Una de las razones para esta interpretación es que tradicionalmente los sistemas operativos basados en Unix se nombran con la X al final (ejemplos: AIX, IRIX, Linux, Minix, Ultrix, Xenix, HP-UX). Otra razón es la tendencia de Apple de referirse a sus versiones específicas como (por ejemplo) "Mac OS X versión 10.5". Página 46 Las diferentes versiones de Mac OS X van apodadas con los nombres de grandes felinos en inglés. Antes de su lanzamiento, la versión 10.0 tenía como nombre de proyecto interno en Apple Cheetah (Guepardo), del mismo modo que la versión 10.1 fue apodada Puma. La versión 10.2 fue llamada Jaguar publicitariamente, y de esta versión en adelante se han seguido haciendo públicos estos nombres siendo Panther el de la versión 10.3, Tiger el de la 10.4 y Leopard el de la 10.5, Apple tiene también registrados los nombres de Lynx (Lince) y Cougar (Puma) para su futuro uso. Apple fue denunciada por una cadena de tiendas de ordenadores llamada TigerDirect por el uso del nombre "Tiger", pero el 19 de mayo de 2005 la Corte Federal de Florida determinó que Apple no infringía la marca registrada de TigerDirect. La página web de Apple y los diferentes medios escritos se refieren a los lanzamientos específicos de Mac OS X en cualquiera de las cuatro siguientes formas: Mac OS X v10.4, mostrando el número de versión. Mac OS X Tiger, mostrando el nombre de la versión. Mac OS X v10.4 "Tiger", mostrando tanto el número como el nombre de la versión (Apple suele omitir las comillas). "Tiger", simplemente con el nombre de la versión y obviando todo lo demás. A nivel interno, Apple utiliza un número de compilación (builds) para identificar cada versión desarrollada de Mac OS X. Según sus Página 47 directivas, las primeras versiones en desarrollo de sus productos se designan como 1A1. Las revisiones menores de éstas son 1A2, 1A3, 1A4...; la primera revisión mayor en el desarrollo es la 1B1 (y sus revisiones menores serían 1B2, 1B3...), la siguiente 1C1, y así siguiendo el mismo patrón. Cuando se alcanza cierto punto de desarrollo la siguiente revisión mayor puede dar el salto de la serie 1_ a la 2A1, y así. Por poner un ejemplo, la primera build de Panther (10.3) fue la 7A1, y la primera versión que se hizo pública fue la 7B85; siendo la última la 7W98 (Mac OS X versión 10.3.9). Tras esto, la próxima build de OS X fue la 8A1, y la versión dio el salto a la 10.4 (cuando una build es elegida para ser lanzada públicamente se le asigna un número de versión). La versión más reciente de Mac OS X es la 10.5 denominada Leopard. Mac OS X v10.1 (Puma) Antes de que terminase el año, el 25 de septiembre de 2001, Apple lanzó esta nueva versión que incrementaba el rendimiento del sistema a la vez que incorporaba algunas nuevas características tales como la reproducción de DVD. Dada la pésima reputación de la versión 10.0, Apple lanzó la 10.1 en forma de un CD de actualización gratuito para sus usuarios, además de los 129$ que costaba para los usuarios que seguían utilizando Mac OS|Mac OS 9. Esto ocasionó algunos quebraderos de cabeza a Apple cuando descubrió que los CD de actualización podían ser utilizados también para hacer instalaciones completas en sistemas con Mac OS|Mac OS 9 con tan sólo eliminar un determinado archivo. Página 48 Mac OS X v10.2 (Jaguar) El 25 de agosto de 2002, Apple prosiguió con la andadura de su sistema operativo con el lanzamiento de Mac OS X v10.2 "Jaguar" (la primera versión que utilizó publicitariamente su felino seudónimo), y que contaba con un nuevo incremento en su rendimiento, un nuevo y depurado aspecto y más de 150 mejoras que incluyen: Mayor soporte para redes de Microsoft Windows. Quartz Extreme para que la composición de gráficos sea procesada directamente por la tarjeta de vídeo. Un filtro adaptativo contra spam. Apple Address Book para almacenar la información de contactos. Sistema de red Rendezvous (una implementación de Apple de Zeroconf; renombrada a Bonjour por problemas legales en la versión 10.4). iChat: Un programa de chateo con soporte de AOL Instant Messenger. Un renovado Finder con búsquedas integradas en cada ventana. Docenas de nuevas características del Apple Universal Access. Sherlock 3: Servicios web. Página 49 CUPS (Common Unix Printing System): que permite el uso de drivers GIMP-print, hpijs y demás para impresoras no soportadas oficialmente. En el Reino Unido no se utilizó oficialmente el nombre de Jaguar para referirse a Mac OS X v10.2 para evitar entrar en conflicto con el fabricante de automóviles Jaguar, aunque la caja y los CD siguieron conservando el logo con piel de Jaguar. Mac OS X v10.3 (Panther) Mac OS X v10.3 "Panther" se lanzó el 24 de octubre de 2003. Además de tener un rendimiento mucho mayor, incorporó la mayor actualización en el interfaz de usuario, y tantas o más mejoras que Jaguar el año anterior. Por otra parte, en esta versión dejaron de soportarse algunos modelos antiguos G3. Las nuevas mejoras de Panther incluyen: Finder actualizado, que incorpora una interfaz metálica y búsqueda rápida. Exposé: una nueva forma de manipular ventanas. Cambio rápido de usuarios: que permite tener sesiones con diferentes usuarios abiertas al mismo tiempo y pasar de una a otra rápidamente. iChat AV que añade soporte para videoconferencia a iChat. Página 50 Renderización Soporte mejorada de PDF. integrado de fax. Interoperatibilidad FileVault: con Microsoft Windows mucho mayor. Sistema de cifrado en tiempo real del directorio privado de cada usuario. Incremento de velocidad en todo el sistema con un mayor soporte para los G5. Mac OS X v10.4 (Tiger) Mac OS X v10.4 "Tiger" se puso a la venta el 29 de abril de 2005. Contiene más de 200 nuevas mejoras, pero como sucedió con el lanzamiento de Panther, algunas máquinas antiguas han dejado de ser soportadas; en particular, cualquier equipo Apple que no cuente con conexión FireWire no está ya soportado en Tiger. Algunas de las nuevas características de Tiger son: Spotlight: Un sistema de búsqueda basado en contenidos y metadatos. Dashboard: Dashboard en un conjunto de miniaplicaciones, denominadas en el campo de la informática widgets, las cuales permiten realizar tareas comunes y ofrecen acceso instantáneo a la información. Página 51 iChat: Una nueva versión de este programa que soporta el códec de vídeo H.264 para la realización de vídeoconferencias de hasta 4 personas. Además, también permite realizar audioconferencias de hasta 10 personas. QuickTime 7: La nueva versión incluye soporte para H.264 y una interfaz completamente rediseñada. Safari: Esta nueva versión del navegador por defecto del sistema incorpora soporte para RSS, mayor velocidad y seguridad, etc. Automator: Sistema que permite llevar a cabo de forma eficaz y sencilla toda clase de tareas manuales y repetitivas de forma automática y sin necesidad de conocimientos de programación. Core Image y Core Video: Tecnologías avanzadas de procesamiento de imágenes en tiempo real. Soporte de memoria de 64 bits para los nuevos G5, usando el sistema LP64. Utilidades Unix actualizadas, como cp y rsync, que pueden preservar los metadatos en HFS Plus y resource fork. Sistema extendido de permisos usando listas de control de acceso. Como curiosidad cabe comentar que Apple dispone a partir de Tiger, de una versión "paralela" compilada para procesadores Intel, si bien, teóricamente, sólo podrá instalarse bajo ciertas restricciones de hardware y en procesadores con soporte SSE3. Página 52 Esta versión apareció en forma oficial el día 10 de enero del 2006 con los primeros equipos "Mac Intel": El iMac Core Duo (ex iMac G5), Mac mini Core Solo y Core Duo (ex Mac mini G4) además de los nuevos portátiles denominados MacBook y MacBook Pro, ambos equipados con procesadores Intel Core Duo. También han existido versiones para G4 de este sistema operativo, incluida al menos en los últimos PowerBook G4 a la venta. Mac OS X v10.5 (Leopard) Estos son los diez puntos principales que destaca Apple: Time Machine: La posibilidad de poder volver en el tiempo a una versión especifica de los contenidos de una carpeta, del disco duro completo, de un sólo archivo, de un álbum de fotos en iPhoto, etc. Mail 3: La tercera versión de este programa de correo electrónico de Apple ahora incluye Notas y To-Dos (listas de cosas por hacer), así como variadas plantillas para enviar email HTML. iChat: Incluye iconos animados y conversaciones por pestañas. Además de funciones adicionales para los vídeochats, presentar vídeos y compartir el escritorio. Spaces: Despliega múltiples escritorios virtuales. Dashboard: Trae una herramienta llamada Dashcode para crear Widgets fácilmente. Adicionalmente Safari tiene un botón "Webclip" que permitirá tomar cualquier fragmento de una página que se esté viendo y convertirla en un Widget. Página 53 Spotlight: Incluye búsquedas avanzadas, Quick Look (previsualizaciones en vivo), y la posibilidad de buscar en varios computadores Mac en red (si la opción de compartición de archivos está habilitada). Además, las ventanas de Finder y Spotlight se han unificado. iCal: Incluye varias mejoras, especialmente en el ámbito de los calendarios grupales. Accesibilidad: Más mejoras en las funciones de accesibilidad para que "todos puedan usar un Mac". La mayor de ellas siendo un gran avance en las funciones de texto-a-voz con una nueva voz sintetizada llamada Alex, que incluso puede hablar claramente a altas velocidades. Además, trae soporte para pantallas Braille. 64-bit: Tiger fue el primer sistema operativo de Apple en empezar a sacarle provecho al poder de los procesadores de 64-bit. Leopard da el próximo salto entregando más partes optimizadas del sistema operativo, así como la capacidad de que otras capas del sistema (y no solo la capa UNIX) puedan hacer uso de masivas cantidades de memoria. Core Animation: Así como Core Video, Core Image y Core Audio simplificaban que cualquier desarrollador le sacara el máximo provecho a funciones de vídeo, 2D y audio, respectivamente, ahora Core Animation hace lo mismo con animaciones — lo que significa que junto con Leopard llegará una generación de aplicaciones llenas de efectos 3D. Ahora los efectos 3D en la interfaz no son de uso exclusivo del sistema operativo o de quienes sepan usar OpenGL. Según Apple, estos nuevos efectos incluidos correrán sobre cualquier Mac vendido en los últimos 2 años. Página 54 Mac OS X v10.6 (Snow Leopard) Anunciada en una conferencia privada en la Worldwide Developers Conference 2008, esta nueva versión no incluye nuevas funciones, sino que está pensada principalmente para aumentar la estabilidad y seguridad de Leopard. Incluye soporte para el sistema de archivos ZFS, que permite utilizar hasta 16 TB de disco. También tendrá soporte para Microsoft Exchange Server 2007 en correo, iCal y libreta de direcciones. Mac OS X usa el protocolo Exchange Web Services para tener acceso a Exchange Server 2007. Esta versión también incluirá Grand Central, un conjunto de tecnologías para usar la ventaja de los procesadores multinúcleo y optimizar la ejecución de aplicaciones de Mac OS X. Grand Central también permite que los desarrolladores puedan crear más fácilmente aplicaciones que aprovechen los múltiples núcleos del microprocesador. Incluye QuickTime X, el nuevo reproductor de música de Mac OS X. QuickTime X ofrece soporte optimizado para modernos formatos y música playback más eficiente. Safari 4 incluye un intérprete de JavaScript más potente llamado SquirrelFish que hace que gane un 53% más rendimiento en páginas Web que hagan un uso intenso de JavaScript, como Gmail o Zoho. Por último, incluye la tenología OpenCL, que permite aprovechar los recursos en desuso de la GPU para procesar tareas que normalmente habría de realizar la CPU, con lo que se distribuye la carga entre la GPU y la CPU. Acceso remoto seguro a su red de negocios nunca ha sido más importante que hoy en el mundo cada vez más móvil. Snow Leopard Página 55 Server ofrece impulsar notificaciones a los usuarios móviles fuera de su firewall, proxy y un servicio les ofrece acceso remoto seguro a correo electrónico, libreta de direcciones de contactos, calendarios y seleccionar los sitios web internos. Multicore Snow Leopard Server aporta un soporte mejorado para procesadores multinúcleo con "Grand Central", una nueva serie de procedimientos para las tecnologías que hacen que todos los de Mac OS X Server multiconductor consciente y que optimiza para la asignación de tareas a través de múltiples núcleos y procesadores. Grand Central también hace que sea mucho más fácil para los desarrolladores crear programas que aprovechen toda la potencia de los sistemas multinúcleo. ZFS Críticos para el despliegue de servidores de negocios, Snow Leopard Server añade leer y escribir para el apoyo de alto rendimiento, 128-bit sistema de ficheros ZFS, que incluye características avanzadas tales como la puesta en común de almacenamiento, redundancia de datos, corrección automática de errores, dinámica expansión de volumen, e instantáneas. Podcast Producer 2 Es una serie de extremo a extremo para la solución de codificación, la edición y distribución de alta calidad, incorpora un nuevo flujo de trabajo intuitivo editor que le lleva a través de todos los pasos claves Página 56 involucrados en la creación de un podcast con éxito. Esto incluye todo, desde la selección de videos, transiciones, títulos y efectos a la adición de agua y superposiciones de especificar formatos de codificación y objetivo destinos - wiki, blog, iTunes, un podcast Biblioteca - para su acabado podcast. Apoyo a la doble fuente de vídeo captura permite a los usuarios grabar un presentador y una pantalla de presentación, lo que permite una imagen en imagen el estilo ideal para conferencias de podcasting. Podcast Producer ahora incluye Podcast Biblioteca, que le permite acoger almacenados localmente podcasts y hacerlos disponibles para la suscripción de categoría generados automáticamente a través de la web feeds Atom. 11.2 Sistemas operativos Windows HISTORIA DE WINDOWS 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. Página 57 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: Interfaz gráfica con menús desplegables, ventanas en cascada y soporte para mouse. Gráficos de pantalla e impresora independientes del dispositivo. 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 traslapadas. 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: Ventanas Archivos traslapadas PIF para aplicaciones DOS Página 58 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: 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: Modo estándar (286), con soporte de memoria grande (large memory). Medo Mejorado 386, con memoria grande y soporte de múltiples sesiones DOS. Se agregó en Administrador de Programas y de Archivos Soporte de Red Soporte para más de 16 colores. Página 59 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: No hay soporte para el modo Real (8086). Fuentes TrueType. Multimedia. OLE - Object Linking and Embedding Capacidad para que una aplicación reinicie la máquina. 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 trabaja 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. Página 60 Proveía capacidades para compartició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 inclure 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 incorporado (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ía de las aplicaciones de Windows NT en Windows 3.1. Si bien permite ejecutar aplicaciones escritas para Windows NT, Win32s no da soporte para multitareas con desalojo en Windows 3.1 Página 61 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 Abstracción de Hardware)- ha sido llevada a un 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. Página 62 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 esta version 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 aplicaciones en tiempo real. 11.2.1 Windows server 2000/2003 Página 63 permite la creación de Windows 2000 Server Es una versión del Sistema Operativo de Microsoft, Windows 2000 (anteriormente llamado Windows NT 5.0), el cual sirve para gestionar y administrar una red. Dentro de las tareas que puede realizar se incluyen: crear cuentas de usuarios, asignar recursos y privilegios, actuar como servidor web, FTP, servidor de impresión, DNS o resolución de nombres de dominio, servidor DHCP, entre otros servicios básicos. Otra de las funciones que tiene, es como en todo sistema windows la opción de utilizarlo como una estación de trabajo más de la red, cosa que no es tan común en un entorno linux. Actualmente es sustituido por el sistema Windows Server 2003, mucho más mejorado que éste. Dicho sistema operativo es muy eficiente y su principal punto fuerte es el Active Directory (Directorio Activo), herramienta desde la cual se puede administrar toda la infraestructura de una organización. Es un sistema operativo orientado a los negocios, está diseñado para trabajar, incluso con una sola unidad de proceso sencilla así como, procesadores múltiples de 32 bits Intel x86. Este es parte de la línea de sistemas operativos Microsoft Windows NT y fue sacado a la venta el 16 de febrero de 2000. Este fue remplazado por Windows XP en octubre de 2001 y por Windows Server 2003 en abril de 2003. Windows 2000 (Win2K) está clasificado como un sistema operativo de kernel híbrido, y su arquitectura está dividida en dos modos: Modo usuario y modo kernel. El modo kernel provee acceso sin Página 64 restricciones a los recursos del sistema y facilita el modo usuario, el cual es estrictamente restrictivo y diseñado para la mayoría de las aplicaciones. Versiones Windows 2000 Professional Destinado principalmente a las estaciones de trabajo que conforman la red. Está orientado principalmente a su utilización en entornos empresariales y organizaciones, ya sean estas PyMES o grandes empresas. También dispone de la opción para ser instalado en equipos portátiles o con poca capacidad (la famosa opción Custom), dispone de soporte para 2 procesadores. Su antecesor es Windows NT 4.0 Workstation. Windows 2000 Server Está destinada a ser el servidor de archivos, impresión, web, FTP de una empresa de chica a mediana. Su antecesor es Windows NT 4.0 Server. Es ideal para cuando no se requiere de un servidor dedicado a cada tarea o departamento y se puede tener todo centralizado en uno. Windows 2000 Advanced Server Página 65 Este sistema está orientado a empresas de medianas a grandes que ya tienen una mayor demanda por parte de los clientes (es decir, los usuarios de la red). Soporta hasta 8 procesadores, soporte RAID y tolerancia a fallas. Su principal función es la de servidor de aplicaciones o de tarea crítica dentro de una organización grande. En general en estos casos, la demanda no es toda de un servidor sino de varios. Su antecesor es Windows NT 4.0 Enterprise Edition. Windows 2000 Datacenter Edition Está destinado a servidores muy potentes, pensado para, por ejemplo simulaciones espaciales, cálculos matemáticos complejos, simulaciones de ingeniería, etc. También se lo utiliza para manejar grandes volúmenes de datos, como por ejemplo un web hosting gratuito multitudinario (de allí su nombre Datacenter Edition). Soporta hasta la friolera de 32 procesadores, se entrega solo sobre pedido. Por otra parte Microsoft desarrollo una versión de edición limitada de Advanced Server Limited Edition, la cual salió al mercado en 2001 y corre sobre procesadores Itanium 64-bit de Intel. Windows Server 2003 es un sistema operativo de la familia Windows de la marca Microsoft para servidores que salió al mercado en el año 2003. Está basada en tecnología NT y su versión del núcleo NT es la 5.2. En términos generales, Windows Server 2003 se podría considerar como un Windows XP modificado, no con menos funciones, sino que Página 66 estas están deshabilitadas por defecto para obtener un mejor rendimiento y para centrar el uso características de de servidor, por ejemplo, procesador en las la interfaz gráfica denominada Luna de Windows XP viene desactivada y viene con la interfaz clásica de Windows. Sin embargo, es posible volver a activar las características mediante comandos services.msc. En internet existen varios trucos para hacerlo semejante a Windows XP. Características Sus características más importantes son: Sistema de archivos NTFS: 1. cuotas 2. cifrado y compresión de archivos, carpetas y no unidades completas. 3. permite montar dispositivos de almacenamiento sobre sistemas de archivos de otros dispositivos al estilo Unix Gestión de almacenamiento, backups... incluye gestión jerárquica del almacenamiento, consiste en utilizar un algoritmo de caché para pasar los datos menos usados de discos duros a medios ópticos o similares más lentos, y volverlos a leer a disco duro cuando se necesitan. Windows Driver Model: Implementación básica de los dispositivos más utilizados, de esa manera los fabricantes de dispositivos sólo han de programar ciertas especificaciones de su hardware. ActiveDirectory Directorio de organización basado en LDAP, permite gestionar de forma centralizada la seguridad de una red corporativa a nivel local. Página 67 Autentificación Kerberos5 DNS con registro de IP's dinámicamente Políticas de seguridad Mejoras Respecto Windows 2000 Server Diferencias principales con Windows 2000 server 1. Durante la instalación arranca con el mínimo de servicios activados para no comprometer la seguridad del sistema 2. Mejoras en el manejo de políticas de seguridad 3. Active Directory ya no utiliza NetBIOS sino que es necesaria la presencia de un DNS que soporte Service Records (detección de servicios ofrecidos por una máquina a través de un DNS) Versiones Actualmente existen cuatro versiones de Windows 2003, aunque todas ellas cuentan a su vez con versiones de 32 y 64 bits (excepto Web Edition). Las versiones son: Web Edition Diseñado para los servicios y el hospedaje Web. Standard Edition El más versátil de todos, ofrece un gran número de servicios útiles para empresas de cualquier tamaño. Página 68 Enterprise Edition Para empresas de mayor tamaño que la Standard Edition. Datacenter Edition Para empresas que requieran bases de datos más escalables y un procesamiento de transacciones de gran volumen. Las diferencias entre las versiones, explicadas en mayor detalle, pueden encontrarse en la Web de Microsoft. Windows Server 2003 RTM Soporte para Windows Server 2003 sin Service Pack finalizó el 10 de abril de 2007. Service Pack 1 (SP1) El 30 de marzo de 2005, Microsoft lanza (Service Pack 1), para todas las versiones de Windows 2003. Con él, dotan al Sistema operativo de las mejoras incluidas en el SP2 de Windows XP, tales como una nueva interfaz para el Cortafuegos (aunque al tratarse de un servidor, el cortafuegos estará deshabilitado por defecto), o la corrección de todos los bugs aparecidos hasta la fecha en Windows 2003. El soporte de Windows Server 2003 Service Pack 1 finalizará el 14 de abril de 2009. Service Pack 2 (SP2) Página 69 El 12 de marzo de 2007 se lanzó el Service Pack 2 de Windows Server 2003. Este SP2 está concebido como una actualización para Windows Server 2003 R2, a su vez una actualización del Server 2003 original que Microsoft lanzó en diciembre de 2005. No obstante, este Service Pack se instala tanto sobre versiones R2 del sistema como sobre la versión original. Entre las novedades que podemos encontrar en este Service Pack destacamos: Microsoft Management Console (MMC) 3.0, que hace del proceso de creación de directivas (policy) de grupos introducido en el anterior service pack, algo más intuitivo y manejable. Windows Deployment Services en substitución de Remote Installation Services para la realización de instalaciones remotas del sistema (sin encontrarse delante de la computadora en la cual se va a instalar ni tener el DVD del sistema en el lector de esta). Scalable Networking Pack (SNP) permite escalar las redes corporativas (hacerlas crecer y controlar dicho crecimiento en la dirección que queramos) para hacer frente a las crecientes demandas de ancho de banda por parte de algunas aplicaciones concretas. El cliente de conexión a redes inalámbricas soporta ahora autentificación WPA2. Incluye todas las actualizaciones de seguridad y parches lanzados hasta la fecha. Este Service Pack ya puede descargarse para su instalación o en formato de imagen ISO para grabar en CD o DVD para las plataformas de 32 y 64 bits. El Soporte Técnico para este Service Página 70 Pack finalizará 12 ó 24 meses presentado el próximo Service Pack, o cuando finalice el ciclo de vida del producto, lo que ocurra primero. 11.2.2 Windows Vista La nueva versión de Windows, denominada "Windows Vista", es un sistema operativo (software) que tiene un gran potencial y está pensado para ofrecer una experiencia más segura, más fiable y de mayor potencial; los usuarios pueden utilizar los equipos con mayor eficacia y confianza, estar en contacto con los demás y además divertirse. Windows Vista establece un nivel de confidencialidad en tu PC y tu habilidad de tener la mayoría de ello, introduce claras formas de organizar y usar la información, te ayuda con tu vida social, te conecta con la información. El nuevo sistema de Microsoft aprovechará la alta conectividad mediante ADSL y cable de los usuarios para integrar las nuevas aplicaciones Windows Live! que vivirán entre el escritorio del Windows Vista y el medio online. De esta manera aplicaciones como el correo electrónico (Windows Live Mail), los favoritos (Windows Live Favorites), la mensajería instantánea (Windows Live Messenger) o la relocalización (Windows Live Local) se complementarán unos a otros tanto en línea como directamente en el escritorio del usuario. Ya se ha lanzado la beta de Windows Vista y la definitiva se espera para principios del 2007 sucediendo asi al Windows 95, 98, 2000, y XP. Página 71 Windows Vista es una línea de sistemas operativos desarrollada por Microsoft para ser usada en computadoras de escritorio, portátiles, Tablet PC y centros multimedia. Antes de ser anunciado oficialmente el 22 de julio de 2003 su nombre en código fue "Longhorn" . El proceso de desarrollo terminó el 8 de noviembre de 2006 y en los siguientes tres meses fue entregado a los fabricantes de hardware y software, clientes de negocios y canales de distribución. El 30 de enero de 2007 fue lanzado mundialmente y fue puesto a disposición para ser comprado y descargado desde el sitio web de Microsoft. La aparición de Windows Vista viene más de 5 años después de la introducción de su predecesor, Windows XP, es decir el tiempo más largo entre dos versiones consecutivas de Microsoft Windows. La campaña de lanzamiento fue incluso más costosa que la de Windows 95, ocurrido el 25 de agosto de 1995, debido a que incluye además a otros productos como Microsoft Office 2007, y Exchange Server 2007. Actualmente Windows Vista ya tiene sucesor, llamado Windows 7. 11.2.3 Windows CE Windows CE es un integrante de la familia Windows que tiene un objetivo especial, proveer un moderno sistema operativo de plataforma cruzada, multihilado y de tamaño pequeño. Cuando se habla de tamaño, se refiere a la cantidad de memoria y de almacenamiento necesario para albergar al sistema. Mientras se desarrollaba Windows CE se le dio el nombre de Pegasus y junto a él se estaba diseñando un nuevo dispositivo que Página 72 lo tendría más tarde como sistema operativo. A este dispositivo se le llamó Handheld PC (HPC) o PC de bolsillo. Este documento brinda una amplia información sobre todo lo relacionado con este sistema operativo. Windows CE es el sistema operativo de Microsoft incrustado modular de tiempo real para dispositivos móviles de 32-bits inteligentes y conectados. Windows CE combina la compatibilidad y los ping a servicios de aplicación avanzados de Windows con soporte para múltiples arquitecturas de CPU y opciones incluidas de comunicación y redes para proporcionar una fundación abierta para crear una variedad de productos. Windows CE impulsa a los dispositivos electrónicos del cliente, terminales Web, dispositivos de acceso a Internet, controladores industriales especializados, computadoras de bolsillo, dispositivos de comunicación incrustados e incluso consolas de video juegos como fue en el caso de la Sega Dreamcast (1997 - 2001) con procesador SH4 de 128 Bits que ya con un sistema operativo propio, incluía compatibilidad con los kits para desarrollo de software de Windows CE. Esta plataforma modular permite a los desarrolladores crear software para que la nueva generación de dispositivos móviles de 32-bits se integre con Windows e Internet. Windows CE no es un subconjunto de Windows XP, o de Windows NT, sino que fue desarrollado a base de nuevas arquitecturas y una nueva plataforma de desarrollo. Aun así mantiene cierta conexión con sus hermanos. Windows CE tiene sus propias APIs para desarrollo, y necesita sus propios drivers para el hardware con el cual va a interactuar. Windows CE no es un sinónimo de Windows XP en forma pequeña, incrustada o modular. Página 73 Windows CE también ha permitido la creación de un sistema denominado AutoPC , que consiste en un PC empotrado en un automóvil y que va ubicado donde normalmente va una radio. De esta manera permite controlar la radio, el reproductor de CD y revisar el correo electrónico. Windows CE también permite la creación de aplicaciones en tiempo real. La última versión del Windows CE actualmente es Windows Mobile 6.1, Upgrade de Windows Mobile 6.0, sucesor de Windows Mobile 5.0, y sirve tanto para Pocket PC (PDA) como para SmartPhone. Cabe destacar que este sistema operativo es el único producto de Microsoft que se distribuye junto con el codigo fuente (tal como Linux) y usa una licencia llamada Shared Source, así pues permite al usuario final modificar el código fuente sin notificar al propietario. 12. Bibliografía http://www.todobytes.net/Articulos/Historia_SO/historia_so.html http://laurel.datsi.fi.upm.es/docencia/asignaturas/dso www.monografias.com http://www.ual.es/~rguirado/so/tema6.pdf http://www.monografias.com/trabajos6/sidi/sidi.shtml Página 74 http://es.kioskea.net/contents/unix/unixintro.php3 http://www.monografias.com/trabajos63/sistema-operativounix/sistema-operativo-unix2.shtml#xsistema http://es.wikipedia.org/wiki/Solaris_(sistema_operativo) http://es.wikipedia.org/wiki/Mac_OS_X http://www.maestrosdelweb.com/editorial/historia-y-evolucion-delsistema-operativo-mac-os/ http://es.wikipedia.org/wiki/Windows_Vista http://winvista.sinfreno.com/ http://www.monografias.com/trabajos19/sistemasoperativos/sistemas-operativos.shtml http://es.geocities.com/jc_galan/Pacs/Informatica/Docword/Annex_II_ Sistemas_Operativos.doc http://html.rincondelvago.com/sistemas-operativos_7.html http://es.wikipedia.org/wiki/Sistema_integrado Página 75 CONCLUSIONES Y OBSERVACIONES El sistema operativo es muy importante para la computadora, ya que hace trabajar al tanto al hardware, como al software, de manera correcta y organizada para poder realizar las tareas necesarias. El sistema operativo es el primer programa cargado al encender una computadora, y es el que brinda la interfaz para la interacción con el usuario. Hay diferentes clases de sistemas operativos, cada uno con fortalezas y debilidades en diferentes campos, dándole al usuario la posibilidad de escoger el que mas se adapte a su forma de trabajo. Los sistemas operativos han ido evolucionando al tiempo que se desarrollan nuevo hardware, con el fin de sacar mayor provecho a los recursos que este nuevo hardware permite utilizar. Página 76