La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

SISTEMAS OPERATIVOS UNIX – LINUX

Presentaciones similares


Presentación del tema: "SISTEMAS OPERATIVOS UNIX – LINUX"— Transcripción de la presentación:

1 SISTEMAS OPERATIVOS UNIX – LINUX
CASOS DE ESTUDIO SISTEMAS OPERATIVOS UNIX – LINUX

2 UNIX Hasta aquí se han revisado de manera general, el funcionamiento de los SO, principios, abstracciones, algoritmos,etc. A continuación revisemos algunos SO para ver como se aplican estos principios. UNIX: Se ejecuta en variedad de computadoras mas amplio que cualquier otro SO. (Laptos, servidores, estaciones hasta supercomputadoras). A pesar de su edad, se usa mucho en la actualidad. Ilustra muchos principios de diseño importantes y éstos han sido copiados por otros SO. Existen muchas versiones y clones de UNIX que incluyen a AIX, LINUX, MINIX,BSD, HP-UX, 1BSD, SCO UNIX, OSF/1, SYSTEM V, SOLARIS, XENIX, y éstos desarrollaron sus versiones. Sin embargo los principios fundamentales y las llamadas al sistema son casi los mismos en todos, así como también las estrategias de implementación, los algoritmos y estructuras de datos generales.

3 EVOLUCION DE UNIX Comenzó como un proyecto personal de un joven investigador y ahora representa en un millonaria industria. En la década del 1940 y 1950 las computadoras eran personales, enormes y predominaba el proceso en lotes. Por esta insatisfacción apareció el diseño de las máquinas con tiempo compartido, mismo que duró un tiempo. Luego las cías. BELL y GE diseñaron el SO MULTICS (Servicio de información y Cómputo Multiplexado). Posteriormente Ken Thompson, investigador de BELL, diseñó y escribió un MULTICS en una minicomputadora PDP-7, por lo que lo bautizaron con el nombre de UNICS (Servicio de Información y Cómputo Uniplexado). Luego cambió la ortografía a UNIX.

4 EVOLUCIÓN DE UNIX 2. Iniciaron a desarrollar el mismo código UNIX para versiones superiores de computadoras, ej. PDP-11/20, PDP-11/45 y 70. Estas 2 últimas tenían 256kb y 2mb de memoria física y tenían hardware de protección de memoria. El código del SO fue escrito ya en lenguaje de alto nivel diseñado por Thompson, llamado B. (viene de BCPL, forma simplificada de CPL, similar a PL/1 que nunca funcionó). Debido a ello, Ritchie, el compañero de Thompson, diseñó un sucesor de B, llamado C. Escribió un compilador excelente. Luego de ello, ambos re-escribieron UNIX en C. BELL y AT&T cedieron UNIX bajo licencia a las universidades. El código fuente completo fue entregado, de tal forma que pudo ser estudiado y modificado. El código fuente comprendía 8200 líneas de C y 900 líneas de código ensamblador. La versión 7 (portátil) podía ejecutarse en modelos diferentes de computadoras (pdp-11 e Interdata 8/32). Década de 1980, Unix se usaba ampliamente, varias cias. Adquirieron la licencia del código fuente para crear su propia versión de UNIX. Una de ellas la naciente empresa MICROSOFT, que vendió la versión 7 con el nombre de XENIX.

5 EVOLUCIÓN DE UNIX 3. UNIX PORTÁTIL
Escrito en C, fue más fácil trasladarlo de una máquina a otra, que al principio; ya que esto involucraba escribir el compilador de acuerdo al modelo de máquina, luego escribir los controladores de dispositivos, los manejadores de interrupciones, y rutinas de administración de memoria. En base a lo anterior, Bell Labs (Johnson) desarrollo un compilador portátil de C, a fin de que pueda instalarse en cualquier máquina de similares características a la PDP-11. Mientras tanto, las versiones siguieron incrementándose en UNIX y cambiando de dueño..

6 EVOLUCIÓN DE UNIX 4. UNIX BERKELEY
Surgieron en la versión 6 y 7 efectuadas por la Univ. De California en Berkeley. Las mejoras significativas fueron el uso de memoria virtual, y paginación. Otro cambio fue que permitió que los nombres de archivo tuvieran más d 14 caracteres. Se modificó la implementación del sistema de archivos, haciéndola mucho más rápida. Se introdujo la conectividad de redes, haciendo que el protocolo de red tcp/ip se convirtiera en estándar. Añadió numeroso programas utilitarios a UNIX, los cuales incluían a un nuevo editor (vi), un nuevo shell (csh), compiladores de Pascal y Lisp y algunos más. Sun Microsystem, DEC y otros fabricantes, basaran sus versiones sobre ésta.

