Sistema Operativo UNIX

2,457 views

Published on

Exposición del Sistema Operativo Unix Archivo .PPT

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,457
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
144
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Sistema Operativo UNIX

  1. 1. SISTEMA OPERATIVO UNIX
  2. 2. INTRODUCCIÓN Unix fue creado en 1969 por Dennis Ritchie y Ken Thompson, el sistema operativo originario fue el sistema Multics, los laboratorios Bell fue la primera organización que utilizo el sistema unix, sus primeras versiones fueron desarrolladas en código maquina pero a partir de la tercera versión se realizo en C, creado para este motivo.
  3. 3. OBJETIVOS DE UNIX • Asegurar la portabilidad de los desarrollos, eliminando así la dependencia de los sistemas propietarios. • Permitir a fabricantes independientes de software la oferta de productos en este entorno, eso aumenta la oferta de productos y los precios son mas bajos. • Proteger la inversión realizada en aplicaciones.
  4. 4. CLASIFICACIÓN POR SU VISIÓN INTERNA • Estructura monolítica, por lo tanto el kernel contenido en este sistema fue programado de forma secuencial. • El kernel interactúa directamente con el hardware, y proporciona servicios a los programas de capas superiores, de forma que las peculiaridades del hardware permanecen ocultas.
  5. 5. POR LOS SERVICIOS QUE OFRECE Multiusuario Multitarea Portable SO de tiempo compartido
  6. 6. POR SU VISIÓN EXTERNA • UNIX es un sistema operativo de red • Tiene algunas características de sistema distribuido
  7. 7. ORGANIZACIÓN FÍSICA En UNIX los bloques de control de archivos tienen bloques de indexación directa, de uno, dos y hasta de tres niveles de indexación. Esto permite representar archivos muy grandes.
  8. 8. ORGANIZACIÓN FÍSICA • El control del espacio libre en el disco se mantiene mediante una lista ligada de bloques disponibles. Cada bloque contiene la dirección en disco del siguiente bloque en la cadena. El espacio restante contiene las direcciones de grupos de bloques del disco que se encuentren libres. De esta forma, con una operación de E/S, el sistema obtiene un conjunto de bloques libres y un apuntador para conseguir más.
  9. 9. ALGORITMOS DE PLANIFICACIÓN El módulo de planificación (scheduler) asigna el uso de la CPU a los procesos. Un proceso (A) se ejecutará hasta que voluntariamente ceda el uso de la CPU. En ese momento, el planificador seleccionará para ejecutar al proceso de mayor prioridad de planificación que se encuentre listo para ser ejecutado. El proceso (A) volverá a ser ejecutado cuando sea el proceso de mayor prioridad de planificación listo para ejecución.
  10. 10. ALGORITMOS DE PLANIFIACION • La clase de tiempo compartido es la clase por defecto para un proceso. En ella las prioridades de los procesos se cambian dinámicamente. Se utiliza un algoritmo de planificación de tipo round robin para los procesos con la misma prioridad. Además utiliza una tabla de parámetro de distribución para controlar las prioridades de los procesos y sus cuantums. El cuantum dado a un proceso depende de su prioridad de planificación. La tabla de parámetros define el cuantum para cada prioridad. Por defecto, cuanto menor es la prioridad de un proceso mayor es su cuantum. Esto puede parecer una contradicción pero su explicación es que puesto que los procesos de baja prioridad no se ejecutan muy a menudo es justo darles un cuantum mayor cuando son ejecutados.
  11. 11. SOLUCIÓN A PROBLEMAS DE CONCURRENCIA UNIX es esencialmente un sistema de tiempo compartido, lo que significa que permite a varios procesos ejecutarse concurrentemente. En un sistema con un único procesador, la concurrencia no es más que una ilusión, puesto que en realidad solamente se puede estar ejecutando un único proceso en un instante de tiempo dado. Mecanismos de Concurrencia en UNIX  Pipes (encaminadores)  Mensajes  Memoria compartida  Semáforos  Señales (signals)
  12. 12. MENSAJES • Conjunto de bytes con un tipo asociado, proporciona las llamadas al sistema msgsnd y msgrcv. • Usa una cola de mensajes por proceso, y funciona como un buzón. • El emisor especifica el tipo de mensaje que envía, este puede ser un criterio de selección por el receptor. El receptor puede recuperar el mensaje en orden o por su tipo. • El proceso se bloquea cuando trata de enviar un mensaje a una cola llena. • Un proceso también se bloquea si se intenta leer un mensaje de una cola vacía. • Si un proceso intenta leer un mensaje de un cierto tipo y no es posible debido a que no está presente ningún mensaje de este tipo, el proceso no se bloquea.
  13. 13. SEMÁFOROS • Las llamadas al sistema de semáforos en UNIX System V son una generalización de las funciones semWait y semSignal, se pueden realizar varias operaciones simultáneamente y las operaciones de incremento y decremento pueden corresponder con valores mayores. • El núcleo realiza todas las operaciones solicitadas atómicamente; ningún otro proceso puede acceder al semáforo hasta que se hayan completado todas las operaciones.
  14. 14. SEMÁFOROS El semáforo consta de los siguientes elementos: • El valor actual del semáforo • El identificador del último proceso que opero con el semáforo • El número de procesos en espera de que el valor del semáforo sea mayor que su valor actual • El número de procesos en espera de que el valor del semáforo sea cero • Asociado con el semáforo están las colas de los procesos bloqueados en ese semáforo.
  15. 15. SEMÁFOROS Los semáforos se crean realmente como conjuntos, constando cada conjunto de semáforos de uno o más semáforos. Hay una llamada al sistema semct1 que permite que todos los valores de los semáforos del conjunto se fijen al mismo tiempo. Además hay una llamada al sistema sem_op que toma como argumento una lista de operaciones de semáforo, cada una definida sobre uno de los semáforos de un conjunto. Cuando se realiza esta llamada, el núcleo lleva a cabo sucesivamente las operaciones indicadas. Por cada operación, la función real se especifica mediante el valor sem_op, existiendo las siguientes posibilidades:
  16. 16. SEMÁFOROS • sem_op > 0 • Incrementa el valor del semáforo y despierta a todos los procesos en espera de que el valor del semáforo se incremente. • sem_op == 0 • Kernel verifica el valor del semáforo • Semáforo == 0 • El núcleo continua con las otras operaciones. • Semáforo != 0 • El núcleo incrementa el numero de procesos en espera de que el semáforo tenga el valor de 0 y suspende al proceso para que espere por el evento de que el valor del semáforo se haga igual a 0.
  17. 17. SEMÁFOROS • Si sem_op <= -1 y sem_op valor absoluto < semáforo • El núcleo asigna (un numero negativo) al valor del semáforo. • Si el resultado es 0, el núcleo despierta a todos los procesos en espera de que el semáforo tome ese valor. • Si sem_op <=-1 y sem_op valor absoluto > numero de semáforo • El núcleo suspende al proceso en espera del evento del valor del semáforo para que se incremente. • Esta generalización de los semáforos proporciona una considerable flexibilidad para realizar la sincronización y coordinación de procesos.
  18. 18. ADMINISTRACIÓN DE MEMORIA • Debido a que unix pretende ser independiente de la máquina, su esquema de gestión de memoria variara de un sistema a otro. En las primeras versiones, unix utilizaba particionamiento variable sin ningún esquema de memoria virtual. Las implantaciones actuales de unix utilizan la memoria virtual paginada. • Para la memoria virtual paginada, unix utiliza varias estructuras de datos que, con pequeñas diferencias, son independientes de la maquina: • Tabla de páginas: Habitualmente, habrá una tabla de páginas por proceso, con una entrada por cada página de memoria virtual de dicho proceso. • Descriptor de bloques de disco: Asociado a cada página del proceso hay una entrada en esta tabla que indica la copia en disco de la página virtual. • Tabla de datos de los marcos de página: Describe cada marco de memoria real y se indexa por medio de un numero marco. El algoritmo de reemplazo usa esta tabla. • Tabla de utilización de swap: Existe una tabla de uso de swap por cada dispositivo de intercambio, con una entrada por cada página de dicho dispositivo.
  19. 19. PRINCIPIOS DE SW DE E/S Unix divide el sistema de entrada y salida en dos sistemas: • El sistema de “Entrada y salida por bloques” • El sistema “Entrada y salida por caracteres” • Cada dispositivo físico se identifica mediante un numero de dispositivo menor, un numero de dispositivos mayor y una clase, ya sea de bloque o de caracteres. • Cada clase tiene una tabla de configuración que contiene un arreglo de puntos de entrada a los controladores de dispositivos. Esta tabla es la única conexión entre el código del sistema y los controladores de dispositivos; además, es una característica importante de Unix, ya que permite a los programadores del sistema crear con rapidez nuevos controladores de dispositivos para aceptar diferentes sistemas de configuración.
  20. 20. Clase Carácter Bloque Numero mayor de dispositivo Numero mayor de dispositivo Líneas de comunicación Cinta de papel Numero menor de dispositivo Numero menor de dispositivo Numero menor de dispositivo PT1 LP1 CL1 CL2 CL3 PT2 Impresora de líneas LP2 Unidad de disco Unidad de cinta magnética Numero menor de dispositivo Numero menor de dispositivo DD1 DD2 DD3 DD4 DD5 TPD1 TPD2
  21. 21. PRINCIPIOS DE SW DE E/S • El número mayor de dispositivo se utiliza como un índice para el arreglo, a fin de tener acceso al código apropiado de cierto controlador de dispositivo. • El número menor de dispositivo se pasa al controlador de dispositivo como argumento y sirve para tener acceso a uno de varios dispositivos físicos idénticos. • Según indica el nombre, el sistema por bloques se utiliza para dispositivos que se pueden tratar como una secuencia de bloques de 512 bytes. Esto permite al administrador de los dispositivos utilizar la técnica del buffer para reducir el tráfico de entrada y salida. Unix contiene de 10 a 70 buffers para entradas y salidas, y la información relacionada con ellos se conserva en una lista.
  22. 22. SEGURIDAD Unix no se diseñó para ser seguro [Ritchie, 1986], a finales de los 80 se convirtió en el primer sistema operativo en alcanzar niveles de seguridad casi militares [Hecht, 1988] [Serlin, 1991]. Casi todas las actividades realizadas en un sistema Unix son susceptibles de ser, en mayor o menor medida, monitorizadas. Problema [Instalación por defecto de Unix] • Cuentas sin passwords o passwords por defecto • Servicios abiertos • Sistemas de ficheros susceptibles de ser compartidos.
  23. 23. SEGURIDAD • Protección de memoria • Control de acceso a ficheros • Protección del uso de los recursos del sistema. • El acceso al sistema se realiza a través de una cuenta. • Nombre de usuario • Contraseña
  24. 24. FAUNA INFORMÁTICA EN LINUX • Virus: Fragmento de código que se inserta en programa ejecutable, cuando el programa es ejecutado, el se ejecuta también. Los virus se almacenan en memoria , que infectan cualquier fichero que se ejecute en el sistema. • Gusanos: Programas que se reproducen copiándose de un ordenador a otro a través de la red
  25. 25. PUERTAS TRASERAS Mecanismos implantados en los programas por los desarrolladores, que permiten a éstos realizar acciones determinadas sin tener que pasar por determinadas secciones del programa, como procesos de autenticación, mecanismos de seguridad, etc. Se suelen utilizar preferentemente en tareas de depuración. Un caso que ilustra esto último es el agujero de seguridad que suponía la opción de depuración del programa sendmail, del cual se aprovechó el gusano de Internet.
  26. 26. PUERTAS TRASERAS • Muchas veces la existencia de puertas traseras está provocada por el despiste de los desarrolladores, que olvidan eliminarlas de sus programas, aunque otras veces las dejan ahí intencionadamente para conseguir de una manera sencilla el acceso al sistema mediante la ejecución de una determinada secuencia de eventos, una secuencia de pulsaciones de teclado o un nombre de usuario secreto. De igual manera, los piratas, una vez que han conseguido acceso a un sistema, suelen crear puertas traseras que les permitan volver a entrar en el sistema, por ejemplo añadiendo una entrada en el fichero /etc/passwd.
  27. 27. ¿CÓMO ENCUENTRA UN PIRATA LAS CONTRASEÑAS? Las contraseñas se almacenadas en el fichero /etc/passwd. Pero estas contraseñas no se encuentran almacenadas tal cual, sino que se utilizan para cifrar un bloque de bits mediante una función llamada crypt (), cuyo resultado se almacena en dicho fichero. Si un pirata consigue hacerse con una copia del fichero /etc/passwd no tendrá conoci-miento de las contraseñas de los usuarios del sistema, pero puede utilizar diversas técnicas para adivinarlas.
  28. 28. ¿CÓMO ENCUENTRA UN PIRATA LAS CONTRASEÑAS? Ataque con diccionario, que consiste en cifrar todas las palabras de un diccionario y ver si el resultado obtenido coincide con la clave cifrada de algún usuario. Se utiliza esta técnica porque no es posible obtener la contraseña de un usuario a partir de la cadena cifrada que se almacena en el fichero /etc/passwd.
  29. 29. ¿CÓMO ENCUENTRA UN PIRATA LAS CONTRASEÑAS? Utiliza un adivinador de contraseñas. Lo normal en un principio es que el pirata ponga en marcha el adivinador de contraseñas con un diccionario formado por una serie de palabras que muchos usuarios utilizan como contraseña, como, por ejemplo, los nombres de entrada de todos usuarios del sistema, palabras de uso común, marcas, nombres de persona, etc., así como variaciones de todas ellas.
  30. 30. EL FICHERO /ETC/PASSWD El fichero /etc/passwd se utiliza para identificar a los usuarios que pertenecen al sistema. Este fichero está estructurado de forma que cada línea representa a un único usuario, y cada una de estas líneas se encuentra organizada en siete campos separados por ‘:’ . 1. 2. 3. 4. 5. 6. 7. Nombre de usuario o login Contraseña cifrada Identificador de usuario o UID Identificador de grupo o GID Información sobre el usuario Directorio de entrada o home Shell login:password:UID:GID:GECOS:home:shell
  31. 31. EL SUPERUSUARIO El más importante de todos los usuarios del sistema es, por supuesto, root. El usuario root se caracteriza porque tiene como UID el número 0, al cual el sistema trata de manera diferente. El superusuario tiene un control casi completo sobre todo el sistema. Puede saltarse todos los mecanismos de seguridad del sistema y acceder a todos sus recursos. Por estos motivos, el hecho de la existencia de un superusuario supone uno de los mayores problemas de seguridad de los sistemas UNIX.
  32. 32. PRECAUCIONES A TENER EN CUENTA AL ACCEDER AL SISTEMA COMO ROOT La misión principal del root es evadir, en determinadas ocasiones, las protecciones que poseen los sistemas UNIX. Su uso debería restringirse a ocasiones especiales, muy puntuales y en las que su uso sea la única alternativa posible. El uso de buenas contraseñas, comprobar los permisos de los ficheros e implantar mecanismos que permitan detectar entradas no autorizadas en las cuentas de los usuarios, son excelentes medidas de seguridad que cualquier usuario podría utilizar para asegurar aún más su cuenta.
  33. 33. PRECAUCIONES A TENER EN CUENTA AL ACCEDER AL SISTEMA COMO ROOT El superusuario es el usuario más importante del sistema, y por eso es siempre el principal objetivo de cualquier pirata informático. El superusuario, además de todas las medidas de seguridad que pueda tomar un usuario normal, debería tomar otras muchas, como acceder al sistema sólo desde un terminal seguro y sólo en aquellos casos en los que sea estrictamente necesario.

×