Story Transcript
INTRODUCCIÓN Sin su software, la computadora es básicamente un montón de metal inútil, Con su software una computadora puede almacenar, procesar y recuperar información. Exhibir documento multimedia realizar búsquedas en Internet y realizar muchas otra actividades valiosas para justificar su existencia. El software de computadora puede dividirse a grandes rangos de dos tipos: Programas de sistema, que controlan la operación de la computadora misma, y programas de aplicación, que realizan las tareas reales que el usuario desea. El programa de sistema más fundamental es el sistema operativo, que controla todos los recursos de la computadora y establece la base sobre la que pueden escribirse los programas de aplicación. Hace muchos años se hizo muy evidente que debería encontrase alguna forma de proteger a los programadores de la complejidad del hardware. La solución que ha evolucionado gradualmente consiste en poner en capa de software encima del hardware solo, que se encargue de administrar todas las partes del sistema y presente al usuario una interfaz o maquina virtual que sea más fácil de entender y programar. 1.− Evolución Histórica De Los Sistemas Operativos Normalmente se consideran tres etapas o generaciones que van prácticamente paralelas a las generaciones de los equipos informáticos: • 1º Etapa: Desde la construcción de las primeras computadoras (1943) hasta 1956, puede decirse que realmente no existen sistemas operativos. El programador que deseaba usar la computadora debía apuntarse a un cuaderno de reservas de horas, cuando llegaba su turno, el programador que hacía también las funciones de operador introducía su programa y esperaba que poco a poco fuesen escribiéndose en una impresora los resultados, el programa se introducía a través de tarjetas perforadas y se redactaba en lenguaje máquina, los datos también se suministraban a la computadora a través de tarjetas perforadas. Posteriormente se idearon los ensambladores, después de ensamblar el programa, el programa objeto obtenido (en lenguaje máquina) se montaba manualmente, es decir, se unía con otros paquetes de tarjetas que contenían las funciones utilizadas en el programa y no definidas en el mismo (multiplicación o raíz cuadrada). Por último se ejecutaba el paquete total de tarjetas con los datos del programa. Con esta forma de trabajar no se obtiene provecho de la computadora, cuando la CPU trabaja los dispositivos E/S están inactivos y cuando un dispositivo E/S está actuando, las demás unidades (incluida CPU) no trabajan, las grandes posibilidades de la CPU en cuanto a velocidad de ejecución no se aprovechan adecuadamente. Como resumen de esta primera etapa podemos decir que la introducción y la ejecución de programas se hacía manualmente, uno a uno ya que no existían los Sistemas Operativos. 2.− • 2º Etapa: En vez de utilizar sólo lectores de tarjeta e impresoras, se utilizaban soportes de información intermedios como citas magnéticas, al principio de ella sólo se encontraban ensambladores, controles de biblioteca, necesitándose dar por tarjeta únicamente el programa y los datos de usuario.
1
Posteriormente se dio un paso importante, se utilizó una computadora satélite para gestionar las E/S y la computadora principal (más potente) únicamente leía y escribía sobre cinta magnética. Esta computadora satélite volcaba sobre cinta magnética los programas en tarjeta de los usuarios, en la cinta se tenían así grabadas imágenes de tarjeta, posteriormente y una vez que en una cinta había una cola de trabajos, el operador desmontaba la cinta de la computadora satélite y la montaba en la principal, ésta leía los programas de la cinta y los resultados a imprimir los escribía en otra cinta magnética, obteniéndose así por cada programa un archivo de impresión grabado en cinta. El operador con cierta regularidad, montaba la cinta de archivos de impresión en la computadora satélite y esta los iba escribiendo por las impresoras. El procedimiento descrito desde el punto de vista usuario−programador, es mucho más sencillo que el de la primera etapa, pero es necesario un control automático del flujo o cola de trabajos. Este tipo de funcionamiento denominado por lotes (Batch) es posible gracias a la existencia de un Sistema Operativo es decir, de un programa de control, este programa de control que facilita los trabajos se suele llamar monitor, el monitor de un sistema por lotes debe hacer fundamentalmente dos cosas: • Identificar e interpretar las tarjetas de control (las cuales se incluyen con el paquete de tarjetas del programa y datos para identificar el principio y fin de cada trabajo). Una vez interpretada una tarjeta de control, el monitor da paso a una rutina que realiza funciones asociadas a ella. 3.− • Intervenir al final de la ejecución de un trabajo para cerrar el archivo de impresión del trabajo que acaba de iniciar (pasar el control) al siguiente trabajo de la cola, es decir, hace una secuenciación automática de trabajos. Poco a poco, estos monitores de lotes se perfeccionaron incluyendo rutinas de control de E/S. módulos de controladores del tiempo máximo de CPU (para evitar que un programa se esté ejecutando por un tiempo indefinido a causa de un error de programación), módulo de contabilidad de uso de la computadora por los usuarios, etc. La interacción del usuario sobre el Sistema Operativo se hace básicamente por medio de tarjetas de control o en la actualidad por medio de órdenes de control, estas órdenes se dan según las reglas del lenguaje de control del sistema operativo. • 3º etapa: Esta etapa se caracteriza fundamentalmente por desarrollo del Sistema Operativos en multiprogramación (1963) y la introducción del concepto de memoria virtual. A principios de la década de 1960, la mayoría de los fabricantes de computadoras tenían dos líneas de productos distintas y totalmente incompatibles. Por un lado estaban las computadoras científicas a gran escala, orientadas hacia las palabras, como la 7094, que se usaban para calculos numéricos en ciencias e ingeniería. Por el otro, estaban las computadoras comerciales orientadas hacia los caracteres, como la 1401, que los bancos y las compañías de seguros utilizaban ampliamente para ordenar e imprimir desde cinta. La creación y mantenimiento de dos líneas de productos totalmente distintas era una situación costosa para los fabricantes. Además, muchos clientes de computadoras nuevas necesitaban inicialmente una maquina pequeña que más adelante les resultaba insuficiente, de modo que querían una maquina más grande que ejecutara todos sus viejos programas, pero más rápidamente. 4.− 2
IBM trato de resolver simultáneamente ambos problemas introduciendo la System/360. La 360 era una serie de maquina de software compatible que iban desde tamaños comparables a las 1401 hasta computadoras mucho mas potentes que la 7094. Las maquinas diferían solo en el precio y el rendimiento (memoria máxima, velocidad de procesador, numero de dispositivos de E/S permitidos, etc.). Puesto que todas las maquinas tenían la misma arquitectura y conjunto de instrucciones, los programas escritos para una maquina podían ejecutarse en todas las demás, al menos en teoría. Además, la 360 estaba diseñada para manejar computadoras tanto científicas como comerciales. Así, una sola familia de maquina podia satisfacer las necesidades de todos los clientes. En años subsecuentes IBM produjo sucesoras comparables a la línea 360, usando tecnología más moderna, conocidas como series 370, 4300. 3080 y 3090. La 360 fue la primera línea importante de computadoras en usar (a pequeña escala) circuitos integrados (IC), ofreciendo así una ventaja de precio/rendimiento considerable respecto a ñas maquinas de la segunda generación, que se armaban con transistores individuales. Esta línea fue un éxito inmediato, y la idea de una familia de computadoras compatibles pronto fue adoptada por todos los demás fabricantes importantes. Los descendient4es de estas maquinas todavía se emplean en uno que otro centro de computo en la actualidad, pero su uso esta en rápido declive. La gran ventaja de la idea de una familia fue también su gran debilidad. La intención era que todo el software, incluido el sistema operativo, funcionara en todos los modelos. El software tenía que funcionar en sistema pequeño, que en muchos casos simplemente sustituían a la 1401 para copiar tarjetas en cinta, y en sistemas muy grandes, que con frecuencia sustituían a las 7094 para realizar pronósticos del tiempo y otros trabajos de computación pesada. El software tenia que ser bueno en sistemas con pocos, tenia que ser eficiente para todos usos distintos. Era imposible que IBM (o alguien más) pudiera escribir un programa que satisficiera todos esos requisitos opuesto. El resultado fue un sistema operativo enorme, extraordinariamente complejo, tal vez dos o tres ordenes de magnitud mayor que FMS. Este sistema consistía en millones de líneas de lenguaje ensamblador escrito por miles de programadores, y contenía miles y miles de errores, requiriéndose un flujo continuo de nuevas versiones en un intento por corregirlos. Cada versión nueva corregía 5.− Algunos errores e introducía otros nuevos, de modo que es probable que él numero de errores se mantuviera constante con el tiempo. A pesar de su enorme tamaño y de sus problemas, OS/360 y los sistemas operativos de tercera generación parecidos a él producidos por otros fabricantes de computadoras logran satisfacer a sus clientes en un grado razonable, y también popularizaron técnicas clave que no existía en los sistemas operativos de la segunda generación. Tal vez la más importante de ellas haya sido la multiprogramación. En la 7094, cuando el trabajo actual hacia una pausa para esperar que se completara una operación de cinta u otra operación de E/S, la CPU simplemente permanecía ociosa hasta que la E/S terminaba. En los calculos científicos, con gran uso de CPU, la E/S es poco frecuente, así que el tiempo desperdiciado no es significativo. En el procesamiento de datos comerciales, el tiempo de espera por E/S puede ser el 80 o 90% del tiempo total, de modo que algo debía hacerse para evitar que la CPU estuviera ociosa tanto tiempo. La solución a la que se llego fue dividir la memoria en varias secciones, con un trabajo distinto en cada partición. Mientras un trabajo estaba esperando que terminara su E/S, otro podia estar usando la CPU. Si se podían tener en la memoria principal suficiente trabajos a la vez, la CPU podia mantener ocupada casi todo el tiempo. Tener múltiples trabajos en al memoria a la vez requería hardware especial para proteger cada trabajo contra espionaje o perjuicios por parte de los demás, pero la 360 y otros sistemas de tercera generación estaban equipados con este hardware.
3
TRT Particiones De memoria 6.− Sistema de multiprogramación con tres trabajos de memoria Otra característica impórtate en los sistemas operativos de la tercera generación era la capacidad de leer trabajos de las tarjetas al disco tan pronto como se llevaban al cuarto de computación. Luego, cada vez que un trabajo terminaba su ejecución, el sistema operativo podia cargar uno nuevo del disco en la partición que había quedado vacía y ejecutarlo. Esta técnica se llama spooling (de operación simultanea de periféricos en línea) y también se usaba para la salida. Con spooling, las 1401 ya no eran necesarias, y desapareció una buena parte del transporte de cintas. Aunque los sistemas operativos de la tercera generación se adaptaban bien a calculos científicos extensos y sesiones masivas de procesamiento de datos comerciales, seguían siendo básicamente sistemas por lotes. Muchos programadores añoraban los días de la primera generación cuando tenían toda la maquina para ellos solos durante unas cuentas horas, lo que les permitía depurar sus programas rápidamente. Con los sistemas de la tercera generación, el tiempo entre la presentación de un trabajo y la obtención de las salidas a menudo era de varias horas, y una sola como mal colocada podia causar el fracaso de una compilación y que el programador desperdiciara medio día. Este deseo de respuesta rapada preparó el camino para el tiempo compartido, una variante de la multiprogramación, en la que cada usuario tiene una terminal en línea. En un sistema de tiempo compartido, si 20 usuarios ingresan en el sistema y 17 de ellos están pensando, hablando o tomando café, la CPU puede asignar por turno a los tres trabajos que requieren servicio. Puesto que las personas que están depurando programas usualmente emiten comandos cortos (por ejemplo, compilar un procedimiento de cinco paginas) en vez de largos (por ejemplo, ordenando un archivo de un millón de registros), la computadora puede proporcionar servicio rápido interactivo a varios usuarios y tal vez también trabajar con trabajos de lote grandes en segundo plano cuando la CPU esta ociosa. Aunque el primer sistema serio de tiempo compartido (CTSS) fue creado en el M.I.T. en una 7094 especialmente modificada (Corbato et al,. 1962), el tiempo compartido no se popularizo realmente hasta que se generalizo el uso del hardware de protección necesario durante la tercera generación. 7.− Después del éxito del sistema ctss, MIT, Bell Labs y general Electric (por ese entonces un fabricante importante de computadoras) decidieron emprender el desarrollo de un servicio de computadora, una maquina que diera apoyo a cientos de usuarios de tiempo compartido simultáneos. Su modelo fue el sistema de distribución de electricidad, cuando usted necesita potencia eléctrica, simplemente enchufa una clavija en la pared y, dentro de limites razonables, obtendrá tanta electricidad como necesite. Los diseñadores de este sistema, llamado MULTICS (servicio de información y computación multiplexado), contemplaban una enorme maquina que proporcionara potencia de computo a todos los usuarios de Boston. La idea de que maquinas mucho más potentes que su GE−645 se vendieran como computadoras personales por unos cuantos miles de dólares solo 30 años después no era sino ciencia−ficción en ese entonces. Para resumir un poco la historia, MULTICS introdujo muchas ideas seminales en la literatura de computación, pero su construcción fue mucho más difícil de lo que nadie había imaginado. Bell Labs abandono el proyecto, y general Electric dejo el negocio de las computadoras por completo. 4
Finalmente, multics funciono lo bastante bien como para usarse en un entorno de producción de MIT y en docenas de otros sitios, pero el concepto de un servicio de computadora se hizo obsoleto al desplomarse los precios de las computadoras. NO obstante, multics tuvo una influencia enorme sobre los sistemas subsecuentes, se le describe en (Corbato et al., 1972, corbato y Vyssotsky, 1965, Daley y dennis, 1968, Organick, 1972, Saltzer, 1974). Otro avance importante durante la tercera generación fue el crecimiento fenomenal de las minicomputadoras, comenzando con la DECPDP−1 en 1961. La PDP−1 solo tenia 4k de palabras de 18 bits, pero a $120.000 por maquina (menos del 5%del precio de una 7094), se vendieron como pan caliente: Para ciertos tipos de trabajos no numéricos, la PDP −1 era casi tan rápida como la 7094, e hizo nacer una industria totalmente nueva. A esta maquina pronto siguió una serie de otras PDP (todas incompatibles, a diferencia de la familia IBM), culminando en la PDP−11. 8.− Uno de los computólogos de Bell Labs que había trabajado en el proyecto Multics, ken Thompson, encontró subsecuentemente una pequeña minicomputadora PDP−7 que nadie estaba usando y se propuso escribir una versión de multics reducida al mínimo, para un solo usuario. Este trabajo posteriormente evolucionó para convertirse en el sistema operativo UNIX, que se popularizó en el mundo académico, las dependencias del gobierno y muchas compañías. La historia de UNIX se encuentra en otras obras (por ejemplo, Salus, 1994). Baste con decir que, dado que casi todo el mundo podia obtener el cogido fuente, diversas organizaciones desarrollaron sus propias versiones (incompatibles), lo que condujo al caos. Con el objeto de que fuera posible escribir programas susceptibles de ejecución en cualquier sistema UNIX, el IEEE creo un estándar para UNIX, llamado POSIX, que casi todas las versiones actuales de UNIX reconocen. POSIX define una interfaz mínima de llamadas de sistema que los sistemas NIX deben reconocer. De hecho, algunos otros sistemas de programación ya reconocen la interfaz POSIX. ¿Que es un sistema operativo? La mayoría de los usuarios de computadora han tenia algo de experiencia con un sistema operativo, pero es fácil precisar con exactitud que es un sistema operativo. Parte del problema consiste en que el sistema operativo realiza dos funciones que básicamente no están relacionadas entre sí y dependiendo de que a quien preguntemos, Por lo general se nos habla principalmente de una función o de la otra. Veamos ahora las dos. • El sistema operativo como máquina extendida. • El sistema operativo como administrador de recursos. 1 .− El sistema operativo como maquina extendida: La arquitectura (conjunto de instrucciones, Organización de memoria, E/S y estructura de buses) de la mayor parte de las computadoras en el nivel de lenguaje de maquina es primitiva y difícil de programar, sobre todo la entra y salida. A fin de hacer mas concreto este punto, veamos brevemente como se realiza la E/S de disco flexible usando el chip 9.− controlador NECPD765 (o su equivalente), Utilizando por la mayor parte de las computadoras personales. El PD765 tiene 16 comandos, cada uno de los cuales se especificaba cargando entre 1 y 9 bytes en u registro de dispositivo. Estos comandos sirven para leer y escribir datos, mover el brazo del disco y formatear pistas, así 5
como para inicializar, detectar, restablecer y recalibrar el controlador y las unidades de disco. Los comandos más básicos son Read y Write, cada uno de los cuales requieren 13 parámetros empacados en 9 bytes. Estos parámetros especifican cosas tales como la dirección del bloque de disco que se va a leer, el número de sectores por pista, el modo de grabación empleado en el medio físico, el espaciado de la brecha entre sectores y que hacer con una marca de Dirección de datos eliminada . Si usted no entiende a que nos referimos, no se preocupe, de eso se trata precisamente, es algo muy esotérico. Cuando se completa la operación, el chip controlador devuelve 23 campos de estado y error empacados en 7 bytes. Por si esto no fuera suficiente, el programador del disco flexible también debe tener presente en todo momento si el motor esta encendido o apagado. Si el motor esta apagado, debe encenderse (con un retardo de arranque largo) antes de que pueda leerse o escribirse datos. Empero, el motor no puede dejarse encendido demasiado tiempo, pues el disco flexible se desgastaría. Por lo tanto, el programador debe encontrara un equilibrio entre los retardos de arranque largos y el desgaste del disco flexibles (Y la perdida de los datos que contienen). Sin entrar en los verdaderos detalles, debe quedar claro que el programador ordinario seguramente no quiere intervenir de manera demasiado intima en la programación de los discos flexibles (o de los duros, que son igualmente complejos, y muy distintos). En vez de ello lo que el programador quiere es manejar una abstracción sencilla, de alto nivel. En el caso de los discos, una abstracción típica seria que el disco contiene una colección de archivos con nombre. Cada archivo puede abrirse para lectura o escritura, y por ultimo cerrarse. Los detalles de si la grabación debe usar o no modulación de frecuencia modificada y cual es la situación actual del motor no deberán aparecer e la abstracción presentada al usuario. El programa que oculta la verdad del hardware y presenta al programador una vista sencilla y bonita de archivos con nombre que pueden leerse y escribirse es, por supuesto, el sistema operativo. Así como él 10.− Sistema operativo aísla al programador del hardware del disco y presenta una interfaz sencilla orientada a archivos, también oculta asuntos desagradables referentes a interrupciones, temporizadores de memoria y otras funciones de bajo nivel. En cada caso, la abstracción que el sistema operativo ofrece es más sencilla y fácil de usar que el hardware subyacente. En esta vista, la función del sistema operativo es presente al usuario el equivalente de una maquina extendida o maquina virtual que es más fácil de programar que el hardware subyacente. La forma en que el sistema operativo logra este objetivo es una historia larga. 2 .− El sistema operativo como administrador de recursos: El concepto del sistema operativo como algo cuya función primordial es ofrecer a los usuarios una interfaz cómoda es una visión descendente. Una visión ascendente alternativa postula que el sistema operativo esta ahí para administrar todos los componentes de un sistema complejo. Las computadoras modernas constan de procesadores, memorias, temporizadores, discos, ratones, interfaces con redes, impresoras láser y una gran variedad de otros dispositivos. En la visión alternativa, la misión del sistema operativo es asegurar un reparto ordenado y controlado de los procesadores, memorias y dispositivos de E/S entre los diferentes programas que compiten por ellos. Imagine lo que sucedería si tres programas que se ejecutan en alguna computadora tratan de imprimir sus salidas simultáneamente en la misma impresora. Las primeras líneas del listado podrían ser del programa 1, as siguientes del programa 2, luego algunas del programa 3, y así sucesivamente. El resultado seria un caos. EL sistema operativo puede poner orden en el caos potencial almacenado temporalmente en el disco todas las salidas destinadas para la impresora. Cuando un programa haya terminado, el sistema operativo podrá copiar su salida del archivo de disco donde se almaceno a la impresora, mientras que el otro programa puede 6
continuar generando salidas, ajeno al hecho de que dichas salidas no están yendo directamente a la impresora (todavía). Cuando una computadora (o red) tiene múltiples usuarios, l necesidad de administrar y proteger la memoria, los dispositivos de E/S y demás recursos es aun mayor, ya que de otra manea los usuarios podrían 11.− Interferirse. Además, es frecuente que los usuarios tengan que compartir no sólo hardware, sino también información (archivos, bases de datos, etc.). En pocas palabras, esta visión del sistema operativo sostiene que su tarea primordial es seguir la pista de quien esta usando cual recurso, atender solicitudes de recursos, contabilizar la utilización y mediar entre solicitudes en conflicto provenientes de deferentes programas y usuarios. Cómo funciona un Sistema Operativo Los sistemas operativos controlan diferentes procesos de la computadora. Un proceso importante es la interpretación de los comandos que permiten al usuario comunicarse con el ordenador. Algunos intérpretes de instrucciones están basados en texto y exigen que las instrucciones sean tecleadas. Otros están basados en gráficos, y permiten al usuario comunicarse señalando y haciendo clic en un icono. Por lo general, los intérpretes basados en gráficos son más sencillos, pero muchos usuarios expertos prefieren los intérpretes de instrucciones basados en texto porque son más potentes. Los sistemas operativos pueden ser de tarea única o multitarea. Los sistemas operativos de tarea única, más primitivos, sólo pueden manejar un proceso en cada momento. Por ejemplo, cuando la computadora está imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión. Todos los sistemas operativos modernos son multitarea y pueden ejecutar varios procesos simultáneamente. En la mayoría de los ordenadores sólo hay una UCP; un sistema operativo multitarea crea la ilusión de que varios procesos se ejecutan simultáneamente en la UCP. El mecanismo que se emplea más a menudo para lograr esta ilusión es la multitarea por segmentación de tiempos, en la que cada proceso se ejecuta individualmente durante un periodo de tiempo determinado • Listados de los diferentes Sistemas operativos Los sistemas operativos empleados normalmente son UNIX, Macintosh OS, MS−DOS, OS/2 y Windows−NT. El UNIX y sus clones permiten múltiples tareas y múltiples usuarios. Su sistema de archivos proporciona un método sencillo de organizar archivos y permite la 12.− protección de archivos. Sin embargo, las instrucciones del UNIX no son intuitivas. Otros sistemas operativos multi usuario y multitarea son OS/2, desarrollado inicialmente por Microsoft Corporation e International Business Machines (IBM) y Windows−NT, desarrollado por Microsoft. El sistema operativo multitarea de las computadoras Apple se denomina Macintosh OS. El DOS y su sucesor, el MS−DOS, son sistemas operativos populares entre los usuarios de computadoras personales. Sólo permiten un usuario y una tarea. OS/2. Desarrollado inicialmente por Microsoft Corporation e International Business Machines (IBM), después de que Intel introdujera al mercado su procesador 80286. Pero la sociedad no duro mucho ya que IBM veía a Windows como una amenaza para el SO/2. Macintosh OS. El sistema operativo constituye la interfaz entre las aplicaciones y el hardware del Macintosh. El administrador de memoria obtiene y libera memoria en forma automática para las aplicaciones y el sistema operativo. Esta memoria se encuentra normalmente en un área 7
llamada cúmulo. El código de procedimientos de una aplicación también ocupa espacio en el cúmulo. Ahora se presenta una lista de los principales componentes del sistema operativo. Diferentes Versiones de Windows 95 y 98 • 98 − 1era edición • 98 − 2da edición Análisis Comparativo entre DOS y WINDOWS Microsoft Windows, un entorno multitarea dotado de una interfaz gráfica de usuario, que se ejecuta en computadoras diseñadas para MS−DOS. Windows proporciona una interfaz estándar basada en menús desplegables, ventanas en pantalla y un dispositivo señalador como el Mouse (ratón). Los programas deben estar especialmente diseñados para aprovechar estas características. MS−DOS, acrónimo de Microsoft Disk Operating System (sistema operativo de disco de Microsoft). Como otros sistemas operativos, el sistema MS−DOS supervisa las operaciones de entrada y salida del disco y controla el adaptador de vídeo, el teclado y muchas funciones internas relacionadas con la ejecución de programas y el mantenimiento de archivos. El MS−DOS es un sistema operativo mono tarea y mono usuario con una interfaz de línea de comandos 13.− UNIX La primera descripción del sistema operativo UNIX data del año 1969, y corresponde a la formulación de Thomson y Dennis Ritchie, trabajadores entonces de la compañía americana AT&T. En 1973 apareció la primera versión de UNIX totalmente programada en C. El sistema operativo UNIX era en principio gratuito pero, en 1982, Bell Laboratories lanzó al mercado la versión comercial UNIX System III. Poco después aparece el UNIX System IV, que representa la base del actual sistema standard de UNIX, que es el UNIX System V. Existen varias distribuciones del UNIX System V: • UNIX SVR1, que incorpora el editor VI y la primera edición de la librería Curses; • UNIX SVR2 presenta el sistema de archivo; • SVR2.1 incluye la paginación bajo demanda; • SVR3 sale al mercado en 1987, y presenta como novedad más destacable el manejo de redes. • Por último, el UNIX SVR4 unifica los criterios de implementación de los sistemas anteriores. Existen otras variantes de UNIX, entre las que destaca el UNIX BSD (Berkeley Software Distribution), diseñado en Berkeley, que incluye el editor de comandos C−Shell, algunos editores de texto nuevos y un compilador de Pascal. Jay y Halley Pusictes incorporaron al sistema UNIX soporte para redes en el año 1984. Jay es fundador de Sun Microsystems, compañía que añade a los estándares UNIX el NFS (Network File System). Otros sistemas UNIX son el UnixWare (Novell), SunOS y Solaris (Sun MicroSystems), Aix (IBM), Digital UNIX (Digital), HP−UX (Hewlett Packard), Xenix (Microsoft), SCO−UNIX (Santa Cruz Operations) y, por último, Linux, versión de UNIX de libre distribución creada gracias al esfuerzo de multitud d usuarios y programadores sin ánimo de lucro. 8
14.− ARQUTITECTURA GENERAL DE UNIX El sistema UNIX está basado en tres niveles: • Nivel USUARIO • Nivel KERNEL • Nivel HARDWARE
9
10
Nivel KERNEL
15.− El kernel tiene una interfaz con los programas de usuario, teniendo las llamadas al sistema apariencia de funciones C, distinguiéndose dos tipos: • Llamadas al sistema de ficheros • Llamadas al control de procesos Funciones del kernel El kernel: • Controla la ejecución de procesos; 11
• Planifica la CPU en tiempo compartido; • Asigna memoria a los procesos; • Asigna memoria en disco; • Permite a los procesos el acceso a dispositivos. La ejecución de un proceso en UNIX se divide en dos niveles: nivel usuario y nivel kernel. Cuando se produce una llamada al sistema se pasa del modo usuario al modo kernel. Éste analiza la llamada, la ejecuta y devuelve el control a modo usuario. Esta diferenciación de modo se produce porque los procesos en modo usuario pueden acceder a sus instrucciones y datos, pero no a instrucciones y datos del kernel o de otros usuarios; mientras que el modo kernel puede acceder a todos los datos e instrucciones del sistema. Hay instrucciones privilegiadas a las que sólo se puede acceder en modo kernel, el cual reside permanentemente en memoria. El buffer cache Introducción El buffer cache consiste en un conjunto de buffers internos de datos manejados por el kernel con el objetivo de minimizar la frecuencia de acceso a disco. Estos buffers contienen bloques de datos de disco utilizados recientemente. Cuando el kernel quiere leer el disco, se comprueba 16.− Primeramente si los datos requeridos están en el buffer cache: si están, no es necesario el acceso a disco; si no es así no hay más remedio que acudir al disco. Si la operación a realizar es de escritura en disco, el kernel no la realiza directamente, sino que lo hace sobre el buffer, quedando los datos almacenados allí para posteriores lecturas. El espacio ocupado por el buffer cache es configurable en la inicialización del sistema, reservándose un cierto número de buffers. Cada buffer contiene los datos que se corresponden con un bloque de disco: es una copia en memoria del bloque de disco. Asimismo, ningún bloque puede estar en más de un buffer; es decir, un bloque de disco no podrá tener más de un bloque de memoria. Estructura El buffer cache está formado por una serie de buffers organizados. Hay una lista de buffers libres (`free list'), y una serie de colas (hash) para facilitar el acceso a los buffers sin recorrerlos todos. Cada buffer está constituido por una cabecera y un área de datos, que es un array de memoria donde se almacenan los datos de disco contenidos en el buffer. La distribución del buffer queda como sigue: # dispositivo # bloque Status Puntero al área de datos Puntero siguiente en la cola Hash Puntero anterior en la cola Hash 12
Puntero siguiente en la free list Puntero anterior en la free list 17.− • Los dos primeros campos (número de dispositivo y de bloque) se utilizan como identificativo del buffer. • El campo status incluye varios campos que indican el estado actual del buffer: • Si está libre u ocupado (utilizado por un proceso); • Si los contenidos son válidos o no, • Si el buffer es de escritura retardada; • Si se produce una lectura o escritura; • Si hay procesos en espera para utilizar el buffer. La asignación de estos campos se hace con un LRU de bloques de disco al buffer. • Memoria donde están los datos del bloque del disco. • Los punteros 2º y 3º apuntan al buffer posterior y anterior en la cola hash. • Los punteros 4º y 5º indican los buffers posterior y anterior en la free list. En el buffer cache se distinguen dos estructuras de datos: • Free List (única): es una lista circular doblemente enlazada, siendo los elementos de esta lista buffer headers. Tiene un buffer especial al principio de la lista, usado para marcar el principio y el final de la lista.
Mediante el uso de la lista con un LRU se realiza la asignación de los buffers a los bloques. Cuando se asigna un buffer a un bloque de disco no se puede volver a asignar sin que se hayan asignado todos los componentes de la lista antes. Si se realiza 18.− la asignación de un buffer de disco se asignará aquel que encabece la lista. Si se libera un buffer asignado a bloque, el buffer liberado se colocará al final de la free list. Con este sistema se mantiene el 13
algoritmo LRU automáticamente. • Colas Hash (múltiples). Son una serie de colas circulares doblemente enlazadas, con un buffer especial que indica principio y final de la cola. La diferencia con la free list radica en que la cola hash está organizada en una tabla hash según el número de bloque y el número de dispositivo lógico, siendo así más rápida la búsqueda.
Los datos que se corresponden con los datos de disco sólo pueden estar en una de las colas hash. Un buffer puede estar a la vez en una de las colas hash y en la free list. En caso de que este buffer no se encuentre ocupado por un proceso, la lista de bloques se organiza a partir de la estructura de colas hash. Suponiendo que los buffers 64, 17, 98 y 50 están ocupados, la free list quedaría como sigue:
14
15
19.− Funcionamiento Son necesarios cuatro algoritmos. • Asignación de un bloque de disco a un buffer (Get Block): Recibe como entrada el número de dispositivo y de bloque. • Encuentra el bloque y está libre: se marca como ocupado, se quita de la free lista. Ya está en su cola hash. • No se encuentra en su cola hash: se asigna el primer bloque de la free list, se marca como ocupado y se coloca en la cola correspondiente. • No se encuentra en la cola hash y se le asigna uno de escritura retardada: lo marca como ocupado, realiza una escritura asíncrona en disco e inicia la búsqueda de un nuevo bloque. • No se encuentra en su cola hash y la lista de bloques libres está vacía: el proceso ha de esperar y se va a dormir. Cuando el algoritmo de liberación actúa despierta a los procesos dormidos. • El bloque está ocupado: el proceso ha de esperar hasta que se libere. • Algoritmo de liberación de buffer: Libera el buffer, colocándolo como libre y situándolo al final de la lista de libres, no volviendo a ser utilizado hasta que sean utilizados todos los demás integrantes de la free list que lo preceden. Se ha de avisar a los procesos en espera de que se libera ese buffer, o de que otro buffer ha sido liberado. • Algoritmo de lectura de un bloque: • Busca el buffer en el buffer cache por medio del algoritmo obtener bloque, que marcará el buffer como ocupado. • Si está en el buffer cache, se devuelve el contenido, no se precisa la lectura en disco. 20.− • En caso contrario, se llama al driver del disco para que solicite una lectura. • El driver calcula la dirección y llama al controlador del disco. • Cuando se termina la lectura, el controlador provocará una interrupción y el servicio de interrupciones avisa a los procesos en espera de que ese buffer ha quedado libre. • Libera el buffer. • Algoritmo de escritura en disco
16
Es similar a la lectura de un bloque. Existen dos tipos de escritura: • Síncrona: el proceso realiza la operación de forma síncrona, esto es, espera a que se termine la operación de escritura en disco para liberar el buffer. • Asíncrona: el proceso no espera a que se termine la escritura. Cuando se termina la E/S se produce una interrupción, y es el servicio de interrupciones el que se encarga de liberar el buffer. Ventajas y desventajas del buffer cache Ventajas: • El acceso a disco es más uniforme, pues se hace siempre a través del buffer cache. Esto provoca un código más modular. • Aumenta la velocidad del disco. • Aumenta la integridad, ya que un bloque no puede estar en dos buffers. Desventajas: • Sistema sensible a cortes de electricidad. • Para grandes cantidades de datos, puede hacer lento el acceso a disco. 21.− Sistema de ficheros Para analizar el sistema de ficheros, debemos tener en cuenta dos puntos de vista: el del usuario y el del kernel. Usuario • Ve una estructura jerárquica que permite crear, borrar y modificar ficheros y directorios. • Permite un crecimiento dinámico de los ficheros. • Protege los datos de los ficheros. • Trata los periféricos como ficheros: los permisos de lectura o escritura en un periférico son iguales a los de cualquier otro fichero. • Tanto los ficheros como los directorios son una sucesión de bytes. • Cada uno de ellos está representado por un i−node, que tiene información acerca del fichero o directorio. Cada fichero tiene un único i−node, aunque puede tener varios nombres. Cada uno de esos nombres es un link. • El UNIX maneja tres estructuras: tabla de i−nodes, tabla de ficheros y tabla de escritores de ficheros de usuario. 17
Esta última tabla tiene una entrada para cada usuario que abre un fichero. Además tiene información de otras tablas, como son una tabla particular para cada proceso (tabla de ficheros), e información de otras tablas (una por sistema de ficheros). Esta tabla contiene el descriptor de fichero, que es el número que se emplea como índice para acceder a l tabla de descriptores de fichero, y un puntero a donde está el fichero en la tabla de ficheros. 22.− I−nodes La implementación de ficheros utiliza una técnica de índices con múltiples niveles. Cada fichero tiene asociado un índice llamado i−node (index node). En disco, un sistema de ficheros UNIX tiene el siguiente aspecto: Boot Block
Super Block
I−node List Blocks
• Boot Block: Contiene el código para inicializar el UNIX. Todo sistema de ficheros tiene boot block, aunque no sea estrictamente necesario. • Super Block: Indica el estado y configuración general del bloque de fichero: tamaño, bloques libres. • I−node list blocks: Serie de bloques donde están de forma contigua en el disco los i−nodes de todos los ficheros. Cuando se habla de i−node list nos referimos a un array en disco donde cada elemento es un i−node de un fichero. • Data blocks: Bloques de datos de los ficheros. Conviene diferenciar la unidad física o disco, que puede tener uno o más sistemas de ficheros, cada uno con esta misma estructura. Cada sistema de ficheros se denomina dispositivo lógico, mientras que el disco es el dispositivo de almacenamiento físico. El kernel es el encargado de asignar un número a cada dispositivo lógico o sistema de ficheros. El encargado de traducir las direcciones del dispositivo lógico al físico es el controlador de E/S (device driver). 23.− Campos por i−node en la lista de i−nodes del disco
18
• Propietario identifica al propietario del fichero asociado a ese i−node, distinguiendo entre individual y el grupo. • En el campo Permisos se expresan las posibilidades de operación según sea el propietario, un usuario de su mismo grupo o un usuario cualquiera del sistema quien intente la operación. Los permisos son de lectura (Read), escritura (Write) y ejecución (eXecute). 24.− • Tipo de fichero indica información sobre el tipo especial de fichero, siendo algunos ejemplos: • (−): fichero regular; • (d): directorio; • (b): dispositivo de bloque; • (c): dispositivo de carácter; • (ø): i−node libre. • El campo Tiempos de fichero tiene varios subcampos: • Última modificación del fichero; • Último acceso al fichero;
19
• Última modificación del i−node causada, además de por un cambio en los datos del fichero, por un cambio en los propietarios, permisos o links, sin necesidad de cambiar los datos del fichero. • El campo Número de links expresa el número de nombres del fichero dentro de la jerarquía. • Tamaño del fichero muestra el tamaño del fichero en Bytes. • El campo Tabla de contenidos almacena punteros a diversos bloques de datos. Por ejemplo, en UNIX System V la tabla de contenidos consta de 10 punteros directos a bloques de datos, un puntero indirecto, otro doble y otro triple. El número de punteros directos no es standard. | El kernel mantiene en memoria una tabla de i−nodes con la siguiente información: 25.−
• El campo Status indica posibles estados del i−node: • Si el i−node está ocupado. • Si hay un proceso en espera de que el i−node quede libre. • Si el contenido del i−node en memoria es distinto del i−node del disco. • Si el contenido del fichero en el disco es distinto del contenido del fichero en memoria. • Si el i−node es un punto de montaje; es decir, si del i−node se haya `colgado' otro sistema de ficheros. • El cuarto campo contiene los punteros necesarios para mantener la estructura de los i−nodes en memoria, que es similar a la del buffer cache: existen una serie de colas hash identificadas por el número del i−node y el número de dispositivo lógico, junto con una lista de i−nodes libres. • Cuenta de referencia indica el número de ficheros abiertos para ese i−node; es decir, el número de copias abiertas mediante una llamada de tipo `open' que están en unos, no cerradas por una llamada `close'. 26.− Un i−node estará en la lista de libres si el indicador de cuenta de referencia está a cero. Cuando se abre un fichero, si el fichero está activo se incrementa la cuenta; si se cierra, ésta se decrementa, y si vale 0 se pasa el 20
i−node a la lista de libres. Algoritmos para la gestión de i−nodes Mecanismo general de operación con i−nodes Cuando se requiere el acceso a los datos de un fichero, primero se determina el número de dispositivo lógico y el número de i−node, a continuación se busca el i−node en la tabla hash correspondiente. Si está en la tabla se devuelve el i−node, si no es así se toma un i−node libre y luego se lee el i−node del disco; es decir, se pasa de la lista de i−nodes a la tabla de i−nodes.
I−Get Toma un i−node de la tabla de i−nodes. • Se parte del número de dispositivo lógico y del número del i−node. • Si está en la cola hash es directo, sólo ha de devolver el i−node. 27.− • Si no está en la cola hash, opera como sigue: • Toma el primer i−node de la lista de libres. • Lo marca como ocupado, ya que hay un proceso que accede al i−node. • Pasa los datos del i−node de disco (lista de i−nodes) al i−node en memoria (tabla de i−nodes). • Calcula, a partir del número de i−node en la tabla, el número de bloque en que se encuentra l i−node, aplicando la fórmula: Nº BLOQUE = ((Nº Inode − 1) DIV (Nº inodes por bloque)) + Nº del bloque del primer bloque de la lista de inodes Por ejemplo: Nº del 1er bloque de la lista = 2; 8 inodes/bloque Inode 8: ((8 − 1) DIV 8) + 2 = 2 Inode 9: ((9 − 1) DIV 8) + 2 = 3 21
• A partir del número de dispositivo y del número de bloque lee el bloque. • Lee el contenido del i−node en el bloque. Para calcular la posición del i−node en el bloque se calcula el offset dentro de ese bloque de la siguiente forma: Offset (inode) = ((Nº Inode − 1) MOD (Nº inodes por bloque)) % % Tamaño (Bytes) del inode en disco Siguiendo con el ejemplo anterior: Bloque 512 Bytes 512 / 8 64 Bytes / Inode Offset 8: ((8 − 1) MOD 8) % 64 = 448 Bytes 28.− • Retiene el i−node de la lista de libres. • Copia el contenido en la cola hash correspondiente. • Sitúa el i−node en la cola hash correspondiente. • Incrementa la cuenta de referencia. • El kernel le quita la marca de ocupado; es decir, lo deja libre, pero no pasa a la lista de libres porque su cuenta de referencia es distinta de 0. En el caso de que la lista de libres esté vacía, se provoca un error si se requiere un i−node y hay demasiados ficheros abiertos. I−put Libera un i−node de la tabla de i−nodes. • Decrementa la cuenta de referencia debido a una llamada close. • Si la cuenta de referencia es Ø, entonces pasa a disco el i−node si es necesario; esto es, si ha sido modificado. • Se pasa el i−node a la lista de libres. • En el caso de que el número de links (nombres de ese fichero en el sistema de ficheros) sea Ø se libera todo el espacio; es decir, se liberan los bloques de disco asociados a ese fichero y se libera el i−node en disco. 29.− Estructura y acceso a los ficheros regulares En un i−node se encuentran las direcciones de bloque de disco que ocupa el fichero al que pertenece el i−node. En UNIX System V estas direcciones son 13 (punteros). Según la tabla de contenidos, y dependiendo del tamaño de los bloques, variará el posible tamaño de los ficheros a manejar. Por ejemplo, con bloques de 1K resultan los siguientes tamaños de ficheros, según se utilicen los índices directos, indirectos, indirectos dobles o indirectos triples: Directos 10 K Indirectos 256 K 22
Indirectos dobles 644 MB Indirectos triples 166 GB Ficheros directorios Son, al igual que en MS−DOS, ficheros con información para construir la estructura jerárquica del sistema de ficheros. Esta estructura consiste en un array de entradas de tamaño constante de tal forma que cada entrada tiene la siguiente forma:
En UNIX System V, el tamaño del campo Nº I−node es de 2 Bytes, y el tamaño del nombre es de 14 Bytes. Los directorios son tratados por los procesos igual que los ficheros, con la salvedad de que cuando se crea una entrada de este tipo la realiza el kernel. 30.− Permisos de acceso • Lectura (R): Permite leer el contenido del fichero directorio; • Escritura (W): permite escribir en el directorio, lo que supone crear y borrar archivos del directorio. • Ejecución (X): Permite la búsqueda de ficheros dentro del directorio (entrar en el directorio). Al igual que en MS−DOS, existen las entradas y en cada directorio: • Contiene el número de i−node de ese directorio. • Contiene el número de i−node del directorio padre. Super−Bloque En el super−boque se halla almacenada la configuración general del sistema. Contiene la siguiente información:
23
31.− Lista de bloques libres: No es una lista completa, sino que sólo contiene alguno de los bloques libres, que se encadenan con el resto de bloques libres del disco. El número de i−nodes libres se refiere al número de i−nodes no asignados a ningún fichero dentro de la lista de i−nodes. En la lista de i−nodes libres sólo están algunos de los i−nodes libres de la lista de i−nodes. Ocupado / No ocupado: Contiene dos flags indicadores del estado de las listas y bloques de i−nodes. Los estados dependen de sí están ocupados por un proceso o no.
24
El último flag expresa si el super−bloque ha sido modificado. Su presencia viene dada por la existencia de una doble copia del super−bloque: una en disco y otra en memoria. El flag indica la necesidad de actualizar la copia del super−bloque en disco si éste se modifica. 32.− Sistema operativo MS−DOS (Microsoft Disk Operating System) Fue desarrollado sobre 1980 por Paul Allen y Bill Gates. Existen otras versiones de DOS de otras compañías como PC−DOS de IBM o DR−DOS de Digital Research. En el DOS existen dos tipos de comandos: • Internos: Que entiende directamente del intérprete de comandos (dir, del, type, copy) • Externos: utilidades a parte (format, msav) El DOS se compone de tres ficheros principales: • IO.SYS • MSDOS.SYS • COMMAND.COM Los dos primeros son el núcleo del Sistema Operativo al arrancar el ordenador se copian en memoria y pasan a controlar la computadora. El Command.com es el intérprete de comandos, cuando el usuario teclea un comando, si este es interno lo ejecuta directamente, si es externo ejecuta ese otro programa cambiando el contador de programa para que apunte a ese nuevo programa. Dentro del DOS distinguimos: · Directorios. · Ficheros. Sistemas de ficheros en MS−DOS: Tres niveles: • Nivel Hardware: es el nivel de los dispositivos que manejan el disco (FDC Floppy Disk Controller), mediante este dispositivo se accede al disco pudiéndose formatear una pista, leer un sector, fusionarse sobre una pista etc. Proporciona una serie de comandos para operar con Fidel disco. 33.− • Nivel de implementación: trata de como el MS−DOS crea la estructura de ficheros sobre los sectores del disco. • Nivel lógico: trata de como el MS−DOS maneja los ficheros por medio del (FCB Fail Control Block) y del Handless (identificadores).
25
El contenido del disco o volumen está organizado de la siguiente forma: • Bootsector: Es el sector lógico 0 conocido como sector de arranque, contiene toda la información crítica que concierne a las características del disco como medio de almacenamiento. • Estructura: El primer Byte de ese sector es siempre una instrucción de salto 8086, bien una JMP normal (código de operación OE9H) seguida por un desplazamiento de 16 bits o bien un salto corto OEBH seguido por un desplazamiento de 8 bits y un NOP (no operación 9OH) si lo se encuentra alguno de estos códigos de JMP es señal de que el disco no ha sido formateado para uso bajo MS−DOS, a continuación de la instrucción inicial JMP encontramos un campo de 8 bytes reservado por Microsoft para identificación del fabricante. • Objetivo: El objetivo del sistema operativo es gestionar y administrar eficientemente los recursos hardware de la computadora, permitiendo ejecutar concurrentemente varios programas sin que haya conflictos en el acceso de cada uno de ellos a cada uno de los recursos que necesita y sin que ningún programa monopolice un recurso determinado. • Definición: Es un programa o conjunto de programas de control que tiene por objeto facilitar el uso de la computadora y conseguir que esta se ejecute eficientemente. Es un programa de control ya que se encarga de gestionar y asignar los recursos hardware a los usuarios, entendiendo por recursos hardware: la C.P.U., la memoria principal, discos y otros periféricos. 34.− El Sistema Operativo también facilita el uso del ordenador, cada dispositivo de E/S para ser utilizado requiere varias instrucciones maquina que establezcan un diálogo entre la computadora central y el periférico, estas instrucciones dependen considerablemente de las características concretas del periférico y por otra parte estas instrucciones y operaciones son comunes para todos los programas que lo utilizan. El Sistema Operativo con objeto de facilitar el trabajo de los ordenadores contiene rutinas y modelos de gestión de E/S evitando a los programadores y usuarios conocer las instrucciones de la máquina concreta de cada periférico. Servicios de Sistema Operativo: Servicios para facilitar la programación: ejecutar programas, operaciones E/S, manipulación del sistema de ficheros, detectar errores Servicios para hacer eficiente el uso del computador: Asignar recursos, llevar contabilidades, protección, dar información Protección: • Protección de E/S. • Protección de memoria. • Protección de la C.P.U. Protección de E/S: el Sistema Operativo no permite a los programas que accedan directamente a la E/S, así podemos distinguir dos tipos de actuación: El modo usuario y el modo supervisor que permite el acceso a una serie de acciones privilegiadas. 26
Protección de memoria: Se crea una zona límite en la memoria a partir de la cual están las aplicaciones de los usuarios y no se permite el acceso a la zona que ocupa el Sistema Operativo así mismo se crea otro límite superior para no acceder a la zona ocupada por otros programas. Protección de la C.P.U.: Se pone un contador de tiempo para que cada cierto tiempo la C.P.U. pase a ser controlada por el Sistema Operativo para que este decida a que programa le da el control. 35.− OS/2 Paradójicamente, OS/2 comenzó siendo un desarrollo conjunto de IBM y Microsoft, pero esta relación se rompió cuando Microsoft lanzó Windows al mercado; se trataba de un paso intermedio hasta llegar al OS/2, pero en vista del éxito que tuvo, decidieron modificar su estrategia en el mercado de los sistemas operativos y basarla en su producto Windows. Por su parte, IBM continuó en solitario el desarrollo del OS/2, cuyas primeras versiones no tuvieron éxito, principalmente debido a su exigencia de recursos y la falta de aplicaciones nativas. Fue a partir de su versión 2.1 y, sobre todo, de la versión Warp 3.0, cuando OS/2 comenzó a hacerse con cierto renombre en el mercado. Recordemos que OS/2 es un sistema operativo gráfico de 32 bits, multitarea, robusto y estable, dotado de un sistema de ficheros propio, el HPFS (High Performance File System) que soporta nombres largos de fichero, caché de disco y acceso optimizado, y de grandes posibilidades multimedia, entre otras cosas. Veamos lo que nos presenta la nueva versión Merlin. El sistema se distribuye en la friolera de 4 CDs: OS/2 Warp, Device Driver Pak, Application Sampler y Lotus Notes Mail, además de 3 disquetes de instalación. El proceso de instalación es sencillo, pero bastante largo, pudiendo durar más de una hora (dependiendo de las opciones que se elijan) y ocupar más de 300 Mbytes de espacio en disco si se instalan todos los componentes. Ahora OS/2 soporta la tecnología Plug'n'Play, y su sistema de auto−detección del hardware es muy efectivo, aunque tiene algún que otro fallo: instalamos Merlin en un P−133 con 16 Mb de RAM, disco IDE de 1 Gb y CD−ROM IDE Hitachi, y en un P−120 con 32 Mb de RAM, dos discos duros de 1 Gb (uno de ellos SCSI), CD−ROM Mitsumi, tarjeta de sonido y adaptador de red Ethernet NE2000 compatible. En el primer equipo todo fue bien, y en el segundo caso detectó sin problemas la tarjeta de sonido, el CD y la tarjeta SCSI, pero no reconoció la tarjeta de red, ni la VGA ATI Wincharger PCI, aunque curiosamente en la instalación avanzada la reconoció como SVGA ATI. En cualquier caso, es recomendable elegir la opción de instalación avanzada, pues así podemos seleccionar los componentes más novedosos y avanzados del sistema operativo, que de otra forma no serían instalados. 36.− Hay que decir que el soporte hardware del sistema operativo es muy amplio, admitiendo unidades ópticas SCSI−2, infrarrojos, PCMCIA y dispositivos especiales para los portátiles ThinkPad de IBM, como floppys externos o Ultrabays. El entorno Al iniciar el sistema, obtenemos la pantalla principal del OS/2. El escritorio recuerda al de Windows 95, ya que incorpora elementos similares a los de éste: por ejemplo, la trituradora o Shredder es un icono que sirve para borrar elementos, simplemente arrastrándolos y soltándolos encima; aunque la mayor novedad es el WarpCenter, una barra de tareas muy parecida a la de W95, aunque más completa: en ella tenemos, de izquierda a derecha, un botón con el logotipo OS/2, que al pulsarlo nos da acceso al contenido del escritorio (parecido al botón Inicio de W95). El siguiente icono nos muestra la lista de aplicaciones activas, pudiendo conmutar a cualquiera de ellas con sólo pulsar el ratón. 27
Los dos siguientes botones permiten bloquear con una clave el sistema y buscar objetos, respectivamente, y un icono adicional inicia el apagado del sistema. A continuación sigue una barra que nos muestra la etiqueta del disco o discos duros, su sistema de ficheros (FAT o HPFS), el espacio libre y ocupado del disco, un monitor de actividad del sistema y, en caso de hallarse instalado soporte para APM, un indicador del estado de las baterías del equipo. Todo esto se obtiene en el mismo botón, basta picar sobre él para ir cambiando las opciones. Lo siguiente es un botón que da acceso a una serie de bandejas o trays, sobre las cuales podemos arrastrar y soltar los objetos más utilizados, para poder acceder a ellos con una sola pulsación del ratón. Otro botón disponible en el WarpCenter es el Assistance Center, desde el cual se nos da acceso a todo el sistema de ayuda del OS/2: documentación, guías para corregir errores, tutoriales, y otra novedad: las WarpGuides. Se trata de asistentes que guían al usuario en las tareas más comunes; suelen aparecer automáticamente al realizar ciertas funciones, como instalar nuevos dispositivos, pero se las puede configurar para que no lo hagan. 37.− La última opción del WarpCenter es un reloj, calendario y cronómetro todo en la misma barra y conmutable, al igual que el monitor de actividad anteriormente citado, mediante sucesivas pulsaciones del botón izquierdo del ratón. Por defecto, se instalan los siguientes grupos de programas: 'Connections', que da acceso a las unidades del sistema y conexiones a red, a Web Sites y a impresoras (es similar a MiPC de Win95). 'Assistance Center', que como hemos comentado cubre lo relacionado con ayudas, solución de problemas, etc. En 'Programs' obtenemos las carpetas de los componentes instalados. 'OS/2 System' da acceso a la configuración del sistema, los diferentes "prompts" de línea de comandos (tenemos para DOS en ventana o pantalla completa, sesión Win−OS/2 en ventana o pantalla completa, y OS/2 en ventana o pantalla completa), herramientas para problemas (debuggers, logs), etc. Todo el escritorio de OS/2 Warp está orientado al objeto, eso significa que no sólo es posible, por ejemplo, borrar ficheros o imprimirlos simplemente arrastrando y soltando su icono en el lugar adecuado, sino que cada objeto tiene su menú contextual, accesible mediante el botón derecho del ratón (igual que en W95), que contiene sus propiedades, pantallas de ayuda, y opciones para moverlo, dejarlo fijo en su lugar, borrarlo, moverlo, o crear su correspondiente sombra o Shadow, que no es otra cosa que un acceso directo a ese objeto. La ventana propiedades de los diferentes objetos de OS/2 recuerda a la de W95, pues también basa su funcionamiento en pestañas, aunque éstas son de diferentes colores, dándole un aspecto menos serio. Cuando no caben todas las pestañas, en los extremos izquierdo y derecho de la ventana aparecen sendos iconos que nos permiten desplazarnos por ellas, y si en una pestaña hay más de una página, se nos informa del número de páginas, pudiendo pasarlas con su botón correspondiente. Compatibilidad hardware OS/2 es la alternativa a Windows; ahora bien, ¿qué grado de compatibilidad puede ofrecer con el hardware y el software existente? Pues, muy alto. A nivel de hardware, OS/2 es Plug'n'Play, y su nivel de detección es muy bueno; además, el número de drivers para todo tipo de 38.− dispositivos ha aumentado considerablemente. De hecho, uno de los CDs que se entregan con el sistema 28
operativo se llama Device Driver Pak, y es una inmensa recopilación de controladores para todo tipo de dispositivos, unos corrientes como CD−ROMs, tarjetas de video, sonido, etc. Y otros no tan comunes, como dispositivos de encriptación de datos, tabletas digitalizadoras, jukebox ópticos, laserdiscs, etc. Es curioso, y sobre todo significativo, el hecho de que el contenido del CD está optimizado para ser visualizado con un browser web; se incluye el IBM WebExplorer, pero sería posible usar otro. Hay que decir que, cuando no se dispone de drivers para un dispositivo concreto, se incluye un link a la página web del fabricante del hardware en cuestión; como puede verse, IBM ha intentado hacernos la vida mucho más fácil en esta nueva versión de su sistema operativo. Multimedia OS/2 tiene muy presente el tema multimedia. Para empezar, incluye visualizadores, que se ejecutan automáticamente al pinchar en el objeto correspondiente, de imágenes BMP, DIB, GIF, TIFF, JPG, PCX, TGA y VID, de archivos de video AVI, y reproductores de audio WAV y MIDI. También, se incluye reproductor de CDs de audio, una utilidad para editar ficheros AVI y el VideoIn Recorder, un programa para captura y grabación de señales de video. Así mismo, disponemos de sonidos, gráficos BMP e imágenes JPG de ejemplo; cabe destacar el hecho de que, al abrir una carpeta con este tipo de imágenes, sus correspondientes iconos se convierten en representaciones en miniatura de la imagen real, simulando el aspecto de diapositivas, muy útil para identificar rápidamente el contenido de dichos archivos. Conectividad IBM desea que su sistema operativo sea el cliente de red universal, permitiendo conectarse con servidores o a redes entre iguales (también llamadas redes punto a punto). Así, soporta conexiones a servidores OS/2 Warp Server, Novell Netware y Windows NT, y a redes entre iguales Lantastic, Windows para Trabajo en Grupo, Windows 95 y Windows NT; también soporta IBM Lan Server, PC LAN y, como no, TCP/IP, pudiendo compartir ficheros e impresoras con estaciones ejecutando estos sistemas. 39.− En esta versión se han incluído también servicios de acceso remoto (RAS) para conexión a redes vía modem, y los llamados Mobile Office Services, que permiten sincronizar los archivos de un ordenador portátil y otro de sobremesa, similar al maletín de Windows 95. Resultará de gran utilidad a aquellos usuarios que trabajen fuera con su portátil, y deseen actualizar la información de su ordenador de sobremesa. Comunicaciones Estrechamente relacionado con lo anterior, tenemos el componente de comunicaciones de OS/2. Aquí también existe un gran compromiso con Internet, integrándose muy bien el entorno con la red. Para empezar, la carpeta 'Connections' tiene un apartado, 'Web Sites' con carpetas URL, conteniendo direcciones web de entretenimiento, educación, deportes, etc. Como ya se comentó con anterioridad, se incluye el browser Web IBM WebExplorer; es posible situar sobre el escritorio iconos que representen las direcciones más usadas, y hacer click sobre ellos para acceder directamente a las páginas Web. También existe una carpeta FTP que permite interactuar con cualquier servidor FTP simplemente abriéndola y luego arrastrar y soltar iconos del escritorio al servidor y al contrario, evitando usar líneas de comando o browsers. Otra innovación del sistema operativo es el soporte nativo del lenguaje Java; esto significa que podemos ejecutar directamente una aplicación o un applet Java, sin necesidad de interpretes ni browsers. Se incluye el Java Developers Kit y los run−time necesarios para ejecutar aplicaciones; por tanto, tenemos ejemplos de programas Java, editor, compilador y desensamblador de clases Java, y documentación en formato HTML sobre el lenguaje. En definitiva, un buen tanto a favor de IBM. 29
Reconocimiento de voz Veamos ahora la característica más novedosa y espectacular de Merlin: el reconocimiento de voz. Se trata del sistema VoiceType de navegación y dictado por voz; simplemente con una tarjeta de sonido y un buen micrófono, es posible moverse por el entorno del OS/2 y ejecutar 40.− programas, dando órdenes vocales al sistema. Por ejemplo, decimos 'File' (la versión que hemos probado está en inglés, pero IBM ya tiene a punto la versión en castellano) y se despliega el menú de archivos; si decimos 'close', cerraremos la ventana, etc. Aunque IBM también comercializa VoiceType por separado (existe versión para Windows 95), aquí se encuentra totalmente integrado en el sistema operativo. Esto significa que cualquier objeto tiene, en su ventana de propiedades, una página llamada 'Speech', en la cual podremos crear su palabra correspondiente y entrenar a VoiceType para que la reconozca; a partir de este momento, bastará con pronunciarla para dirigirse al objeto en cuestión. También tenemos dos ventanas, llamadas 'What can I say' y 'Where can I go'; la primera visualiza la lista de los comandos de voz que están siempre disponibles, y los comandos que sólo pueden ser invocados en el contexto actual. Por su parte, 'Where can I go' muestra los programas del escritorio a los que podemos acceder vía voz; por supuesto, es posible añadir macros a esta ventana para activar los programas que deseemos. Además de la navegación, tenemos el sistema de dictado, que nos permite dictarle al ordenador el texto que deseemos; para ello, tenemos la ventana 'Dictation Window', sobre la cual el sistema irá escribiendo las palabras dictadas, que posteriormente podremos transferir a otra aplicación. Hemos probado la versión en inglés, y es realmente impresionante, aunque hay que aclarar algunos puntos: nuestra pronunciación debe ser muy buena para que nos entienda bien, y es muy recomendable dedicar previamente cierto tiempo a entrenar al sistema para que reconozca nuestra voz. Asímismo, debemos tener un buen micrófono para no confundir al sistema y conseguir resultados óptimos; segúnIBM, la versión inglesa tiene un 90% de aciertos, y la versión en castellano llegará al 98%. Hay que tener presente que, al dictar, es preciso separar una palabra de otra con una pequeña pausa, para no confundir a VoiceType, que va analizando lo que decimos, y modificando las frases ya dictadas según va descifrando el contexto. En definitiva, una tecnología espectacular y que realmente funciona; sin embargo tiene un precio: requiere un procesador Pentium rápido (120 o 133) y mucha memoria; aunque IBM recomienda 24 Mb, las pruebas indican 41.− que la cantidad de RAM no debe ser inferior a 32 Mb para alcanzar un rendimiento razonable. También, conviene disponer de un disco duro lo más rápido posible, pues la complejidad del análisis de voz obliga al sistema a realizar continuos accesos a disco, algo que sucede incluso con 32 Mb de RAM. Oslo (PM−Press) 05.12.97: Los rumores sobre la muerte del sistema operativo OS/2 serían muy exagerados, según IBM. La semana pasada, la publicación ZD−Net escribió que el sistema operativo OS/2, considerado en un momento como una gran amenaza contra el sistema operativo Windows, había pasado a mejor vida.
30
El artículo motivó una reacción oficial de la compañía IBM, madre de OS/2, en que se objetan diversos planteamientos de ZD−Net. Primeramente, IBM señala que OS/2 de ninguna manera ha muerto, ni siquiera agoniza. Por el contrario, indica la compañía, OS/2 continuará siendo un sistema operativo alternativo para redes ofimáticas, además de formar parte de la estrategia general de IBM orientada a las redes y el comercio electrónico. Más aún, la compañía indica que continuará mejorando productos de la serie OS/2 durante 1998. Por otra parte, IBM desmiente afirmaciones de ZD−Net en el sentido que estaría reasignando tareas a sus desarrolladores dedicados al OS/2. Al respecto, IBM precisa que tales empleados continúan dedicados a las mismas funciones, sólo que adscritos a una nueva división, denominada "Network Computing Software Division". Tal división se dedicará básicamente a la implantación de tecnologías de uso de Java, redes, y comercio electrónico. A fines de 1994, IBM presentó OS/2 Warp, Versión 3, el sistema operativo más avanzado disponible para computadores personales, pero la historia comienza en 1987. El 1ro. de agosto de 1984, IBM lanza un nuevo PC en su línea. El PC−AT IBM, en el cual "AT" significa Advanced Technology, fue vendido como el primer computador personal muitiusuario del mundo. 42.− En abril 1985, Intel introdujo un nuevo y poderoso procesador: el 80386. Entre tando la mayoría del mundo estaba esperando el OS/2 en 1986 (OS/2 no había sido aún llamado así), el nuevo sistema operativo fue prolemático. Microsoft había estado trabajando en una version multi−tarea del DOS desde 1983. El mayor problema con el procesador 80286 −él procesador para el cual fue hecho la primera versión del OS/2− rapidamente finalizó el proyecto. Para los desarrolladores, la emergencia de disponer del 80386 hizo escucharse pronto. En abril de 1987, IBM anunció su ansiosamente esperada siguiente generación de microcomputadora: el PS/2. Al mismo tiempo, Microsoft e IBM (OS/2 1.0 fue un desarrollo cooperativo entre MS e IBM) final y formalmente anunciaron que introducirían un nuevo sistema operativo de protección−modular basado en el nuevo 286, al final del año. Aquel sistema operativo fue ahora llamado OS/2, Versión 1.0 En 1988, algunos vendedores fueron desarrollando para OS/2, pero muchos no quisieron adaptar nada hasta que IBM y Microsoft mejoraron la versión de OS/2 con la interfase tipo MacIntosh llamada Presentation Manager, con la versión 1.1 de OS/2 Inmediatamente después de Comdex 1989, IBM y Microsoft mejoraron el OS/2 1.2; la nueva versión ofreció una mejora en el Presentation Manager y la opción de usar un nuevo sistema de archivos: el High Performance File System. En 1989, el momento para una versión de OS/2 basado en el 80386 había llegado. Microsoft en Readmond e IBM en Armonk comenzaron a decirle al mundo que estaban trabajando en una versión re−escrita del OS/2 llamada Versión 2.0, que explotaría las grandes posibilidades de direccionamiento de memoria del 80386. Después en 1990, IBM anunció que OS/2 2.0 sería un "mejor Windows que el Windows" y "un mejor DOS que el DOS" corriendo Windows más rápido y haciendo multitarea con aplicaciones DOS. 43.− IBM mejoró OS/2 en Mayo de 1993, anunciando la versión 2.1, la cuál corría más rápido y requería menos espacio en disco. A la vez que disponía un nuevo sub−sistema gráfico de 32−bit permitiendo mejorar la 31
performance en las aplicaciones 32−bit. En octubre de 1994, IBM introdujo OS/2 WARP Versión 3.0 ¿Qué mejoras puedes encontrar en OS/2? MULTITAREA − OS/2 permite correr multiples procesos simultaneamente. MAS MEMORIA − No solo 640K de memoria base... los usuarios OS/2 no conocen los manejadores de memoria que complican bajo DOS y Windows. Interfase Gráfica de Usuario (GUI). La interfase de OS/2 está completamente orientada a objetos. Excelente compatibilidad para aplicaciones DOS y Windows Buen soporte para integración a redes. Soporte incorporado para Adobe Type Manager para las letras standard PostScrips. La opción para usar un nuevo diseño de sistema de archivos (HPFS) que permite nombres largos, ofrece un más rápido acceso a disco y no fragmenta los archivos. Protección para aplicaciones − no más mensajes de "Error general de protección" La incorporación del lenguaje REXX, el cual obviamente es muchísimo más potente que el DOS El acceso simple a Internet, incluyendo comunicación TCP/IP y el grupo completo para e−mail, transferencia de archivos y otras utilidades La posibilidad de correr programas DOS, aplicaciones Windows 3.1 y 3.11 y software nativo OS/2 a la vez. Ha pasado mucho tiempo desde que tomé contacto con OS/2. Cuando conecté la segunda línea telefónica a mi BBS, los sistemas operativos comunes no me permitían disponer de multitarea, por lo cual decidí probar OS/2... Entiendo que esto pueda sonar algo extraño, pero piensa que en mi país las BBSes no son muy comunes como en otros países y todo el mundo aquí, como yo, debe encontrar nuevo software, nuevos ambientes, nuevas técnicas para dar a los usuarios un servicio exitoso. Usando OS/2 pude disponer de varias tareas a la vez: dos líneas telefónicas transfiriendo a 28.8Kbps, imprimir un documento, leyendo un diskette y trabajando en una ventana. Por ello, me he vuelto otro miembro mas del Team OS/2 y a medida que el tiempo pasa, descubro nuevas aplicaciones para mis necesidades. 44.− Introducción al sistema operativo Windows NT Presentación del sistema operativo NT El sistema operativo NT fue desarrollado por Microsoft para superar los obstáculos impuestos por la vieja arquitectura de sus sistemas operativos MSDOS y Windows. NT es un sistema operativo completo, que puede ser instalado sobre un equipo nuevo sin necesidad de software adicional, como le ocurre a Windows 3.x, y que ofrece nuevas tecnologías para el desarrollo y ejecución de todo tipo de aplicaciones. Algunas de sus características más importantes son: • Robustez. NT es un sistema operativo estable y robusto, que impide a las aplicaciones mal escritas estropear al resto del sistema. • Seguridad. NT ha sido escrito para satisfacer criterios de seguridad típicos de organismos oficiales y empresas cuyos datos y aplicaciones deben quedar a salvo de accesos no autorizados. Prácticamente cada objeto del sistema posee un esquema de seguridad asociado que indica qué usuarios pueden acceder al objeto y con qué privilegios pueden acceder. • Probabilidad. El diseño de NT permite que se pueda adaptar fácilmente a otra arquitectura para las que no fue originalmente desarrollado. Actualmente soporta la arquitectura de Intel X86, MIPS, Alpha y PowerPC. Su diseño modular y el estar escrito en lenguaje fácilmente portable, como es el C, 32
permiten esta rápida migración. • Compatibilidad con las aplicaciones Windows. La capacidad de NT para ejecutar aplicaciones MSDOS y Windows permite disponer de gran cantidad de software escrito que permite sacar rendimiento al sistema sin tener que migrar las aplicaciones. Incluso las nuevas aplicaciones Win32 corren en modo nativo en las diferentes plataformas de NT, simplemente recompilándolas para cada plataforma, o incluso a través de los emuladores−compiladores JIT (Just In Time) como son el X86, distribuido gratuitamente para las plataformas no Intel soportadas. 45.− • Velocidad. NT está desarrollado para hacer frente a las aplicaciones que necesitan gran cantidad de recursos y altas velocidades de ejecución, típicas de entornos cliente/servidor y de ingeniería, como pueden ser servidores de recursos de red, de bases de datos y programas de cálculo científico y diseño gráfico. NT hereda los interfaces de usuario desarrollados para la familia Windows. Por ejemplo en las versiones 3.X de NT se utilizan el administrador de programas y demás elementos del Windows 3.X, mientras que en NT 4.0 se emplea el nuevo interfaces de Windows 95. Esto permite reducir la curva de aprendizaje para el nuevo sistema operativo. NT saca un mejor provecho que los diferentes Windows a la ejecución d e aplicaciones en multitarea real, permitiendo ejecutar varias aplicaciones simultáneamente, conmutando rápidamente entre ellas. Ejecución de aplicaciones NT puede ejecutar varios tipos de aplicaciones: • Aplicaciones MSDOS. La mayor parte de las aplicaciones MSDOS corren sin problemas. Sólo aquellas que acceden directamente a recursos específicos, como pueden ser el puerto serie o el paralelo, o que intentan capturar las interrupciones básicas de MSDOS, no funcionan. Típico ejemplo de estas aplicaciones es las que funcionan con llaves de protección del tipo "mochila" que no está específicamente preparadas para NT. • Aplicaciones Windows de 16 bits. La mayor parte de las aplicaciones de 16 bits funcionan sin problemas bajo Windows NT. Algunas aplicaciones, que utilizan llamadas no documentadas a el APIs de Windows, o que hacen suposiciones sobre los recursos de Windows que son sólo válidos en Windows 3.x fallan al ejecutarse sobre NT. Aplicaciones Win32. Son las nuevas aplicaciones desarrolladas para Windows 95 y NT. Las aplicaciones Win32 eliminan gran parte de los problemas que tenían las aplicaciones Win16, que están basadas en el modelo plano de memoria, que permite a las aplicaciones disponer de hasta 2 gigabytes de datos. Las aplicaciones Win32 se ejecutan siempre como multitarea preemptiva (real), en espacios de memoria 46.− separados que evitan que el mal funcionamiento de una de ellas repercuta en las demás. Además las aplicaciones Win32 hacen uso de las nuevas APIs Win32, más potentes y flexibles, con capacidad de ejecución de múltiples hilos. Esto permite a las aplicaciones ejecutar tareas de fondo, como la revisión ortográfica, recálculo, repaginación e impresión típica de los procesadores de texto y de las hojas de cálculo. Esto evita al usuario largos tiempos de espera en su trabajo habitual. 47.− 33
BIBLIOGRAFIA Sistemas Operativos • Andrew S. Tanenbaum • Albert S. Woodhull http://www.unix−systems.org/what_is_unix/history_timeline.html http://www.faqs.org/faqs/unix−faq/faq/part1/ http://www.cs.arizona.edu/people/bridges/os/unix.html http://www.unix−systems.org/what_is_unix.html http://www.computerhope.com/unix.htm http://www.xtec.es/~jpujada1/clientmsdos.htm http://www.ntmagazine.net/welcome.htm http://www.standishgroup.com/wolf.htm 49.− INDICE Introducción 1 Evolución Histórica De Los Sistemas Operativos 2 Etapa 1 2 Etapa 2 3 Etapa 3 4 Que es un sistema operativo 9 Cómo funciona un Sistema Operativo 12 Lista de los sistemas operativos 12 Análisis Comparativo entre DOS y WINDOWS 13 UNIX 14 Arquitectura general de UNIX 15 Sistema operativo MS−DOS 33
34
OS/2 36 Sistema operativo Windows NT 45 Conclusión 48 Bibliografía 49 CONCLUSION Según lo tratado en este trabajo podemos concluir, Que un computador es solo un montón de metal en la cual si no hay un sistema operativo no se puede operar. Ya que estos sirven para controlar algunos procesos importantes, la interpretación de los comandos que permiten al usuario comunicarse con el ordenador. Algunos intérpretes de instrucciones están basados en texto y exigen que las instrucciones sean tecleadas. Otros están basados en gráficos, y permiten al usuario comunicarse señalando y haciendo clic en un icono. Por lo general, los intérpretes basados en gráficos son más sencillos, pero muchos usuarios expertos prefieren los intérpretes de instrucciones basados en texto porque son más potentes. Los sistemas operativos pueden ser de tarea única o multitarea. Los sistemas operativos de tarea única, más primitivos, sólo pueden manejar un proceso en cada momento. Por ejemplo, cuando la computadora está imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión. 48.− Trabajo 3 Trabajo 2 Trabajo 1 Sistema Operativo
35