7 EVOLUCIÓN DE UNIX 5. UNIX ESTANDAR
Ante muchas versiones de Unix, fue necesario su estandarización, por ello el primer intento se inició bajo el auspicio de la IEEE Standars Board y en la cual participaron muchas universidades, personas de la industria y el gobierno. El nombre colectivo del proyecto fue POSIX. Pos de Sistema operativo portátil y el IX para que sonara parecido a UNIX. El resultado fue un estándar conocido como que define un conjunto de procedimientos de biblioteca que debe proporcionar todo sistema UNIX que cumpla con la norma. Dicho en otras palabras, la idea en que se basa POSIX es que si un productor de software escribe un programa que sólo usa los procedimientos definidos por sabe que su programa se ejecutará en todos los sistemas UNIX que cumplen con la norma.

8 MINIX Fue un de los primeros sistemas tipo UNIX basado en un diseño de microkernel. La idea es proporcionar un mínimo de funcionalidad en el kernel para hacerlo confiable y eficiente. La administración de memoria y el sistema de archivos se manejan como proceso de usuarios. El Kernel se ocupa de la transferencia de mensajes entre procesos y nada más. Los microkernels son fáciles de entender y mantener, gracias a su estructura modular. Como desventaja es que un poco mas lento debido a los cambios adicionales entre modo de usuario y modo kernel. Minix se mantiene con fines educativos, especialmente.

9 LINUX Luego de minix, muchas personas exigieron mas y mejores funciones, a lo cual el autor decía que no casi siempre. En consecuencia, fue que un estudiante finlandés Linus Torvalds, decidió escribir otro clon de UNIX, llamado LINUX, con características que MINIX no tenía. Mucho mas completo. La primera versión salió en Fue un diseño monolítico con todo el SO en el kernel. Aparecieron mas versiones evolucionando el SO. Una diferencia evidente con respecto a UNIX es que LINUX aprovecha muchos recursos especiales del compilado. Aparecieron las versiones 1.0, 2.0 en los cuales se evidenciaba que un gran surtido de software UNIX estándar se había trasladado a LINUX. Más de 1000 programas utilitarios, X Windows y abundante software para redes. Característica preponderante: Software libre. Linux viene con licencia ideada por Stallman, fundador de la Free software foundation.

10 LINUX A pesar de que Linux es gratis, la GPL (Licencia pública de GNU) es más larga que la licencia de Microsoft, ya que especifica lo que el usuario puede y no puede hacer con el código. Los usuarios pueden usar, copiar, modificar y redistribuir con libertad el código fuente y código binario. Principal restricción: Ninguna obra derivada del kernel de Linux puede venderse o redistribuirse únicamente en forma binaria; debe incluirse el código fuente con el producto, o bien, proporcionarse a quien lo solicite.

11 GENERALIDADES DE UNIX METAS DE UNIX
Sistema interactivo diseñado para manejar multiples proceso y usuarios al mismo tiempo. Diseñado por y para programadores (entorno avanzado de proyecto de software). Orientado a programadores experimentados. Incluya la característica “principio de mínima sorpresa”. Ej. Ls A* y rm A* Incluya potencia y flexibilidad. Sistema debe tener un número reducido de elementos básicos que puedan combinarse en una infinita variedad de formas para adecuarlos a la aplicación. Evitar la redundancia innecesaria. Cp en vez de copy. Los programadores experimentados prefieren un software que les sirva no una “niñera”.

12 Hardware (cpu, memoria,etc)
GENERALIDADES DE UNIX INTERFACES CON UNIX Puede verse como pirámide. EN la base está el hardware (CPU, memoria discos y otros dispositivos). El SO UNIX se ejecuta sobre el hardware. Su función es controlarlo y proporcionar a todos los programas una interfaz de llamadas al sistema. Las llamadas permiten a los prog. De usuario crear y administras procesos, archivos y otros recursos. Los programas emiten llamadas al sistema colocando argumentos en registros y emite interrupciones para cambiar de modo usuario a modo kernel. usuarios Prog. utilitarios Biblioteca estandar SO UNIX adm. de procesos Hardware (cpu, memoria,etc)

