En informática , una extensión es un área contigua de almacenamiento reservada para un archivo en un sistema de archivos , representada como un rango de números de bloque o pistas en dispositivos de datos clave de conteo . Un archivo puede constar de cero o más extensiones; un fragmento de archivo requiere una extensión. El beneficio directo es almacenar cada rango de forma compacta como dos números, en lugar de almacenar canónicamente cada número de bloque en el rango. [1] Además, la asignación de extensiones da como resultado una menor fragmentación de archivos .
Los sistemas de archivos basados en extensión también pueden eliminar la mayor parte de la sobrecarga de metadatos de archivos grandes que tradicionalmente ocuparía el árbol de asignación de bloques. Pero debido a que los ahorros son pequeños en comparación con la cantidad de datos almacenados (para todos los tamaños de archivos en general) pero constituyen una gran parte de los metadatos (para archivos grandes), los beneficios generales en eficiencia y rendimiento del almacenamiento son leves. [2]
Para resistir la fragmentación, varios sistemas de archivos basados en extensiones asignan al descargar . Muchos sistemas de archivos modernos tolerantes a fallos también realizan copia en escritura , aunque eso aumenta la fragmentación. Como diseño similar, el sistema de archivos CP/M también utiliza extensiones, pero no corresponden a la definición dada anteriormente. Las extensiones de CP/M aparecen de forma contigua como un único bloque en la tabla combinada de directorio/asignación y no necesariamente corresponden a un área de datos contigua en el disco.
IBM OS/360 y sus sucesores asignan archivos en múltiples pistas de disco o cilindros . Originalmente, los archivos podían tener hasta 16 extensiones, pero desde entonces esta restricción se ha eliminado. El usuario especifica el tamaño de asignación inicial y el tamaño de las extensiones adicionales que se asignarán si es necesario a través del lenguaje de control de trabajo . El sistema intenta asignar el tamaño inicial como un área contigua, aunque puede dividirse si no hay espacio contiguo disponible.
Los sistemas que admiten extensiones del sistema de archivos incluyen los siguientes:
Sin embargo, lo que realmente supone un cambio para EXT4 es el uso de extensiones en lugar del antiguo e ineficiente mecanismo de bloqueo indirecto utilizado por los anteriores sistemas de archivos Unix (por ejemplo, EXT2 y EXT3) para rastrear el contenido de los archivos. Las extensiones son similares a las ejecuciones de clústeres en el sistema de archivos NTFS; Básicamente, especifican una dirección de bloque inicial y el número de bloques que componen la extensión. Un archivo fragmentado tendrá múltiples extensiones, pero EXT4 se esfuerza mucho por mantener los archivos contiguos.
Si flex_bg está habilitado, es posible asignar archivos muy grandes con una única extensión, con una reducción considerable en el uso de bloques de metadatos y cierta mejora en la eficiencia del disco.