estructura de puntero de inodo


La estructura de puntero de inodo es una estructura adoptada por el inodo de un archivo en el sistema de archivos de Unix (UFS) para enumerar las direcciones de los bloques de datos de un archivo . También es adoptado por muchos sistemas de archivos relacionados, incluido el sistema de archivos ext3 , popular entre los usuarios de Linux.

En el pasado, la estructura puede haber consistido en once o trece punteros, pero la mayoría de los sistemas de archivos modernos utilizan quince punteros. Estos punteros consisten en (asumiendo 15 punteros en el inodo):

La estructura se ilustra parcialmente en el diagrama que acompaña a este artículo. La estructura permite que los inodos describan archivos muy grandes en sistemas de archivos con un tamaño de bloque lógico fijo. El elemento central del mecanismo es que los bloques de direcciones (también llamados bloques indirectos ) solo se asignan según sea necesario. Por ejemplo, un archivo de 12 bloques se describiría usando solo el inodo porque sus bloques se ajustan a la cantidad de punteros directos disponibles. Sin embargo, un archivo de 13 bloques necesita un bloque indirecto para contener la decimotercera dirección.

La estructura de puntero de inodo no solo permite que los archivos se asignen fácilmente a bloques no contiguos, sino que también permite ubicar fácilmente los datos en una ubicación particular dentro de un archivo. Esto es posible porque el tamaño del bloque lógico es fijo. Por ejemplo, si cada bloque tiene 8 kB, los datos de archivo de 112 kB a 120 kB serían señalados por el tercer puntero del primer bloque indirecto (suponiendo doce punteros directos en la estructura de puntero de inodo).

A diferencia de los inodos, que tienen un número fijo y se asignan en una parte especial del sistema de archivos, los bloques indirectos pueden ser de cualquier número y se asignan en la misma parte del sistema de archivos que los bloques de datos. El número de punteros en los bloques indirectos depende del tamaño del bloque y del tamaño de los punteros de bloque. Ejemplo: con un tamaño de bloque de 512 bytes y punteros de bloque de 4 bytes, cada bloque indirecto puede constar de 128 (512/4) punteros.