13 Hardware (cpu, memoria,etc)
GENERALIDADES DE UNIX INTERFACES CON UNIX Los procedimientos se escriben en lenguaje ensamblador. Para ejecutar la llamada al sistema read, un prog. En C puede invocar el procedimieto de biblioteca read. (posix indica los procedimientos). Además del SO y de la biblioteca de llamadas al sistema, todas las versiones de UNIX ofrecen un gran número de programas estándar. (interprete de comandos (shell), compiladores, editores, programas para procesar texto y para manipular archivos.) Se puede identificar 3 interfaces distintas con UNIX, la verdadera interfaz de llamadas al sistema, la interfaz de biblioteca y la interfaz constituida por el conjunto de programas utilitarios estándar. usuarios Prog. utilitarios Biblioteca estándar SO UNIX adm. de procesos Hardware (cpu, memoria,etc)

14 ESTRUCTURA DEL KERNEL GRAFICA REALIZADA EN CLASE

15 SHELL DE UNIX Muchos sistemas Unix tienen una interfaz gráfica de usuaria el tipo que se popularizó gracias a Macintosh. Algunos prefieren la interfaz de la línea de comados, (shell). Su uso es mas rapido, potente y puede extenderse con facilidad. Aunque UNIX maneja un entorno gráfico (x windows), muchos programadores crean simplemente múltiples ventanas de consola y hacen como si tuvieran abierta terminales (cada una ejecuta un shell). Cuando el shell se ejecuta, se inicializa y muestra en la pantalla un indicador de comandos (prompt) . Suele ser un signo de porcentaje o de dólar. Cuando el usuario tipea un comando el shell extrae la primera palabra de la fila, supone que es el nombre de un programa a ejecutar, lo busca y si lo encuentra lo ejecuta. (Lee comandos y ejecuta el programa). Ej. Cp origen destino

16 SHELL DE UNIX Un programa como el Shell no tiene que abrir la terminal para leer o escribir en ella. Mas bien cuando él o cualquier otro programa inicia, de manera automática tiene acceso a un archivo llamado “entrada estándar”, “salida estándar” y otro “error estándar”. La entrada se toma del teclado, las escrituras en las salidas o error se envían a la pantalla. Puede colocarse una lista de comandos de Shell en un archivo y luego iniciar un Shell que utilice ese archivo como entrada estándar. El segundo Shell tan sólo los procesará en orden. Los archivos que contienen comandos de un Shell se llaman scripts de Shell. Los scripts asignan valores a variables de Shell y leerlos después, también puede tener parámetros y usar construcciones ej. If, for, while y case. Es un programa escrito en lenguaje de Shell.

17 PROGRAMAS UTILITARIOS DE UNIX
La interfaz de usuario de UNIX, no sólo consiste en el SHELL, sino que también lo constituyen los utilitarios estándar. Éstos se dividen en 6 categorías: Comandos para manipular archivos y directorios Filtros Herramientas para crear programas como editores y compiladores Procesamiento de texto Administración del sistema Varios. El estándar POSIX especifica la sintaxis y semántica de los programas de las 3 primeras categorías. La idea de estandarizarlos es que cualquiera pueda escribir scripts de Shell que utilicen estos programas y funcionen en todos los sistemas UNIX.

18 PROGRAMAS UTILITARIOS DE UNIX
Entre los programas utilitarios que exige POSIX están: PROGRAMA USO Cat Concatenar varios archivos en la salida estándard Chmod Cambiar modo de protección de archivo Cp Copiar uno o más archivos Cut Cortar columnas de texto de un archivo Grep Buscar un patrón en un archivo Head Extraer las primeras líneas de un archivo Ls Producir listado de un directorio Make Compilar archivos para construir un binario Mkdir Crear un directorio Paste Pegar columnas de texto en un archivo Pr Formatear un archivo para imprimirlo Rm Eliminar un directorio Sort Ordenar en forma alfabética archivos de líneas Tail Extraer las últimas líneas de un archivo Tr Traducir de un conjunto de caracteres a otro

