Sistemas de Archivos para Linux Ext 2 No se puede hablar de un sistema de archivo para Linux. Linux es capaz de adaptarse a una variedad de sistemas de archivo. Lo hace mediante un Sistema de archivos virtual que sirve como interfase en el sistema de archivos que hay en el volumen y el propio sistema operativo. El sistema virtual se enfrenta al sistema de archivos que exista en el volumen ofreciéndole al sistema operativo un único formato con independencia de cual sea este sistema de archivos. Sin embargo en todos los sistemas de archivos para Linux hay unos conceptos básicos comunes: Inodo: cada archivo es representado por una estructura de datos que contiene una descripción del archivo: tipo, derechos de acceso, propietarios, tamaño y punteros a las zonas de datos. Cuando se quiere acceder a los datos del archivo, se accede a los punteros, estos punteros están relacionados con una Tabla de direcciones de bloque que ubican cada uno de los bloques de datos asignables que componen el disco. Directorios: son un tipo particular de archivo. Por lo tanto un directorio es representado también por un I-nodo. La particularidad es que los datos de este archivo son una lista de i-nodos Enlaces: un enlace es un nombre alternativo de un archivo. Cuando se crea un enlace se crea un i-nodo en el directorio, pero este i-nodo no tendrá ningún bloque asignado. Uno de los campos del i-nodo es un número cuyo sentido es apuntar a otro i-nodo que representará a un archivo real (con datos) en el sistema. En el archivo “real” se incrementa una cuenta de enlaces a ese archivo de modo que este archivo no se considerará borrado hasta que hayan sido borrados todos los enlaces. Este es llamado enlace duro. Se previene de la creación de enlaces duros a directorios para no crear bucles en la estructura del sistema de archivos. Además no es posible crear enlaces duros que cruces dos sistemas de archivo (por ejemplo de volumen a volumen?) Existen también los enlaces simbólicos. Estos crean un i-nodo que sí tienen datos asociados; pero estos datos se limitan a ser el nombre del otro archivo real (con datos) al que quieren asociarse. Archivos especiales: un archivo especial es otra clase de archivos sin datos. Son usados para acceder a los dispositivos de entrada/salida de datos. Estos dispositivos son divididos en dos clases: de caracteres y de bloque. Los primeros admiten transferencias de carácter, lo que implica transferencias inmediatas sin necesidad de utilizar buffers intermedios. Los de bloque requieren la habilitación de buffers intermedios donde almacenar bloques de datos antes de hacérselos llegar al usuario. Cuando un archivo especial es accedido, la acción es derivada a un pseudo driver que se encargará de gestionar la acción correspondiente con el driver del dispositivo. Los archivos especiales tienen asociado un Major Number que describe el tipo de dispositivo que se trata y un Minor Number que indica (si hay más de uno en el sistema) de cual se trata de los múltiples que hubiere. Virtual File System En Linux no se accede directamente al sistema de archivos. Existe una capa intermedia que hace de interfaz entre el sistema de archivos y el sistema operativo. La ventaja que proporciona esta capa es que el sistema operativo no se ve comprometido con un único sistema de archivos. El sistema de archivos virtual ofrece a Linux una visión homogenea de un sistema de archivos con independencia del sistema de archivos real que resida en cada volumen. Los sistemas de archivo que soporte linux se deben realmente a los sistemas de archivos con que sea capaz de entenderse VFS. Ext2 File System Este es realmente el Sistema de Archivos del volumen. Es capaz de soportar hasta 4 TB, nombres de 255 caracteres. Y tiene la característica de reservar en cada bloque un espacio para el directorio raiz, lo que va a permitir al administrador manejar el sistema de archivos en situaciones de sobrecarga. Algunos conceptos importantes: Grupos de Bloques: o grupos de bloques tiene una consideración semejante a los cilindros, aunque en este caso no hay una consideración física (como la tienen los cilindros) (¿Los accesos consecutivos dentro de un grupo de bloques son más eficientes que los accesos entre grupos de bloques?) Cada grupo de bloque contiene una copia redundante de información de control crucial para el sistema de archivos: superbloque y descriptores del sistema de archivos. Y también contendrá parte del sistema de archivos (block bitmap, i-node bitmap, parte de la tabla de i-nodes, y bloques de datos) Un directorio es concebido como una lista encadenada de entradas de longitud variable. Cada entrada contiene: numero de i-nodo, longitud de la entrada, nombre del archivo y longitud de nombre.