Escuela de Educación Técnica Nº2 – Instalación y Configuración de Sistemas Operativos Unidad 1 UNIDAD 1 - INTRODUCCION El software de la PC puede pertenecer a uno de tres grandes grupos: a) software de sistema; b) software de programación; c) software de aplicación. del Sistema Software de programación de aplicación software de la ROM sistema operativo interface gráfica lenguajes de programación programas de soporte programas a medida utilitarios paquetes integrados Software del sistema: El software del sistema gestiona cada una de las partes del computador ocultando al usuario su estructura física interna y su organización lógica. Dentro del sistema está el software de la ROM, el sistema operativo y la interface gráfica. Software de la ROM: Consiste en una serie de programas que se encargan del arranque del computador, detectando sus componentes y el estado de los mismos. Además posee las rutinas BIOS (Basic Input Output System) – Sistema básico de entrada/salida), que proporcionan los servicios fundamentales de comunicación entre el microprocesador y periféricos tales como el teclado, la pantalla y los controladores de discos. Sistema operativo: Es un conjunto de programas que crean el marco adecuado para una eficaz comunicación entre el usuario y la PC. El sistema operativo maneja recursos como el microprocesador, los dispositivos de entrada/salida, las memorias, los procesos y los archivos. Oculta al usuario el hardware de la PC. La variedad de los sistemas operativos FUENTE: Sistemas Operativos Modernos de Tanenbaum Sistemas operativos mainframe: Los mainframes son computadoras gigantes que todavía se encuentran en importantes centros de datos corporativos. Se distinguen de las PC por su gran capacidad de E/S. No es raro ver un mainframe con 1000 discos y nubes de gigabytes de datos. 1 Escuela de Educación Técnica Nº2 – Instalación y Configuración de Sistemas Operativos Unidad 1 Los sistemas operativos para mainframe enstán orientados al procesamiento de varios trabajos a la vez. Los servicios que ofrecen suelen ser de tres tipos: por lotes, procesamiento de transacciones y tiempo compartido. Un sistema por lotes procesa trabajos rutinarios sin que haya un usuario interactivo presente. Ej los informes de ventas de una cadena de tiendas. Los sistemas procesadores de transacciones manejan numerosas solicitudes pequeñas. Ej reservas de pasajes aéreos. Los sistemas de tiempo compartido permiten a múltiples usuarios remotos ejecutar trabajos en la computadora de forma simultánea. Ej consulta a una base de datos grande. Ejemplo de sistema operativo mainframe: OS/390 y OS/360. Sistemas operativos de servidor: Se ejecutan en servidores que son computadoras personales muy grandes y dan servisio a múltiples usuarios a través de una red, permitiéndoles compartir recursos de hardware y software. Los servidores pueden prestar servicios de impresión, de archivo o de web. Los proveedores de internet operan muchas máquinas servidoras para atender a sus clientes y los sitios web emplean servidores para almacenar las páginas web y manejar las solicitudes que llegan. Ejemplo de sistema operativo de servidor: Windows 2000, Unix y Linux. Sistemas operativos de computadoras personales: Su misión consiste en presentar una buena interfaz a un solo usuario. Son los más conocidos. Ej. Windows 98, Windows 2000, Macintosh y Linux. Sistemas operativos de tiempo real: Se caracteriza porque su parámetro clave es el tiempo. En los sistemas de control de procesos industriales, computadoras de tiempo real tienen que capturar datos acerca del proceso de producción y utilizarlos para controlar máquinas de una fábrica. Deben cumplirse plazos estrictos. Ej. Si un robot suelda demasiado pronto o demasiado tarde, el automóvil quedará arruinado. Sistemas operativos integrados Son los que se utilizan en las computadoras de bolsillo (palm-top) y en los sistemas integrados. Las palm son computadoras pequeñas que realizan funciones como libreta de direcciones electrónica y bloc de notas. Los sistemas integrados operan en las computadoras que controlan dispositivos que por lo general no se consideran computadoras como televisores, hornos microondas y teléfonos móviles. Estos sistemas suelentener características de los sistemas en tiempo real pero tienen limitaciones de tamaño, memoria y consumo de electricidad. Ejemplos de sistemas operativos de este tipo son PalmOS y Windows CE Sistemas operativos de tarjeta inteligente Los sistemas operativos mas pequeños se ejecutan en tarjetas inteligentes que son dispositivos del tamaño de una tarjeta de crédito que contienen un chip de CPU. Sus limitaciones en cuanto a procesamiento y memoria son muy severas. Algunos de ellos solo pueden desempeñar una función como pagos electrónicos pero otros pueden realizar varias funciones con la misma tarjeta. Algunas tarjetas inteligentes están orientadas hacia Java. Eso significa que la ROM de la tarjeta inteligente contiene un intérprete de la máquina virtual de java. Ejemplos de sistemas operativos: 2 Escuela de Educación Técnica Nº2 – Instalación y Configuración de Sistemas Operativos Unidad 1 Unix: fue desarrollado en los laboratorios Bell de American Telephone and Telegraph Corporation (AT &T). Este sistema operativo permite el funcionamiento multitarea, es decir, la ejecución de varios procesos compartiendo el uso del microprocesador, y multiusuario, o sea, varios usuarios compartiendo los recursos del computadora en forma simultánea. Linux: fue desarrollado en Finlandia por Linus Torvalds, quien en 1991 lanzó al mercado la primera versión. Este sistema operativo es un clon de Unix que cualquier persona puede usar sin tener que pagar por ello. Interface gráfica Si bien el sistema operativo MS-DOS adquirió una importancia fundamental en el mundo de la computación, su interface con el usuario, que es la encargada de mostrar la información en la pantalla y definir la forma en que ambos van a relacionarse, no era muy agradable, La relación con la máquina se establecía a través del conocido prompt: C:\> La comunicación entre el usuario y la computadora estaba orientada al uso de comandos e instrucciones que se escribían a continuación del prompt.. Surge luego el concepto de "desktop" o escritorio, que organiza la información de la computadora en una pantalla gráfica que representa un escritorio. Así se facilita el uso de la computadora, logrando una mejor capacidad de interacción con el humano. Las primeras interfaces gráficas aparecieron a mediados de los 80, en los computadoraes Apple de Macintosh. En el mundo de las PCs, surge la primera versión de Windows, pero sin mayor éxito debido a que se trataba de un simple entorno gráfico para facilitar el manejo del MS-DOS. Software de programación Incluye todas las herramientas a partir de las cuales se pueden desarrollar programas. El software de programación comprende a los lenguajes de programación y una serie de elementos que son necesarios para programar. Lenguajes de programación Se los puede clasificar en dos grandes grupos: los lenguajes de bajo nivel que incluyen el lenguaje de máquina y el lenguaje assembler, y los lenguajes de alto nivel. Lenguaje de máquina: en los comienzos de la computación a fines de la década del 40, cada programa estaba escrito en el lenguaje de los circuitos internos de lacomputadora. Se lo llamó lenguaje de máquina, y las instrucciones estaban expresadas en el sistema de numeración binario. Programar escribiendo instrucciones en binario era una tarea muy complicada reservada solo a los expertos, por tal motivo se hicieron esfuerzos para desarrollar lenguajes más "cercanos" al modo humano. Lenguaje assembler: permite expresar de forma simbólica tanto el código de operación de cada instrucción, como las direcciones de memoria donde se encuentran los datos. Lenguajes de alto nivel: para hacer la tarea de programación más sencilla y rápida, científicos e ingenieros han dedicado las últimas cuatro décadas a desarrollar lenguajes de programación más fáciles de utilizar. Los lenguajes de alto nivel se asemejan más al lenguaje humano, y surgen con la segunda generación de computadoras. La evolución de estos lenguajes ha distanciado a los programadores del funcionamiento interno de la computadora, ya que si bien resulta más sencilla la programación, quienes programan muchas veces no saben que es lo que está sucediendo dentro de la máquina. Estos lenguajes se componen de palabras en inglés, que hacen que en la computadora se ejecuten las instrucciones. Algunos lenguajes de programación de alto nivel son: 3 Escuela de Educación Técnica Nº2 – Instalación y Configuración de Sistemas Operativos Unidad 1 FORTRAN, ALGOL, COBOL, BASIC, PASCAL, C, VISUAL BASIC, JAVA, C++, PHP y otros. Programas de soporte El programador, además de los lenguajes de programación, necesita del apoyo de otros programas que cumplen con funciones determinadas. Algunos de esos programas son: Editor: para desarrollar algún programa primero hay que escribirlo. El editor de textos le permite al usuario escribir el programa corno así también corregirlo. Es similar a un procesador de textos, pero con muchas menos funciones. Programas traductores: la computadora sólo es capaz de entender el lenguaje de máquina, por lo tanto no podrá ejecutar directamente un programa escrito en un lenguaje de alto nivel. Es por ello que se requiere de programas traductores. Al programa escrito en lenguaje de alto nivel se lo conoce con el nombre de programa fuente, mientras que el programa traducido al lenguaje de máquina, se lo denomina programa objeto. Software de aplicación Son las herramientas que utilizan las personas para llevar a cabo sus tareas más cotidianas. Se los denomina también software del usuario, y comprende todos los programas desarrollados para fines específicos y los utilitarios. Programas a medida Se utilizan para dar respuesta a necesidades específicas de las personas. Por ejemplo algún programa que se desarrolle para llevar la contabilidad de un determinado negocio o empresa Utilitarios Son programas que ayudan al usuario en tareas específicas y están pensados para cumplir con ciertos objetivos. Los más comunes son por ejemplo procesador de textos, planilla de cálculos, base de datos. Además de los utilitarios antes mencionados, existen otros para cumplir con una gran variedad de aplicaciones. Algunos de ellos se utilizan para la obtención de dibujos y gráficos, otros para fines educativos, los hay para comunicar computadoras, etc. Paquetes integrados Se trata de un conjunto de utilitarios que dispone en un solo producto varias funciones, tales como procesador de textos, planilla de cálculos y base de datos. Ejemplo: MSOFFICE. ESTRUCTURA DE LOS SISTEMAS OPERATIVOS: Cualquier sistema operativo debe crear el marco adecuado para una eficaz comunicación entre el compilador y el usuario, prestando servicios tales como ejecución de programas, operaciones de entrada/salida, detección de errores, manipulación de archivos y protección de la computadora Al principio, los sistemas operativos eran un único programa redactado en lenguaje de máquina. En la actualidad se desarrollan en módulos, capas o niveles que cumplen con funciones específicas, facilitando su construcción y sus continuas modificaciones, a fin de lograr versiones mejoradas. Cada capa, desde el núcleo que es la más interna, hasta el shell que es la más externa, es un conjunto de programas que cumplen con una determinada tarea. El núcleo o kernel administra al microprocesador. Decide que proceso o tarea tendrá oportunidad de utilizar el microprocesador, llevando el control del estado de los mismos. Un proceso o tarea es un programa en ejecución 4 Escuela de Educación Técnica Nº2 – Instalación y Configuración de Sistemas Operativos Unidad 1 La capa de administración de memoria se encarga de la gestión de las memorias de la computadora. Lleva un registro de cuáles memorias se están utilizando y cuáles no. En el caso de las memorias en uso, también lleva un control del espacio libre La capa de administración de dispositivos de entrada/salida atiende los aspectos ligados a los periféricos. Se encarga de poder establecer la comunicación entre estos y el microprocesador o la memoria principal. La capa de administración de archivos es la encargada de crear, leer, modificar y borrar los archivos. Lleva el control de la posición y el estado de cada archivo. El Shell es el intérprete de comandos, y permite relacionar al sistema operativo con el usuario de la computadora Por su parte, el hardware realiza las funciones básicas para la ejecución de instrucciones. No forma parte del sistema operativo. Esquemáticamente: USUARIO SHELL ADMINISTRADOR DE ARCHIVOS ADMINISTRADOR DE DISPOSITIVOS DE E/S ADMINISTRADOR DE MEMORIA NÚCLEO Tipos de sistemas operativos En función de la cantidad de procesos o usuarios que puedan hacer uso de los recursos de la computadora, existen distintos tipos de sistemas operativos. Un sistema operativo monotarea o monoprogramación, es aquel que puede tener un solo proceso (programa) en la memoria, y al cual le asigna todos los recursos. Para poder ejecutar otro proceso debe finalizar el anterior. Algunos estudios demostraron que del 60 al 80% del tiempo que un proceso está en memoria, realiza operaciones de entrada/salida, y el resto hace uso del microprocesador. En un intento de aumentar la utilización del microprocesador logrando que siempre tenga instrucciones para ejecutar, surge el sistema operativo multitarea o multiprogramación. Un sistema multitarea o multiprogramación es aquel que permite que en el microprocesador se intercalen instrucciones de diferentes procesos con estos se logra 5 Escuela de Educación Técnica Nº2 – Instalación y Configuración de Sistemas Operativos Unidad 1 tener mas de un proceso en memoria, de tal manera que mientras un proceso realiza operaciones de entrada/salida, hay otro que hace uso del microprocesador. A su vez, un sistema operativo multiproceso, es aquel que utiliza más de un microprocesador simultáneamente, compartiendo la memoria central, las memorias auxiliares y los periféricos. Esto permite la verdadera simultaneidad en la ejecución de procesos SISTEMAS OPERATIVOS DE MICROSOFT Una de las personas que quedó impresionada con las posibilidades de ALTAIR fue William Gates (Bill para los amigos), quién por aquella época era estudiante de Harvard y había trabajado varios años con computadoras junto a Paul Allen. Los dos estaban seguros que los programadores necesitarían un lenguaje de programación sencillo, y la elección obvia era adaptar el BASIC a esta nueva máquina. El éxito obtenido introdujo a Gates y Allen en el negocio de la computación, y fundan Microsoft. En 1981, compran los derechos de un sistema operativo desarrollado en 1979 por Tim Paterson de Seattle Computer Products, y comienzan a comercializarlo con el nombre de MS-DOS (JVIicrosoft - Disk Operating System - Sistema operativo de disco). El éxito de MS-DOS, tiene su raíz en el hecho de que IBM lo eligiera como sistema operativo, cuando en 1978 lanza al mercado la PC- XT (eXtended Technology) con el microprocesador 8086 de Intel. IBM llamó a este sistema operativo PC-DOS, pero Microsoft se reservó el derecho de comercializarlo bajo el nombre de MS-DOS. Con la aparición de Windows 3.0 en 1990, comienza a difundirse el uso de las interfaces gráficas en la PC. Al principio se utilizó en la PC-AT (Advanced Technology) basada en el microprocesador 80286 de Intel y más tarde en el 80386, lográndose la "revolución Windows", que se consolida con la aparición de la versión 3 .1. En 1995 aparece Windows 95, que a diferencia de las anteriores versiones trae incorporado el MS-DOS. Ofrece un importante avance en materia de sistemas operativos, siendo más rápido, fácil de usar y totalmente compatible con aplicaciones desarrolladas para versiones anteriores de Windows y DOS. Incorpora una nueva interface gráfica y la posibilidad de utilizar nombres largos para los archivos. Dispone de una tecnología conocida como Plug and Play (enchufar y usar), que permite automatizar la instalación y configuración del hardware. Ofrece mejoras en lo que se refiere al acceso a archivos, correo electrónico y aplicaciones multimedia. Luego de Windows 95 han aparecido nuevas versiones tales como Windows 98, Windows 2000 y Windows XP. SISTEMA OPERATIVO UNÍX En 1965 los laboratorios Bell de AT &T y General Electrics desarrollan el sistema operativo Multics, con la idea de poder lograr un eficiente almacenamiento de datos y que fuera multiusuario, es decir, permitir a varios usuarios compartir los recursos de la computadora simultáneamente. El proyecto fracasa, ya que Multics no proveía los servicios para los que había sido creado. Sin embargo, Ken Thompson y Delmis Ritchie bosquejaron un sistema de archivos, que más tarde sería la primera versión del sistema operativo Unix. El sistema se prueba en las computadoras PDP-7 y PDP-11 de Digital Equipment Corporation, y debido al éxito Thompson propone escribirlo en un lenguaje de alto 6 Escuela de Educación Técnica Nº2 – Instalación y Configuración de Sistemas Operativos Unidad 1 nivel, ya que anteriormente había sido escrito en assembler. En 1971 se escribe en lenguaje B. Ritchie le hace algunas modificaciones al lenguaje B de Thompson, bautizándolo con el nombre de lenguaje C. En 1973, casi la totalidad del sistema operativo estaba escrito en lenguaje C. En la actualidad el 95% del sistema operativo está escrito en C y el 5% restante en assembler. Por aquella época, AT &T no podía comercializar productos de computación por un decreto del gobierno de los EE.UU., pero vendía el código fuente a bajo precio a universidades e institutos de investigación con propósitos educativos, quienes aportaron importantes mejoras. Todo esto dio lugar a muchas variantes del sistema original, a tal punto que en 1977 había 500 versiones distintas. En 1980, Unix empieza a comercializarse, y en 1983 AT &T lanza al mercado el Unix System V, con todas las características de un sistema comercial estándar, comprometiéndose a mantener la compatibilidad con las futuras versiones. Con esta versión, AT&T ofrece también la licencia, instalación, mantenimiento y actualizaciones del sistema. A partir de la versión 4.2 del System V, Unix incorpora una interface gráfica, que facilita el uso por parte de inexpertos en computación. Algunas de las características de este sistema operativo son: Multitarea: permite que varios procesos puedan ser ejecutados compartiendo el uso del microprocesador. Multiusuario: permite que varios usuarios compartan simultáneamente los recursos de la computadora. Portable: por estar escrito en lenguaje C, (y no en assembler, que es un lenguaje íntimamente dependiente del microprocesador) tiene la capacidad de poder funcionar en cualquier computadora. Distintos niveles de seguridad: tales como palabras claves (password) y permiso de acceso a archivos y directorios. Estructura A continuación se describe cada una de las capas que constituyen el sistema operativo UNÍX El núcleo realiza todas las funciones relacionadas con el hardware de lA computadora. Ocupa el 5% del sistema operativo y está desarrollado en assembler. Lleva a cabo todo lo relacionado con la administración de los procesos, programando la secuencia de tareas solicitadas por el usuario con el objeto de mantener un flujo ordenado de los trabajos que deben ser realizados por el microprocesador. El shell se encarga de interpretar los comandos. Existen distintas versiones de shell, que pueden ser seleccionadas por el usuario, Las aplicaciones son los programas para realizar tareas específicas, tales como procesadores de textos, planillas de cálculos, bases de datos, utilitarios de comunicaciones, manipuladores de archivos, etc. Con respecto al usuario, es aquel que ingresa al sistema, y está identificado por un nombre, En general el usuario no está asociado a un puesto físico de trabajo en especial, y si se daña su terminal, puede ir a otra y darse a conocer allí para poder seguir trabajando. Cada usuario posee un directorio de trabajo y cada vez que ingresa al 7 Escuela de Educación Técnica Nº2 – Instalación y Configuración de Sistemas Operativos Unidad 1 sistema, trabaja en su propio directorio. En cuanto a los archivos, cada uno de ellos tiene un dueño, que debe ser un usuario del sistema. Puede darse el caso de que un usuario le de permiso a otro para que ingrese a sus archivos. USUARIO APLICACIONES SHELL NÚCLEO HARDWARE SISTEMA OPERATIVO LINUX La historia de este sistema operativo está Íntimamente ligada a la de Unix, Surgió como un entretenimiento de Linus Torvalds, estudiante de la Universidad de Helsinki en Finlandia, quien esperaba crear una versión más completa de Unix, y proporcionar capacidades de multitarea para llsuarios de PCs. Linux puede obtenerse gratuitamente por Internet, lo que evita estar sometido a intereses comerciales de los proveedores y a tener que efectuar actualizaciones cada dos años y pagar elevadas sumas de dinero. Además está disponible su código fuente, lo que permite modificarlo de acuerdo a las necesidades de cada usuario. Las principales características de este sistema operativo son: Multitarea: realiza el procesamiento mediante el monitoreo, tanto de los procesos que están en espera de ejecución, como los que se están ejecutando. De esta manera, el sistema programa cada proceso para que tenga la misma oportunidad de acceder al microprocesador. El resultado es que las aplicaciones abiertas, parecen correr simultáneamente. Esta característica permite iniciar una transferencia de archivos, imprimir un documento, copiar un diskette y reproducir un CD al mismo tiempo. Multiusuario: tiene la capacidad de asignar tiempo del microprocesador a numerosas aplicaciones simultáneamente, lo que le permite brindar servicios a varios usuarios a la vez, y que más de una persona pueda ingresar al sistema y utilizarlo. Esta característica puede no resultar de interés en el hogar, pero en una fábrica o universidad, logra que varios usuarios tengan acceso de manera simultánea a los mismos recursos. Portable: puede funcionar en distintas plataformas. 8