19 PROCESOS EN UNIX Cada proceso ejecuta un solo programa y en un principio tiene un solo subproceso de control. (contador de programa que indica cual es la sigte. Instrucción a ejecutar). Cuando se ejecutan procesos en segundo plano, éstos se llaman DEMONIOS (daemons). Éstos se inician automáticamente cuando arranca el sistema. ***Se dice “demonio” por su connotación de espíritu maligno que trabaja por su cuenta. Un demonio representativo es cron, que se activa cada minuto para ver si tiene trabajo. Si lo tiene lo hace, de lo contrario espera hasta la siguiente verificación. El cron es necesario en UNIX porque lo usa para calendarizar actividades a realizar, sean periódicas o no. Otros demonios son utilizados para el correo electrónico, administración de colas de impresoras, verificación de páginas libres en la memoria.

20 PROCESOS UNIX La creación de procesos en UNIX es sencilla.
Llama al sistema fork (bifurcación) el que crea una copia exacta del proceso original. El proceso que se bifurcó se llama p. padre; y el nuevo p.hijo. Ambos tienen su propia imagen de memoria privada. Ambos comparten los archivos que estén abiertos. Los cambios efectuados al archivo por cualquiera de ellos serán visibles para el otro. Las imágenes de memoria, variables, registros serán idénticos, pero se diferenciarán por la asignación de un valor que el sistema FORK le dio al p. padre un valor diferente de 0 y al p. hijo le devuelve un A este valor se le llama el PID (Process IDentifier). El padre recibe el PID del hijo que termina. Los procesos en UNIX pueden comunicarse a través de mensajes. Se establece un canal para que se puedan comunicar los procesos. Se llaman canalizaciones. También pueden comunicarse a través de interrupciones de software. Un proceso puede enviar una señal a otro proceso.

21 PROCESOS UNIX Un proceso puede enviar una señal a otro proceso. Los procesos pueden indicarle al sistema lo que debe hacer cuando llegue una señal. Las opciones son ignorarla, atraparla o dejar que la señal elimine al proceso (es lo predeterminado por casi todas las señales). Cuando el proceso toma la señal, debe especificar un procedimiento de manejo de señales. Un proceso sólo puede enviar señales a todos los miembros de su grupo de procesos con una sola llamada al sistema. Las llamadas al sistema también son utilizadas para la administración de procesos y subprocesos en UNIX.

22 IMPLEMENTACIÓN DE PROCESOS EN UNIX
Un proceso en UNIX es como un ICEBERG (Hipotético). Todo proceso tiene una parte de usuario que ejecuta el programa de usuario. Pero cuando uno de sus subprocesos efectúa una llamada al sistema, pasa al modo de kernel y comienza a ejecutarse en un contexto de kernel, con un mapa de memoria distinto y pleno acceso a todos los recursos de la máquina. El kernel mantiene 2 estructuras de datos claves relacionadas con los procesos, la Tabla de Procesos y la Estructura de Usuario. La primera reside en todo momento y contiene información necesaria para todos los procesos, incluso los que no están en la memoria actual. La segunda, se intercambia a página o disco cuando el proceso correspondiente no está en la memoria, para no desperdiciar memoria que no se necesita. La información de la tabla de procesos puede agruparse en las sgtes. Categorías:

23 IMPLEMENTACIÓN DE PROCESOS EN UNIX
Parámetros de calendarización: Prioridad del proceso, tiempo de cpu consumido recientemente, tiempo que estuvo dormido recientemente. Juntos estos datos sirven para determinar cuál procesos se ejecutará a continuación. Imagen de memoria: Apuntadores a los segmentos de texto, datos y pila o, si se usa paginación a sus tablas de páginas. Señales: Máscaras que indican cuáles señales se ignoran, cuáles se capturan, cuáles están bloqueadas en forma temporal, y cuáles se están entregando. Datos diversos: Estado actual del proceso, suceso que se está esperando, tiempo hasta que “suene” el reloj. PID del proceso padre e identificación de usuario y grupo.

24 IMPLEMENTACIÓN DE PROCESOS EN UNIX
La información contenida en la estructura de usuario incluye: 1. Registros de máquina 2. Estado de llamada al sistema 3. Tabla de descriptores de archivo 4. Contabilidad 5. Pila de Kernel

