8-
SISTEMA DE FICHEROS
Un sistema de ficheros establece la organización de almacenamiento
de los datos en el disco.
- Características:
- Estructura jerárquica.
- UNIX no impone ningún formato a los ficheros.
- Existen derechos de accesos sobre los ficheros.
- Los dispositivos periféricos son tratados como ficheros.
- La asignación del espacio en el disco para los ficheros es
dinámica.
- Tipos de sistemas de ficheros:
- S5:
Es un sistema de ficheros idéntico al de anteriores versiones
del System V de ATT.
- UFS:
Sistema de ficheros de Berckeley. Es el que utiliza el sistema por
defecto.
- NFS:
Sistema de ficheros de la red Sun Microsystems.
- /proc:
Sistema de ficheros especial utilizado para acceder al espacio de direccionamiento
de un proceso en ejecución.
- BFS:
Sistema de ficheros de arranque. Se utiliza para independizar la inicialización
del sistema posterior de ficheros que se vaya a elegir.
- Nombres de ficheros:
UNIX permite formar nombres de hasta 14 caracteres. Se puede incluir
cualquier conjunto de caracteres dentro del nombre, sin embargo, hay ciertos
caracteres que significan algo para la shell y es mejor evitarlos.
Estos caracteres son: *, ?, <, >, | y &.
Lo más conveniente es utilizar letras, dígitos, puntos
y guión bajo(_).
- Tipos de ficheros:
- Regulares u ordinarios:
Son los que consisten en una secuencia de bytes. Se pueden incluir
dentro de los ficheros regulares los ficheros de texto, programas, ficheros
encriptados, ficheros de datos, etc.
- Ficheros de directorio:
Son ficheros que contienen referencias a otros ficheros o directorios.
El primer directorio es el raíz (root) que se representa por el
símbolo “/”. De él cuelgan los directorios etc, home, bin,
lib, etc.
Para movernos por los directorios podemos usar el path absoluto o relativo.
Cuando el path es absoluto comenzaremos por el directorio raíz.
Cuando es relativo, estamos dando el camino referido a la posición
donde se encuentra el usuario.
. referencia al directorio actual
.. referencia al directorio padre
Nota: el path absoluto va precedido por la barra (/) y
el relativo no.
- Ficheros FIFO:
Se suelen utilizar por ciertos programas de aplicación como
un fichero temporal en el cual los datos de escriben por un lado y se leen
por otro. Típicamente no suelen tener un tamaño mayor que
0, ya que en cuanto los datos son leídos se eliminan del fichero.
- Ficheros especiales:
Representan a dispositivos periféricos (ej: partición
de disco, terminal, impresora,...). Existen dos tipos:
- De tipo bloque: la comunicación se realiza mediante
el buffer (bloque a bloque).
- De tipo carácter: la comunicación se realiza
byte a byte.
Estos tipos de ficheros no contienen información sino una referencia
a las rutinas drivers del Kernel que los maneja. Los ficheros especiales
se encuentran colgando del directorio /dev.
- Ficheros de enlace simbólico:
Son ficheros que contienen el path absoluto de otro fichero.
- Principales directorios del sistema:
- /: root.
- /etc: contiene ficheros de configuración, administrativos
y bases de datos del sistema.
- /home: contiene los directorios de trabajo de los usuarios.
- /lib, /usr/lib: contienen librerías de programas.
- /bin, /usr/bin, /sbin: contienen ejecutable empleados para la administración
del sistema.
- /dev: contiene los ficheros especiales de dispositivos.
- /mnt: punto de montaje temporal para sistemas de ficheros.
- /tmp, /var/tmp: contienen ficheros temporales.
- /var: contiene ficheros y directorios variables en contenido (ej:
ficheros como look y spool).
- /proc: sistema de ficheros virtual en memoria. Este directorio contiene
una referencia por cada proceso activo en el sistema.
- /boot: contiene los ficheros de arranque del sistema.
- Estructura de un sistema de ficheros S5:
El sistema de ficheros S5 se utiliza en versiones previas al System
V de ATT. Esta organización continúa existiendo, aunque no
de forma predominante, pero se suele utilizar en disquetes por su tamaño
reducido.
Los discos se encuentran organizados en bloques físicos
de 512 bytes.
Para optimizar el acceso al disco los sistemas de ficheros
definen unidades mayores llamadas bloques lógicos.
Este tipo de sistema de ficheros cuenta con las siguientes areas:
- Bloque de arranque:
Es el primer bloque (bloque 0) y ocupa 512 bytes. Contiene una referencia
al sistema de inicialización.
- Super bloque:
Segundo bloque (bloque 1). Ocupa 512 bytes. En este bloque se almacenan
datos administrativos sobre el sistema de ficheros (ej: número de
bloques libres, lista de esos bloques, etc.).
- Lista de i-nodos:
Consiste en una serie de estructuras continuas de 64 bytes denominadas
i-nodos. Los i-nodos almacenan información sobre los ficheros
del sistema; existe un i-nodo por fichero. El tamaño de la lista
de i-nodos es determinado en el momento de la creación del sistema
de ficheros. Comienza en el tercer bloque (bloque 2).
- Bloque de almacenamiento:
No se sabe exactamente donde comienza; se encuentra a continuación
de la lista de i-nodos. Se extiende hasta el final del espacio disponible.
Suelen contener los datos de los ficheros.
- Descripción de un i-nodo:
Por cada fichero tenemos la siguiente información:
- Modo:
Son dos bytes que incluyen el tipo de fichero y los permisos de acceso.
- Contador de enlaces:
Cuenta los enlaces.
- Identificación de usuario:
Contiene el UID del propietario del fichero.
- Identificación de grupo:
Contiene el valor decimal GID del grupo asignado al fichero.
- Tamaño del fichero:
Contiene el tamaño del fichero en bytes.
- Direcciones del bloque:
Son 40 bytes que contienen 13 punteros a bloques de almacenamiento.
De los 13 punteros, los 10 primeros (0 a 9) son punteros directos a bloques
de almacenamiento. El puntero 10 es un puntero indirecto a un bloque lógico
que contiene a su vez punteros a bloques de almacenamiento con datos del
fichero. El puntero 11 es un doble indireccionamiento. El puntero 12 es
un triple indireccionamiento.
- Fecha de acceso:
Fecha y hora en que el fichero fue accedido por última vez.
- Fecha de modificación:
Fecha y hora en que el fichero fue modificado por última vez.
- Fecha de cambio:
Fecha y hora en que el i-nodo del fichero fue modificado. (ej: al cambiar
los permisos).
- Estructura de ficheros UFS:
Este sistema emplea bloques lógicos de tamaño
mayor que el sistema S5. Se divide en diversas secciones denominadas grupos
de cilindros. Para cada cilindro se repite la siguiente estructura:
- Bloque de arranque:
Es el único bloque que no se repite.
- Superbloque:
Contiene datos administrativos sobre el sistema de ficheros.
- Bloque de grupo de cilindro:
Contiene datos administrativos sobre el grupo de cilindro al que pertenece.
- Lista de i-nodos:
Contiene una lista de i-nodos ufs.
- Bloques de almacenamiento:
Contienen bloques de datos.
La estructura de i-nodo ufs contiene el modo (tipo de fichero
y permisos), la identificación del usuario propietario del fichero,
identificación del grupo del fichero, número de enlaces del
fichero, tamaño del fichero en bytes, fecha de última modificación
de los datos, fecha de última modificación del i-nodo, el
número de bloques asignados al fichero y 15 punteros a bloques de
almacenamiento.
El objetivo de un grupo de cilindros es almacenar bloques
de almacenar bloques de almacenamiento de un mismo fichero en posición
rotacional óptima.
Los bloques lógicos en este sistema tienen un tamaño
entre 4006 a 8192 bytes.
Los primeros 12 punteros (0 a 11) son punteros directos.
Los punteros 12 y 13 son punteros de indireccionamiento doble.
INDICE