Está en la página 1de 22

SISTEMAS OPERATIVOS

Sistemas de ficheros - EXT


Introducción

•El sistema de archivos EXT (Extended File System) es uno de los


sistemas de archivos más reconocidos y utilizados en el mundo
Linux, desarrollado originalmente por Rémy Card para superar
las limitaciones del sistema de archivos Minix.

•A lo largo de los años, ha evolucionado en varias versiones,


incluyendo EXT2, EXT3 y EXT4, cada una con sus propias
características, mejoras y optimizaciones.
Estructura
Principales Características
Estructura de Inodos

•EXT introdujo el concepto de inodos para almacenar metadatos de


archivos y directorios, incluyendo información como permisos,
propietario, fechas de creación y modificación, y punteros a bloques
de datos.
•Un i-nodo típicamente contiene la siguiente información:
• Tipo de Archivo
• Permisos
• Propietario y Grupo
• Tamaño del Archivo
• Timestamps
• Contador de Enlaces
• Punteros a Bloques de Datos
• Número de I-nodo
Principales Características
Otros

•Bloques de Datos:
• Utiliza bloques de datos para almacenar el contenido real de los
archivos. Los inodos contienen punteros a estos bloques,
permitiendo una organización flexible del espacio en disco.

•Árbol de Directorios:
• Implementa una estructura de árbol para organizar los directorios y
subdirectorios, mejorando la eficiencia en la búsqueda y acceso a
archivos y directorios.
Estructura

•Se divide en cuatro:


• Sector de arranque (Código de inicio)
• Bloque Superbloque
• Bloques de Grupo
• Bitmaps de Inodos y Bloques
• Tabla de I-nodos
• Bloque de datos
Superbloque

•El superbloque contiene información crítica acerca del sistema


de archivos, como el tamaño del sistema de archivos, el número
de inodos y bloques, y la ubicación del primer bloque de inodos.

•Almacena metadatos que el sistema operativo necesita para


interactuar con el sistema de archivos.

•Hay copias del superbloque distribuidas a lo largo del sistema


de archivos para mejorar la robustez y la recuperación de datos.
Bloques de Grupo

•El sistema de archivos EXT se divide en varios grupos de


bloques para mejorar la eficiencia y la gestión.

•Cada grupo de bloques contiene una copia del superbloque, un


bloque de descriptores de grupo, una tabla de inodos, y bloques
de datos.

•El bloque de descriptores de grupo almacena metadatos sobre


el grupo de bloques, como la ubicación de la tabla de inodos y
los bloques de datos.
Bloques de Grupo

•Bitmap de Inodos:
• Este bitmap rastrea el uso de inodos dentro del Grupo de Bloques.
Cada bit representa el estado de un inodo específico.

•Bitmap de Bloques (Clusters):


• Este bitmap rastrea el uso de bloques de datos (clusters) dentro del
Grupo de Bloques. Cada bit representa el estado de un bloque de
datos específico.
Tabla de Inodos

•Los inodos son estructuras de datos que almacenan metadatos


sobre archivos y directorios, como el tipo de archivo, el tamaño,
los permisos, y la ubicación de los bloques de datos.

•Cada archivo o directorio en el sistema de archivos EXT tiene


un inodo único.

•La tabla de inodos es un arreglo de inodos, y cada grupo de


bloques tiene su propia tabla de inodos.
Bloques de Datos

•Los bloques de datos almacenan el contenido real de los


archivos y directorios.

•Cada inodo apunta a los bloques de datos que contienen el


contenido del archivo o directorio correspondiente.

•Los bloques de datos pueden ser de diferentes tamaños,


típicamente de 1 KB, 2 KB, 4 KB, o más, dependiendo de la
configuración del sistema de archivos.
Bitmaps de Inodos y Bloques

•Dentro de cada grupo de bloques, hay bitmaps de inodos y


bloques que rastrean qué inodos y bloques de datos están en
uso.

•Estos bitmaps ayudan al sistema operativo a encontrar inodos y


bloques de datos libres rápidamente.
¡Punteros!