25 IMPLEMENTACIÓN DE PROCESOS EN UNIX
Registros de máquina: Cuando la interrupción de sistema causa un salto al kernel, se guardan aquí los registros de máquina. Estado de llamada al sistema: Es la información acerca de la llamada al sistema actual, incluido los parámetros y resultados. Tabla de descriptores de archivo: Cuando se emite una llamada al sistema en la que interviene un descriptor de archivo, este último se usa como índice para consultar esta tabla y localizar la estructura de datos en memoria (nodo-i) correspondiente a este archivo. Contabilidad: Apuntador a una tabla que lleva el control de usuario y el tiempo de CPU consumido por el proceso. Pila de Kernel: Una pila fija, utilizada por la parte de kernel del proceso.

26 IMPLEMENTACIÓN DE PROCESOS EN UNIX
CREACIÓN DE PROCESOS Cuando un usuario digita un comando ej. ls, el Shell crea un nuevo proceso bifurcando un clon de sí mismo. Luego el nuevo Shell invoca al programa exec para sobrescribir su memoria con el contenido del archivo ejecutable ls.

27 IMPLEMENTACIÓN DE PROCESOS EN UNIX
MECANISMO PARA CREACIÓN DE UNPROCESO Se crea una nueva celda en la tabla de procesos y una nueva área de usuario para el proceso hijo, y se llenan en buena parte con los datos del padre. Se asigna un PID al hijo, se prepara un mapa de memoria y se le otorga acceso compartido a los archivos del proceso padre. Luego se preparan sus registros y está LISTO para ejecutarse. PID = 501 PID = 748 PID = 748 SH SH ls Nuevo proceso Mismo proceso 1. Llamada fork 3. Llamada exec Código de fork Código de exec 4. Ls se superpone a sh 2. Nuevo sh creado

28 IMPLEMENTACIÓN DE PROCESOS EN UNIX
MECANISMO PARA CREACIÓN DE UNPROCESO Código de fork: Asignar entrada del P. Hijo en la tabla de procesos. Llenar entrada del p. hijo con la del p. padre. Asignar pila y área de usuario del hijo Llenar área de usuario del hijo con la del padre . Asignar PID al hijo Preparar p. hijo para compartir texto del padre Copia tablas de páginas para datos y pila. Prepararse para compartir archivos abiertos Copiar registros del padre en el hijo.

29 IMPLEMENTACIÓN DE PROCESOS EN UNIX
MECANISMO PARA CREACIÓN DE UNPROCESO Código de exec: Encontrar el programa ejecutable Verificar el permiso de ejecución Leer y verificar el encabezado Copiar argumentos y entorno en kernel Liberar el espacio de direcciones anterior Asignar nuevo espacio de direcciones Copiar argumentos y entorno en pila Asignar valores iniciales a registros.

30 ADMINISTRACIÓN DE MEMORIA EN UNIX
Todo proceso UNIX tiene un espacio de direcciones que consta de 3 segmentos: texto, datos y pila. El segmento texto contiene las instrucciones de máquina que constituyen el código ejecutable del programa. Es producido por el compilador y ensamblador mediante la traducción del c, c++ a código de máquina. El segmento de datos contiene almacenamiento para variables, cadenas, arreglos etc. Hay los datos inicializados, que ya vienen con valores iniciales. Los datos no inicializados son estipulados por el lenguaje C como el valor inicial 0. EL segmento de pila, es el que casi todas las máquinas , la pila inicia en el tope o cerca del tope del espacio de direcciones virtual y crece hacia abajo (hacia 0). Si la pila crece hasta rebasar el límite inferior del segmento de pila, lo normal es que se presente un fallo de hardware y el SO fijará el límite inferior del segmento de pila una página más abajo.

31 ADMINISTRACIÓN DE MEMORIA EN UNIX
Muchas versiones de UNIX manejan archivos con correspondencia en memoria. Este mecanismo establece una correspondencia entre un archivo y una porción del espacio de direcciones de un proceso, de modo que el archivo pueda leerse y escribirse como si fuera un arreglo de bytes en la memoria. El mecanismo hace que el acceso aleatorio a él sea mucho más fácil que si se usan llamadas de E/S al sistema como read y write.

