Soporte de archivos grandes


Soporte de archivos grandes ( LFS ) es el término que se aplica con frecuencia a la capacidad de crear archivos de más de 2 o 4  GiB en sistemas de archivos de 32 bits .

Tradicionalmente, muchos sistemas operativos y sus implementaciones de sistemas de archivos subyacentes usaban números enteros de 32 bits para representar tamaños y posiciones de archivos . En consecuencia, ningún archivo puede tener un tamaño superior a 2 32 - 1 bytes (4 GiB - 1). En muchas implementaciones, el problema se agravó al tratar los tamaños como números con signo , lo que redujo aún más el límite a 2 31 - 1 bytes (2 GiB - 1). Los archivos que eran demasiado grandes para que los manejaran los sistemas operativos de 32 bits se conocieron como archivos grandes .

Si bien el límite era bastante aceptable en un momento en que los discos duros eran más pequeños, el aumento general de la capacidad de almacenamiento combinado con un mayor uso de archivos de escritorio y servidor, especialmente para archivos de base de datos y multimedia , generó una intensa presión para que los proveedores de sistemas operativos superaran la limitación.

En 1996, varios proveedores respondieron formando una iniciativa de la industria conocida como Large File Summit para admitir archivos grandes en POSIX (en ese momento, Windows NT ya admitía archivos grandes en NTFS), un trasfondo obvio de "LFS". A la cumbre se le encomendó la tarea de definir una forma estandarizada de cambiar a números de 64 bits para representar el tamaño de los archivos. [1]

Este cambio provocó problemas de implementación y requirió modificaciones de diseño, cuyas consecuencias aún se pueden ver:

El uso de la API de archivos grandes en programas de 32 bits había sido incompleto durante mucho tiempo. Un análisis mostró en 2002 que muchas bibliotecas base de sistemas operativos todavía se enviaban sin soporte para archivos grandes, lo que limitaba las aplicaciones que las usaban. [3] La biblioteca zlib muy utilizada comenzó a admitir archivos grandes de 64 bits en una plataforma de 32 bits no antes de 2006. [4]