Tema 3 Sistemas de Archivos 19/09/2018
Almacenamiento de información Necesidades Almacenamiento de grandes cantidades de información Persistencia de la información almacenada Acceso concurrente a la información Solución Archivos Sistemas de archivos 19/09/2018
Archivos Mecanismo de abstracción Unidades lógicas de almacenamiento agrupadas bajo un nombre Formas de nombrar un archivo Cadenas de letras Uso de extensión Distinción entre mayúsculas y minúsculas 19/09/2018
Archivo Conjunto de datos al cual se le asigna un nombre Operaciones sobre un archivo: Abrir Cerrar Crear Destruir Copiar Renombrar Mostrar contenido 19/09/2018
Estructura de un archivo Secuencia de bytes El Sistema Operativo se despreocupa del contenido Máxima flexibilidad MS-DOS, Unix, Windows Secuencia de registros Cada registro tiene su propia estructura interna Árbol de registros Registros con un campo llave para ordenarlos 19/09/2018
Tipos de archivos Archivos regulares Directorios Diferentes formatos Directorios Archivos de sistema para mantenimiento de una estructura del sistema de archivos Archivos especiales de caracteres Relacionados con la Entrada/Salida Archivos especiales de bloques Para modelar discos 19/09/2018
Acceso a un archivo Acceso secuencial Acceso aleatorio Byte a byte, registro a registro Ideal para almacenamiento en cinta Acceso aleatorio Lectura/escritura en orden cualquiera Necesarios para sistemas de bases de datos 19/09/2018
Atributos de un archivo Protección Contraseña Creador Propietario De sistema Tamaño Fecha de creación Modo de uso Ocultamiento 19/09/2018
Sistemas de archivos Define la forma en que gestiona los archivos el sistema operativo: Métodos de acceso Administración de archivos Administración de almacenamiento secundario Mecanismos de integridad de los archivos Administración de espacio en disco 19/09/2018
Sistemas de archivos: Funciones Usuarios deben poder crear, modificar, compartir y eliminar archivos. Ofrecer varios tipos de acceso: R,W,X. Posibilidades para estructurar archivos, transferir información entre archivos. Respaldo y recuperación para evitar pérdidas Referencias simbólicas Seguridad y privacidad Interfaz amigable 19/09/2018
Directorios Se usan para llevar un registro de los archivos Por cada archivo hay que almacenar Nombre Atributos (en la entrada del directorio u otro lugar) Estructura en directorios: 1 Directorio global común 1 Directorio por usuario Árbol de directorios 19/09/2018
Rutas de acceso Necesarias para los árboles de directorios Tipos de rutas Absoluta : Ruta desde la raíz del árbol hasta el archivo Ejemplo: /home/usr/hola.txt Relativa: Ruta desde el directorio activo (o de trabajo) hasta el archivo Ejemplos: ./usr/hola.txt ../hola.txt 19/09/2018
Rutas de acceso “/”: indica que es un directorio “.”: directorio actual “..”: directorio padre (en el árbol) 19/09/2018
Directorios en MS-DOS Árbol de directorios Cada entrada de directorio tiene 32 bytes Nombre de archivo: 8 bytes Extensión: 3 bytes Atributos: 1 byte Reservado: 10 bytes Hora: 2 bytes Fecha: 2 bytes Número primer bloque: 2 bytes Tamaño: 4 bytes 19/09/2018
Directorios en UNIX Árbol de directorios Cada entrada de directorio es de 16 bytes Número de nodo-i: 2 bytes Nombre de archivo: 14 bytes 19/09/2018
Directorios en UNIX (2) Comandos para directorios Crear directorio : mkdir directorio Entrar en directorio: cd directorio Borrar directorio: rmdir directorio Ver contenido: ls 19/09/2018
Ejemplos de sistemas de archivos FAT16 (msdos) Despercicio de espacio, bloques 32Kb, máximo 2 GB Nombres 8 caracteres VFAT (win95) Extensión de FAT para permitir nombres largos Compatible con FAT16 FAT32 (win95-98) Bloques 4 kb, discos duros de gran capacidad NTFS (win NT en adelante) NTFS version 2 en XP EXT2FS(linux) 19/09/2018
Sistema de ficheros NTFS El usuario puede configurar el sistema de ficheros a su gusto y manera. Usa un árbol B para indexar los directorios, lo que hace más eficientes las búsquedas. Los ficheros pequeños están localizados en el disco cerca del directorio, por lo que el tiempo de búsqueda promedio disminuye. "Unicode". Dos bytes para cada carácter, evitando así el problema de los códigos locales, véase el problema de la "ñ". Suministra una utilidad cómoda para hacer las particiones de los discos, formatearlos y demás, que poco tiene que ver con "fdisk". Ofrece mucha seguridad al usuario, tanto contra fallos de la máquina como contra posibles "intrusos". Copias automáticas de parte de los ficheros que utiliza el usuario compresión de ficheros se pueden direccionar hasta 2 hexabytes 19/09/2018
Tamaño de la unidad (en MB) Tamaño de la unidad (en MB) Tamaño del clúster en KB FAT 16 FAT 32 VFAT NTFS 0 - 15 4 0.5 (512 bytes) 16 - 127 2 128 - 255 256 -511 8 0.5 / 4 1 512 - 1023 16 1 1024 - 2047 32 2048 - 4095 No puede 64 4096 - 8191 128 8192 - 16384 256 16 GB - 32 GB Mayores de 32GB 19/09/2018
Gestión de Archivos en LINUX 19/09/2018
Estructura de Archivos en LINUX Casi todo se gestiona como si fuera un archivo Ficheros Directorios Dispositivos de Entrada/Salida Estructura jerárquica de directorios Directorio raíz / 19/09/2018
Tipos de archivos en LINUX Ficheros Directorios Ficheros especiales Enlaces Sockets Tuberías 19/09/2018
Ficheros en Linux ASCII Datos en binario Configuración Scripts Datos en binario Programas ejecutables en binario 19/09/2018
Directorios en Linux Fichero binario Contenido Lista de los otros ficheros Lista de directorios 19/09/2018
Ficheros especiales en Linux (I) Mecanismos empleados para las operaciones de entrada/salida. Suelen encontrarse en el directorio /dev. Tipos de ficheros especiales De carácter De bloque 19/09/2018
Ficheros especiales en Linux (II) Ficheros especiales de carácter Para dispositivos de acceso por caracteres Ejemplos: Ficheros especiales de bloque Para dispositivos de acceso por bloques 19/09/2018
Enlaces en LINUX Mecanismo que permite que varios nombres de archivos se refieran al mismo contenido Tipos de enlaces Enlace simbólico: enlace a otro nombre de archivo Enlace duro: enlace múltiple al mismo archivo 19/09/2018
Comparación entre enlaces Si borramos el fichero enlazado Enlace duro: no hay problema Enlace simbólico: referencia a algo que no existe Si listamos los ficheros de un directorio (ls -l) Enlace duro: no hay distinción Enlace simbólico: se muestra el enlace 19/09/2018
Ficheros para comunicación entre procesos Sockets Ficheros para comunicación a través de una red entre procesos Tuberías (Pipes) Ficheros para paso de información entre procesos 19/09/2018
Identificación de tipos de fichero Al hacer ls –l, podremos identificar los tipos de fichero de la siguiente forma: - Enlace duro d Directorio l Enlace simbólico b fichero de bloque c fichero de carácter s Socket p Tubería 19/09/2018
Propiedad de los archivos Cada fichero pertenece a un usuario. Cada fichero pertenece además a un grupo de usuarios. El usuario propietario no tiene por qué pertenecer al grupo propietario. Ejemplo: fichero creado por el profesor para los alumnos de una asignatura Usuario: profesor Grupo: grupo con los alumnos 19/09/2018
Implicaciones Un usuario tendrá acceso, en principio, a todos los archivos poseídos por sus(s) grupo(s) de usuarios. Si queremos que un usuario acceda a los archivos de un determinado grupo: Hacerle copia de los archivos Hacer “públicos” esos archivos Dar de alta al usuario en el grupo 19/09/2018
¿Quién posee un archivo nuevo? El usuario propietario es el usuario que lo crea………pero………….¿cuál es el grupo propietario? Opción 1: El grupo actual del usuario propietario Opción 2: El grupo propietario del directorio en el que se encuentra (comprobar en prácticas) 19/09/2018
Comandos para cambiar la propiedad Cambiar usuario propietario chown nuevo_propietario lista_archivos chown –R nuevo_propietario directorio Cambiar grupo propietario chgrp nuevo_grupo lista_archivos Cambiar ambos chown nuevo_usuario.nuevo_grupo lista_archivos 19/09/2018
¿Cómo puedo hacer que mis archivos sólo sean accesibles para mí ? Entonces……………… ¿Cómo puedo hacer que mis archivos sólo sean accesibles para mí ? ¿Cómo puedo evitar que otros usuarios modifiquen mis archivos? ¿Cómo puedo permitir que otros usuarios ejecuten mis programas? 19/09/2018
Acceso a los archivos Se define el modo de acceso para: Usuario propietario Grupo propietario Otros usuarios Se define el modo de acceso a : Ficheros Directorios 19/09/2018
Tipos de acceso a ficheros Lectura (R) : Ver contenido del fichero Escritura (W): Modificar el contenido del fichero Ejecución (X): Ejecutar el fichero 19/09/2018
Tipos de acceso a directorios Lectura (R) : Ver contenido del directorio (por ejemplo, uso del comando ls) Escritura (W): Modificar el contenido del directorio (por ejemplo, borrar ficheros del directorio ) Ejecución (X): Entrar en el directorio (por ejemplo, uso del comando cd) 19/09/2018
Ejemplos de protección Comando Mínimo acceso necesario Para fichero Para directorio cd /home/chavez ------ Ejecución ls /home/chavez/*.c Lectura ls –s /home/chavez/*.c ------- Lectura, Ejecución cat runme cat >> runme Escritura runme (si es un fichero ejecutable) Lectura y Ejecución (si es un fichero script) rm runme Escritura y Ejecución 19/09/2018
Resumen protección directorios - - - : no permite ninguna actividad en el directorio ni en sus subdirectorios. R--: permite a los usuarios listar el nombre de los archivos en el directorio, pero no mostrar los atributos de los mismos --X: Permite a los usuarios trabajar con programas del directorio (aquellos cuyos nombres ya conocieran antes) R-X: Permite a los usuarios trabajar con programas del directorio y listar los contenidos del directorio, pero no se puede crear ni eliminar archivos. RWX: Se puede trabajar con programas del directorio, listar contenido y crear y eliminar archivos 19/09/2018
Nuevas dudas ¿Qué ocurre si los archivos de un directorio tienen permisos diferentes a los del directorio? ¿Cómo se relacionan estos permisos con los tipos de acceso según los usuarios? 19/09/2018
Definición de clases de acceso Cada archivo (incluyendo directorio) tiene especificados los permisos para: Usuario: usuario propietario del archivo Grupo: grupo propietario del archivo Otros: otros usuarios no cubiertos por los casos anteriores Se definen permisos de lectura, escritura y ejecución 19/09/2018
El permiso de un archivo Cuando hacemos ls –l se nos muestra el contenido de un directorio así como los permisos de cada fichero Se hace uso de 10 caracteres 1: tipo de archivo 3: permisos usuario en formato rwx 3: permisos grupo en formato rwx 3: otros accesos en formato rwx 19/09/2018
Ejemplo [jfernand@dis jfernand]$ ls -la total 36 drwx--x--x 4 jfernand profesor 4096 oct 30 15:02 . drwxr-xr-x 43 root root 4096 nov 6 13:39 .. -rw------- 1 jfernand profesor 934 nov 7 12:33 .bash_history -rw-r--r-- 1 jfernand profesor 24 oct 16 11:27 .bash_logout -rw-r--r-- 1 jfernand profesor 191 oct 16 11:27 .bash_profile -rw-r--r-- 1 jfernand profesor 124 oct 16 11:27 .bashrc -rw-r--r-- 1 jfernand profesor 854 oct 16 11:27 .emacs drwxr-xr-x 4 jfernand profesor 4096 nov 7 11:56 .kde drwxr-xr-x 4 jfernand profesor 4096 oct 31 18:06 public_html 19/09/2018
Comandos para gestionar permisos Cambio genérico chmod lista_permisos lista_archivos Ejemplos chmod u+w lista_archivos chmod a+w lista_archivos chmod a-w lista_archivos chmod a=r lista_archivos 19/09/2018
Búsqueda de archivos En ocasiones necesitamos buscar ciertos archivos o datos cuya ubicación desconocemos. El sistema operativo debe proporcionar mecanismos para realizar búsquedas en el sistema de archivos. Unix proporciona el comando FIND 19/09/2018
FIND Sirve para realizar búsquedas. Sintaxis: find directorio_inicio opciones Tipos de opciones: tiempo de acceso/modificación/creación de fichero tipo de fichero nombre de fichero propiedad del fichero Permite realizar una serie de acciones con los ficheros encontrados 19/09/2018
Acciones asociadas a FIND PRINT: Mostrar por pantalla el nombre de los archivos LS : hacer el ls de los archivos encontrados EXEC cmd: ejecutar un comando sobre el archivo OK cmd: idem pero pidiendo confirmación 19/09/2018
Ejemplos de FIND find . –name /*.c –print busca los archivos que con “.c” y muestra el nombre por pantalla a partir del directorio actual find . –name /*.c –exec rm –f {} \ borra los archivos “.c” a partir del directorio actual find /chem –size +2048 –mtime +30 –exec ls –l {} lista los archivos de más de 2048 bloques que no hayan sido modificados en el último mes 19/09/2018
Sistema de Impresión en LINUX 19/09/2018
Sistema de Impresión en LINUX Elementos del sistema de impresión Comandos de usuario para iniciar la impresión Colas para gestionar los trabajos de impresión Directorios para almacenar los trabajos a imprimir Servidor de procesos de impresión Comandos de administración para gestionar el sistema de impresión 19/09/2018
Comandos de usuario Enviar un trabajo a imprimir (lpr) Ver la cola de impresión (lpd) Eliminar un trabajo de la cola (lprm) 19/09/2018
Copias de seguridad Muchos sistemas ofrecen una variedad de utilidades para hacer copias de seguridad, variando desde unos programas de propósito general hasta programas especialmente diseñados para hacer copias de seguridad incrementales de un sistema de ficheros Nos centraremos en el primer grupo de aplicaciones 19/09/2018
Programas para copias de seguridad Programas para cuando necesitemos hacer copias de seguridad de una cantidad no muy elevada de datos. Ideales cuando tenemos controladas adecuadamente las modificaciones de los ficheros. tar cpio 19/09/2018
cpio programa original de Unix para intercambiar archivos mediante soportes magnéticos. tiene opciones para realizar intercambio (swapping) de bytes, escribir en diferentes formatos de archivo y enviar mediante una tubería los datos a otros programas. Esta última prestación hace de cpio una excelente elección para soportes de instalación. no sabe cómo recorrer el árbol de directorios, por lo que se le debe suministrar una lista de archivos. Ejemplo: Find /home –cpio /dev/rmt0 19/09/2018
tar trabaja con el sistema de archivos escribe archivos y directorios en la cinta. soporta todas las opciones disponibles para cpio no necesita la inusual tubería que cpio emplea 19/09/2018
Compresión en Linux La compresión de archivos permite almacenar la misma cantidad de información en menos espacio utilizando algoritmos de compresión Herramientas para compresión GZIP GUNZIP TAR 19/09/2018
Programas para compresión Por convención, a los ficheros comprimidos se les da la extensión .gz. El comando Gzip crea un fichero comprimido que finaliza con .gz; Gunzip extrae los ficheros comprimidos y suprime el fichero .gz. gzip filename.ext gunzip filename.ext.gz 19/09/2018
Compresión ZIP Si intercambia ficheros con usuarios no-Linux, le conviene zip para evitar problemas de compatibilidad zip -r filename.zip files unzip filename.zip gzip filename.gz file1 file2 file3 /user/work/school 19/09/2018
Gestión de la Entrada/Salida en Linux Define el acceso a terminales, discos, impresoras, redes, etc. En Linux el acceso se realiza mediante archivos especiales integrados en el sistema de archivos. Cada dispositivo de E/S tiene asignado el nombre de su ruta de acceso (generalmente /dev) Se puede hacer uso de las funciones normales para archivos Mismos mecanismos de protección y seguridad 19/09/2018
Entrada/Salida estándar Entrada estándar: lugar por donde los procesos acceden a la información de entrada stdin Salida estándar: lugar por donde depositan los procesos la información de salida stdout Salida de error: lugar por donde los procesos emiten los mensajes de error stderror 19/09/2018
Redirecciones Entrada comando_a_ejecutar < archivo_fuente_datos Salida comando_a_ejecutar > archivo_destino_datos Error comando 2> archivo_destino_errores 19/09/2018
Tuberías Uno de los métodos más importantes de comunicación entre procesos consiste en las llamadas tuberías; éstas permiten que la salida standard de un proceso se pueda conectar a la entrada standard de otro proceso. Ej: ls –l | more 19/09/2018
Filtros Los filtros son programas muy útiles para usarse en conjunción con las tuberías. Un filtro es un programa que lee la entrada estándar, la cambia de alguna manera, y la saca por la salida estándar. Ejemplo: more , sort ls –l | more 19/09/2018
Fin 19/09/2018