32 IMPLEMENTACIÓN DE LA ADMINISTRACIÓN DE MEMORIA EN UNIX
INTERCAMBIO El movimiento entre la memoria y el disco corría por cuenta del nivel superior del calendarizador conocido como intercambiador (swapper). Se iniciaba el intercambio de memoria a disco cuando el kernel se quedaba sin memoria libre a causa de estos sucesos: Una llamada fork al sistema necesitaba memoria para el p.hijo. Una llamada brk al sistema necesitaba expandir un segmento de datos. Una pila crecía y agotaba el espacio asignado para ella. Para escoger al objeto para desalojarlo, el intercambiador examinaba los procesos que estaban bloqueados esperando recursos. En ese sentido, es preferible escoger a uno o mas procesos bloqueados, pero tomando primero el de mayor prioridad o con mayor tiempo de residencia, también es un buen candidato el proceso que había consumido recientemente mucho tiempo de cpu, o que haya estado mucho tiempo en la memoria.

33 IMPLEMENTACIÓN DE LA ADMINISTRACIÓN DE MEMORIA EN UNIX
PAGINACIÓN La idea fundamental de la paginación se basa en que un proceso no necesita estar completo en la memoria para poderse ejecutar. Lo indispensable es la estructura de usuario y las tablas de páginas. Si ello está en memoria, se considera que el “proceso está en memoria” y su ejecución puede calendarizarse. La páginas de los segmentos de texto, datos y pila se traen a la memoria en forma dinámica, una por una, cuando se hace referencia a ellas. Si la estructura de usuario y la tabla de páginas no están en la memoria, el proceso se ejecutará hasta que el intercambiador las traiga del disco. La paginación se implementa una parte en el kernel y otra con un nuevo proceso llamado “demonio de páginas “

34 IMPLEMENTACIÓN DE LA ADMINISTRACIÓN DE MEMORIA EN UNIX
PAGINACIÓN El proceso # 2 “demonio de páginas” , el proceso # 1 el init y el proceso # 0 es el intercambiador. El demonio #2 se activa de forma periódica para revisar si tiene trabajo que hacer. Si descubre que el # de páginas en la lista de páginas de memoria libres es demasiado bajo, toma medidas para liberar más páginas. La memoria principal consta de 3 partes. Las primeras dos, el kernel y el mapa central, están fijas en la memoria ( es decir, nunca se paginan a disco). El resto de la memoria se divide en marcos de página, cada uno de los cuales puede contener una página de texto, de datos o de pila, contener una página de la tabla de páginas o estar en la lista libre. EL mapa central incluye información acerca del contenido de los marcos de página. La entrada 0 del mapa central describe el marco de página 0, la entrada 1 describe el marco de página 1, y así sucesivamente.

35 ENTRADA/SALIDA EN UNIX
A cada dispositivo de e/s se le asigna un nombre de ruta, por lo regular dentro del directorio /dev. Ej. Un disco podría ser /dev/hd1, una impresora sería /dev/lp1. El acceso a estos archivos especiales es igual que a cualquier otro archivo. No se necesitan comandos ni llamadas especiales. Las llamadas al sistema read y write son suficientes. Los archivos especiales se dividen en 2 categorías: bloques y caracteres. Un archivo especial de bloques consta de una sucesión de bloques numerados. Lo clave es que puede tenerse acceso a cada bloque y direccionarlo en forma individual. Se usa para los discos. Los archivos especiales de caracteres se usan, para dispositivos que generan o aceptan un flujo de caracteres. Los teclados, impresoras, redes, ratones, graficadores y casi todos los demás dispositivos de e/s que aceptan o producen datos para las personas, los emplean. Cada archivo especial tiene asociado un controlador de dispositivo que se encarga del dispositivo correspondiente. Cada controlador tiene un # de dispositivo principal que lo identifica.

36 CONECTIVIDAD DE REDES El concepto clave es el socket.
Pueden crearse y destruirse en forma dinámica. La creación de un socket devuelve un descriptor de archivo, que es necesario para establecer una conexión, leer datos, escribir datos y liberar la conexión. Proceso transmisor Proceso receptor Espacio de usuario SOCKET Espacio Kernel conexión RED