•En el sistema de archivos EXT, cada inodo contiene una lista de


punteros a bloques de datos que almacenan el contenido real del
archivo.

•Estos punteros se clasifican en directos, indirectos simples, indirectos


dobles e indirectos triples, dependiendo de cómo apuntan a los
bloques de datos.

•Un inodo típico en un sistema de archivos EXT contiene 12 punteros


directos, 1 puntero indirecto simple, 1 puntero indirecto doble y 1
puntero indirecto triple.
Punteros Directos

•Un inodo contiene varios punteros directos (típicamente 12 en


sistemas EXT2/3/4).

•Cada puntero directo apunta a un bloque de datos individual.

•Los punteros directos permiten acceder rápidamente a los


primeros bloques de datos del archivo.
Puntero Indirecto Simple

•Un inodo contiene un puntero indirecto simple.

•Este puntero no apunta directamente a los bloques de datos,


sino a un bloque de punteros.

•Cada puntero dentro de este bloque apunta a un bloque de


datos individual.

•Esto permite acceder a más bloques de datos que los que se


podrían alcanzar solo con punteros directos.
Puntero Indirecto Doble

•Un inodo contiene un puntero indirecto doble.

•Este puntero apunta a un bloque de punteros indirectos


simples.

•Cada puntero indirecto simple, a su vez, apunta a un bloque de


punteros que apuntan a bloques de datos individuales.

•Esto amplía aún más la capacidad de direccionamiento del


archivo.
Puntero Indirecto Triple

•Un inodo contiene un puntero indirecto triple.

•Este puntero apunta a un bloque de punteros indirectos dobles.

•Cada puntero indirecto doble apunta a un bloque de punteros


indirectos simples, que a su vez apuntan a bloques de punteros
que apuntan a bloques de datos individuales.

•El puntero indirecto triple permite acceder a una gran cantidad


de bloques de datos, facilitando el manejo de archivos de gran
tamaño.
Creación de Archivos y Directorios

•Asignación de Inodo:
• Se asigna un inodo libre del conjunto de inodos.
• Se actualiza la tabla de inodos con la información del nuevo archivo o
directorio (tipo, permisos, propietario, tamaño, etc.).

•Asignación de Bloques:
• Se asignan bloques de datos libres para almacenar el contenido del archivo o
los metadatos del directorio.
• Se actualizan los punteros en el inodo para apuntar a estos bloques.

•Actualización del Directorio Padre:


• Se añade una entrada en el directorio padre con el nombre del nuevo
archivo o directorio y su número de inodo.

•Actualización de Bitmaps:
• Se actualizan los bitmaps de inodos y bloques para marcar el inodo y los
bloques asignados como ocupados.
Mover Archivos y Directorios

•Actualización de Entradas de Directorio:


• Se elimina la entrada del archivo o directorio en el directorio origen.
• Se crea una nueva entrada en el directorio destino con el mismo
número de inodo.

•Actualización de Inodo:
• Si el archivo o directorio se mueve a un nuevo sistema de archivos o
partición, se pueden requerir actualizaciones adicionales en el inodo
(por ejemplo, cambio de ubicación de bloques).

•No hay Cambio en Bloques de Datos:


• Los bloques de datos del archivo o los metadatos del directorio no
cambian de ubicación en el disco, a menos que se muevan entre
diferentes sistemas de archivos o particiones.
Borrado de Archivos y Directorios

•Eliminación de Entrada de Directorio:


• Se elimina la entrada del archivo o directorio en el directorio padre.

•Liberación de Bloques:
• Se liberan los bloques de datos asociados al archivo o directorio.
• Se actualiza el bitmap de bloques para marcar estos bloques como libres.

•Liberación de Inodo:
• Se libera el inodo asociado al archivo o directorio.
• Se actualiza el bitmap de inodos para marcar este inodo como libre.

•Actualización de Contadores:
• Se actualizan los contadores de espacio libre en los superbloques y bloques
de grupo.
Sistemas Operativos

Sergio Jimeno Navarro


sjimeno@usj.es

También podría gustarte