FAT

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar

El sistema de archivos FAT (File Allocation Table, tabla de asignación de archivos) utiliza junto a la tabla de entrada de ficheros una tabla, llamada tabla de asignación de ficheros (o tabla FAT). FAT es un sistema de archivos sencillo, lo que lo hace muy popular en la gestión de discos y otras memorias secundarias externas y que sea aceptado por todos los sistemas operativos existentes (por lo que también es utilizado como mecanismo de intercambio de ficheros entre sistemas operativos distintos y coexistentes en el mismo equipo). Sin embargo FAT tiene bastantes desventajas:

  • Tiende a dejar fragmentos de los ficheros tras borrarlos, lo que con el tiempo ralentiza las operaciones L/E.
  • No es redundante a fallos (ante fallos, como fallos eléctricos, puede dejar el sistema en un estado incongruente).
  • Fue diseñado para ficheros de tamaño reducido.
  • No soporta permisos de seguridad.

Estructura

Se dispone de la tabla de asignación de ficheros (File Allocation Table, de ahí las siglas FAT) en la que cada entrada de la tabla representa un bloque del disco. Cada entrada puede tener uno de los siguientes valores:

  • Bloque libre: FREE
  • Bloque defectuoso: BAD
  • Último bloque de un archivo: EOF
  • Cualquier otro número: bloque asignado, y el número es el número del siguiente bloque
  • Entradas 0 y 1: reservadas


Estructura FAT