37 CONECTIVIDAD DE REDES Cada socket sirve para un tipo distinto de conectividad de redes, que se especifica al crearse el socket. Los tipos más comunes son: 1. Flujo de bytes confiable orientado a conexiones: Permite a 2 procesos de máquinas distintas establecer el equivalente de una canalización entre ellos. Garantiza que todos los bytes enviados llegarán en el mismo orden en que se enviaron. 2. Flujo de paquetes confiable orientado a conexiones.: Similar al 1ero. Excepto que conserva la delimitación de paquetes. Si el transmisor emite 5 llamadas distintas a write cada una por 512 bytes, y el receptor pide 2560 bytes, pues solo se devolverán 512 bytes. 3. Transmisiones no confiable de paquetes.: Sirve para proporcionar al usuario acceso a la red cruda. Es especial para aplicaciones de tiempo real y para implementaciones de esquema de manejo de errores. No hay garantía porque podría perder o desordenar paquetes, pero es de mayor velocidad.

38 CONECTIVIDAD DE REDES Cuando se crea un socket uno de los parámetros especifica el protocolo que se usará en él. Para que un socket pueda usarse para conectividad de redes, debe estar enlazado a una dirección. Esta dirección puede estar en varios dominios de nombres. Cuando los sockets estén creados tanto en la computadora de origen como en la de destino, podrá establecerse una conexión entre ellos (orientado a conexión). Una parte emite una llamada al sistema listen en un socket local, lo cual crea un búfer y bloquea el proceso hasta que llegan datos. La otra emite una llamada al sistema connect, dando como parámetros el descriptor de archivo de un socket local y la dirección de un socket remoto. Si la parte remota acepta la llamada el sistema establece una conexión. Al cerrarse lo hará con una llamada al sistema close.

39 EL SISTEMA DE ARCHIVOS DE UNIX
Por convención, muchos programas esperan que los nombres de archivo consistan en un nombre base y una extensión, separados por un punto. Hay dos formas de especificar nombres de archivos en UNIX, tanto en el Shell como al abrir un archivo desde dentro de un programa. La primera es usar una ruta absoluta, lo que implica indicar cómo llegar al archivo partiendo del directorio raíz. Ej. /usr/ast/libros/cap-7 Lo que indica al sistema que busque en el directorio raiz un directorio llamado usr, luego otro ast, y otro libros, que contiene el archivo cap-7. Como puede ser largos los nombres de ruta, UNIX permite a los usuarios y procesos designar como directorios de trabajo al directorio que están trabajando. (Ruta relativa). Ej. Si la ruta anterior fuera el directorio de trabajo, sería una ruta relativa. Ej. /usr/ast/libros = directorio de trabajo entonces el Shell sería: cp cap-7 respaldo1 con el mismo efecto si le pusiera la ruta más larga.

40 SEGURIDAD EN UNIX La comunidad de usuarios de un sistema UNIX consiste en cierto número de registrados, cada uno de los cuales tiene un identificador de usuario (UID) único. Un UID es un entero entre 0 y Los archivos, procesos y otros recursos se marcan con el UID de su dueño. De manera predeterminada, el dueño de un archivo es la persona que lo creó aunque existe un mecanismo para transferir la propiedad. Los usuarios pueden organizarse en grupos, que también se enumeran con enteros de 16 bits llamados identificadores de grupo (GID). La asignación de usuarios a grupos es realizada por el administrador del sistema en forma manual, y consiste en insertar entradas en una base de datos del sistema que indican cuál usuario está en cuál grupo. El mecanismo de seguridad básico en UNIX es sencillo. Cada proceso lleva el UID o GID de su dueño. Cuando se crea un archivo, obtiene el UID y el GID del proceso que lo creó.

41 SEGURIDAD EN UNIX El archivo también recibe un conjunto de permisos determinados por el proceso que lo creó. Estos permisos especifican el acceso que el dueño, los demás miembros del grupo del dueño y el resto de los usuarios, tienen para el archivo. Para cada una de las 3 categorías los posibles accesos son: lectura (r), escritura (w) y ejecución (x). Simbólico Accesos permitidos al archivo Rwx_ ____ El dueño puede leer, escribir y ejecutar Rwxrwx_ __ El dueño y el grupo pueden leer, escribir y ejecutar Rw_r_ ___ El dueño puede leer y escribir, el grupo puede leer Rw_r_ _r_ _ El dueño puede leer y escribir, los demás pueden leer. Rwx-rx_rx El dueño puede hacer todo; los demás pueden leer y ejecutar __________ Nadie tiene acceso


Descargar ppt "SISTEMAS OPERATIVOS UNIX – LINUX"

Presentaciones similares


Anuncios Google