sistema operativo unix

33
SISTEMA OPERATIVO UNIX

Upload: nekszer-lopez-espinoza

Post on 13-Jun-2015

1.058 views

Category:

Technology


3 download

DESCRIPTION

Exposición del Sistema Operativo Unix Archivo .PPT

TRANSCRIPT

Page 1: Sistema Operativo UNIX

SISTEMA OPERATIVO UNIX

Page 2: Sistema Operativo UNIX

INTRODUCCIÓNUnix 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.

Page 3: Sistema Operativo UNIX

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.

Page 4: Sistema Operativo UNIX

CLASIFICACIÓNPOR 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.

Page 5: Sistema Operativo UNIX

POR LOS SERVICIOS QUE OFRECE

Multitarea

Multiusuario

Portable SO de tiempo compartido

Page 6: Sistema Operativo UNIX

POR SU VISIÓN EXTERNA

• UNIX es un sistema operativo de red • Tiene algunas características de sistema distribuido

Page 7: Sistema Operativo UNIX

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.

Page 8: Sistema Operativo UNIX

• 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.

ORGANIZACIÓN FÍSICA

Page 9: Sistema Operativo UNIX

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.

Page 10: Sistema Operativo UNIX

• 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.

ALGORITMOS DE PLANIFIACION

Page 11: Sistema Operativo UNIX

SOLUCIÓN A PROBLEMAS DE CONCURRENCIAUNIX 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)

Page 12: Sistema Operativo UNIX

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.

Page 13: Sistema Operativo UNIX

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.

Page 14: Sistema Operativo UNIX

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.

Page 15: Sistema Operativo UNIX

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:

SEMÁFOROS

Page 16: Sistema Operativo UNIX

• 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.

SEMÁFOROS

Page 17: Sistema Operativo UNIX

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.

Page 18: Sistema Operativo UNIX

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.

Page 19: Sistema Operativo UNIX

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.

Page 20: Sistema Operativo UNIX

Clase

Numero mayor de dispositivo

Numero mayor de dispositivo

Carácter Bloque

Cinta de papel

Impresora de líneas

Líneas de comunicación

Unidad de disco

Unidad de cinta magnética

Numero menor de dispositivo

Numero menor de dispositivo

Numero menor de dispositivo

Numero menor de dispositivo

Numero menor de dispositivo

CL1 CL2 CL3 PT1 PT2 LP1 LP2 DD1 DD2 DD3 DD4 DD5 TPD1 TPD2

Page 21: Sistema Operativo UNIX

• 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.

PRINCIPIOS DE SW DE E/S

Page 22: Sistema Operativo UNIX

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.

Page 23: Sistema Operativo UNIX

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

Page 24: Sistema Operativo UNIX

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

Page 25: Sistema Operativo UNIX

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.

Page 26: Sistema Operativo UNIX

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.

Page 27: Sistema Operativo UNIX

¿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.

Page 28: Sistema Operativo UNIX

¿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.

Page 29: Sistema Operativo UNIX

¿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.

Page 30: Sistema Operativo UNIX

EL FICHERO /ETC/PASSWDEl 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. Nombre de usuario o login

2. Contraseña cifrada

3. Identificador de usuario o UID

4. Identificador de grupo o GID

5. Información sobre el usuario

6. Directorio de entrada o home

7. Shell

login:password:UID:GID:GECOS:home:shell

Page 31: Sistema Operativo UNIX

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.

Page 32: Sistema Operativo UNIX

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.

Page 33: Sistema Operativo UNIX

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.