Nota: Si alguien quiere editar la imagen para mejorarla (iba a ser eliminada, resubida (original de Robertomartin): [Editar imagen] --Jesparcar1 16:25 15 ene 2014 (UTC)

FAT 12

La versión inicial de FAT se conoce ahora como FAT12. Es un sistema de archivos para disquete, por lo que tiene varias limitaciones:

  • No soporta anidación de carpeta.
  • Las direcciones de bloque solamente contienen 12 bits. Esto complica la implementación.
  • El tamaño del disco se almacena como una cuenta de 16 bits expresada en sectores, lo que limita el espacio manejable a 32 megabytes.

En aquella época, el habitual disquete (5,25 pulgadas en una sola cara) constaba de 40 pistas con 8 sectores por pista, resultando en una capacidad inferior a 160 kilobytes. Este límite excedía la capacidad en más de un orden de magnitud, y al mismo tiempo, permitía encajar todas las estructuras de control en la primera pista. Por tanto, se evitaba el movimiento de los cabezales en las operaciones de lectura y escritura. Estos límites fueron superados en los años posteriores.

Con el propósito de soportar el reciente IBM PC, que disponía de un disco duro de 10 megabytes, MS-DOS 2.0, y carpetas anidadas, simplemente se utilizaron clusters de 8 kilobytes en el disco duro. El formato de FAT en sí mismo no cambió.

En 1984, IBM lanzó el PC AT, con 20 megabytes de disco duro. Al mismo tiempo, Microsoft lanzó MS-DOS 3.0. Las direcciones de los cluster fueron ampliadas a 16 bits, permitiendo un número mayor de clusters (65.536 exactamente). Por tanto, soportaba mayores tamaños de sistema de archivos. A pesar de todo, no hubo mejoras en el límite máximo de 32 megabytes.

MS-DOS 3.0 también incorporó soporte a disquetes de alta densidad de 5,25 pulgadas (1,2 megabytes de capacidad), con 15 sectores por pista, y en consecuencia, más espacio para FAT. Esto probablemente forzó una dudosa optimización del tamaño del clúster, que bajó de dos sectores a sólo uno. El efecto global fue una reducción significativa de los tiempos de lectura y escritura frente a los disquetes de doble densidad.

FAT 16

En 1987 apareció lo que hoy se conoce como el formato FAT16. Se eliminó el contador de sectores de 16 bits. El tamaño de la partición ahora estaba limitado por la cuenta de sectores por clúster, que era de 8 bits. Esto obligaba a usar clusters de 32 Kbytes con los usuales 512 bytes por sector. Así que el límite definitivo de FAT16 se situó en los 2 gigabytes.

Esta mejora estuvo disponible en 1988 gracias a MS-DOS 4.0. Mucho más tarde, Windows NT aumentó el tamaño máximo del cluster a 64 kilobytes gracias al "truco" de considerar la cuenta de clusters como un entero sin signo. No obstante, el formato resultante no era compatible con otras implementaciones de la época, y además, generaba mas fragmentación interna (se ocupaban clusters enteros aunque solamente se precisaran unos pocos bytes). Windows 98 fue compatible con esta extensión en lo referente a lectura y escritura. Sin embargo, sus utilidades de disco no eran capaces de trabajar con ella.

FAT 32

FAT32 fue la respuesta para superar el límite de tamaño de FAT16 al mismo tiempo que se mantenía la compatibilidad con MS-DOS en modo real. Microsoft decidió implementar una nueva generación de FAT utilizando direcciones de cluster[1] de 32 bits (aunque sólo 28 de esos bits se utilizaban realmente).

En teoría, esto debería permitir aproximadamente 268.435.538 clusters, arrojando tamaños de almacenamiento cercanos a los ocho terabytes. Sin embargo, debido a limitaciones en la utilidad ScanDisk de Microsoft, no se permite que FAT32 crezca más allá de 4.177.920 clusters por partición (es decir, unos 124 gigabytes). Posteriormente, Windows 2000 y XP situaron el límite de FAT32 en los 32 gigabytes. Microsoft afirma que es una decisión de diseño, sin embargo, es capaz de leer particiones mayores creadas por otros medios.

FAT32 apareció por primera vez en Windows 95 OSR2. Era necesario reformatear para usar las ventajas de FAT32. Curiosamente, DriveSpace 3 (incluido con Windows 95 y 98) no lo soportaba. Windows 98 incorporó una herramienta para convertir de FAT16 a FAT32 sin pérdida de los datos. Este soporte no estuvo disponible en la línea empresarial hasta Windows 2000.

El tamaño máximo de un archivo en FAT32 es 4 gigabytes (2^32−1 bytes), ya que el campo que indica el tamaño de un archivo ocupa 32 bits. Esto resulta engorroso para aplicaciones de captura y edición de video, ya que los archivos generados por éstas superan fácilmente ese límite.

http://www.pjrc.com/tech/8051/ide/fat32.html

exFAT

exFAT (Extended File Allocation Table,tabla extendida de asignación de archivos),tambièn conocido como FAT 64, es un sistema de archivos, patentado y privativo de Microsoft, especialmente optimizado para memorias flash presentado con Windows CE (Windows Embedded CE 6.0). exFAT ha sido adoptado por SD Card Association como el sistema de archivos predeterminado para tarjetas SDXC de más de 32 GiB.

Ventajas:

-Límite teórico para el tamaño de fichero de 2^64 bytes (16 Exbibytes), límite aumentado desde 2^32 bytes (4 Gibibytes).

-Tamaño de clúster de hasta 2^255 bytes, límite implementado de 32MB.

-Mejoras en el rendimiento de la asignación de espacio libre gracias a la introducción de un free space bitmap.

-Soporte de 2.796.202 ficheros por directorio.

-Soporte de 2.796.202 directorios por partición. Lo que permite almacenar hasta 7,8 billones de archivos.

-Soporte para listas de control de acceso.

-Multiplataforma, tanto Mac OS X como Microsoft Windows soportan lectura y escritura de forma nativa.

Al igual que NTFS, exFAT puede preasignar espacio en disco para un archivo simplemente marcando el espacio arbitrario en el disco como 'asignado'. Para cada archivo, exFAT utiliza dos campos de longitud de 64 bits separados en el directorio: la Longitud de Datos Válidos (VDL) que indica el tamaño real del archivo y la longitud de los datos físicos.

exFAT y el resto de la familia de sistemas de archivos FAT no utiliza índices para nombres de archivos, a diferencia de NTFS y ext que utilizan árboles para la búsqueda de archivos. Cuando se accede a un archivo, el directorio debe buscarse secuencialmente hasta que se encuentre una coincidencia.


12.3 EXT2