Ir al contenido

Diferencia entre revisiones de «Tabla de asignación de archivos»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Sin resumen de edición
SeroBOT (discusión · contribs.)
m Revertida una edición de 189.250.143.90 (disc.) a la última edición de Jcarlos sp
Etiqueta: Reversión
 
(No se muestran 727 ediciones intermedias de más de 100 usuarios)
Línea 1: Línea 1:
{{redirige|FAT}}
<!--note: this is meant to look as similar as possible to [[template:infobox filesystem]] whilst covering all 3 filesystems please make any style changes to both at the same time.-->
{| class="infobox bordered" width=50% style="float: right; margin: 0 0 1em 1em; font-size: 90%; clear: right; text-align: center;" cellspacing="5"
{| class="infobox bordered" width=50% style="float: right; margin: 0 0 1em 1em; font-size: 90%; clear: right; text-align: center;" cellspacing="5"
|-style="text-align: center; font-size: larger; margin-left: inherit" bgcolor="lightgreen"
|-style="text-align: center; font-size: larger; margin-left: inherit" bgcolor="lightgreen";
| bgcolor=white | || '''FAT12''' || '''FAT16''' || '''FAT32'''
| bgcolor=white | || FAT12 || FAT16 || FAT32
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" | [[Desarrollador de Software|Desarrollador]]
! bgcolor="lightgrey" | Desarrollador
| colspan=3| [[Microsoft]]
| colspan="3" | Microsoft
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" rowspan=2| Full Name
! bgcolor="lightgrey" rowspan="2" | Nombre completo
|colspan=3| Tabla de asignacion de Archivos
| colspan="3" | Tabla de Asignación de Archivos
|-
|-
| (version de 12-bits) || (version de 16-bit) || (version de 32-bit)
| (versión de 12 bits) || (versión de 16 bits) || (versión de 32 bits)
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" | Introducido
! bgcolor="lightgrey" | Introducido
| FAT12: 1980-08 (SCP 86-DOS 0.42)<!-- a FAT12-precursor was introduced a few months earlier by Tim Paterson with SCP QDOS, but it used 16-byte directory entries and is therefore not compatible with FAT12. FAT "as is" was invented earlier by Marc McDonald in 1980, but it was still an 8-bit FAT then --> || FAT16: 1984-08 (PC DOS 3.0), FAT16B: 1987-11 (Compaq MS-DOS 3.31) || FAT32: 1996-08 (Windows 95 OSR2)
| [[1977]] ([[BASIC|Microsoft Disk BASIC]]) || Julio [[1988]] ([[MS-DOS]] 4.0) || Agosto [[1996]] ([[Windows 95]] OSR2)
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" | [[Particion|Identificador de Particion]]
! bgcolor="lightgrey" | Identificador de partición
| 0x01 ([[MBR]]) || 0x04, 0x06, 0x0E ([[MBR]]) || 0x0B, 0x0C ([[MBR]]) <br> <small>EBD0A0A2-B9E5-4433<br>-87C0-68B6B72699C7</small> ([[GPT]])
| 0x01<!-- FAT12 --> (MBR) || 0x04<!-- FAT16 -->, 0x06<!-- FAT16B -->, 0x0E<!-- FAT16X --> (MBR) || 0x0B<!-- FAT32 -->, 0x0C<!-- FAT32X --> (MBR)<br />EBD0A0A2-B9E5-4433<br />-87C0-68B6B72699C7 (GPT)
|-style="text-align: center; margin-left: inherit" bgcolor="lightgreen"
|-style="text-align: center; margin-left: inherit" bgcolor="lightgreen"
! Structures || '''FAT12''' || '''FAT16''' || '''FAT32'''
! Estructuras|| FAT12 || FAT16 || FAT32
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" | Contenido del Directorio
! bgcolor="lightgrey" | Contenido de carpeta
|colspan="3" align="center"|Tabla
| colspan="3" align="center" |Tabla
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" | Ubicacion de archivo
! bgcolor="lightgrey" | Ubicación de archivo
|colspan="3" align="center"|Linked List
| colspan="3" align="center" |Lista enlazada
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" | Bad blocks
! bgcolor="lightgrey" | Bloques defectuosos
|colspan="3" align="center"|Linked List
| colspan="3" align="center" |Lista enlazada
|- style="text-align: center; margin-left: inherit" bgcolor="lightgreen"
|- style="text-align: center; margin-left: inherit" bgcolor="lightgreen"
! Limits || '''FAT12''' || '''FAT16''' || '''FAT32'''
! Límites || FAT12 || FAT16 || FAT32
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" | Max file size
! bgcolor="lightgrey" | Tamaño máximo de archivo
| 32 [[mebibyte|MiB]]
| 32 [[mebibyte|MiB]] || 2 [[gibibyte|GiB]] (4 GiB - 1) || 4 GiB - 1
|- style="vertical-align: center;"
|colspan="2" align="center"|4 [[gibibyte|GiB]]
! bgcolor="lightgrey" | Número máximo de archivos
|- style="vertical-align: top;"
| 4.068 para clústers de 8 KiB || 65.460 para clústers de 32 KiB || 268.173.300 para clústers de 32 KiB
! bgcolor="lightgrey" | Max number of files
|- style="vertical-align: center;"
| 4077 || 65517 || 268435437
! bgcolor="lightgrey" | Longitud máxima del nombre de archivo
|- style="vertical-align: top;"
| colspan="3" | 8.3 (11) o 255 caracteres cuando se usan LFNs (Long File Names)
! bgcolor="lightgrey" | Max filename size
|- style="vertical-align: right;"
|colspan=3| 8.3 or 255 characters when using LFNs
! bgcolor="lightgrey" | Tamaño máximo del volumen
|- style="vertical-align: top;"
| 32 MiB || 2 GiB (4 GiB en Windows NT) || 10 [[tebibyte|TiB]]
! bgcolor="lightgrey" | Max volume size
| 32 [[mebibyte|MiB]] || 4 [[gibibyte|GiB]] || 2 [[tebibyte|TiB]]
|- style="text-align: center; margin-left: inherit" bgcolor="lightgreen"
|- style="text-align: center; margin-left: inherit" bgcolor="lightgreen"
!| Features || '''FAT12''' || '''FAT16''' || '''FAT32'''
!| Características || FAT12 || FAT16 || FAT32
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" | Dates recorded
! bgcolor="lightgrey" | Fechas almacenadas
|colspan=3| Creation, modified, access
| colspan="3" | Creación, modificación, acceso
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" | Date range
! bgcolor="lightgrey" | Rango de fechas soportado
| colspan="3" | 1 de enero de 1980-31 de diciembre de 2107<!-- NOTA: Por favor, no modificar, el año 2107 es correcto. -->
|colspan=3| [[January 1]], [[1980]] - [[December 31]], [[2107]]
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" | [[Fork (filesystem)|Forks]]
! bgcolor="lightgrey" | Metadatos
| colspan="3" | No de modo nativo
|colspan=3| [[#FAT_and_Alternate_Data_Streams|Not natively]]
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" | Attributes
! bgcolor="lightgrey" | Atributos
| colspan=3| Read-only, hidden, system, archive, volume name
| colspan="3" | Solo lectura, oculto, sistema, archivo, nombre del volumen
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" | [[File system permissions|Permissions]]
! bgcolor="lightgrey" | Permisos
|colspan="3" align="center"|No
| colspan="3" align="center" |No
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" | Transparent compression
! bgcolor="lightgrey" | Compresión transparente
|colspan=2| Per-volume, [[Stac_Electronics|Stacker]], [[DoubleSpace]], [[DriveSpace]] || No <!--check this one: i know dr-dos supports fat32 so this could be wrong [[User:Plugwash|Plugwash]] 20:20, 8 September 2005 (UTC)-->
| colspan="2" | Por volumen, Stacker, DoubleSpace, DriveSpace || No <!--ATENCIÓN: se conoce que [[DR-DOS]] soporta FAT32, de modo que esto podría ser incorrecto (por[[User:Plugwash|Plugwash]] el 8 de septiembre de 2.005, a las 20:20 (UTC), traducido por Maestro Jedi)-->
|- style="vertical-align: top;"
|- style="vertical-align: center;"
! bgcolor="lightgrey" | Transparent encryption
! bgcolor="lightgrey" | Cifrado transparente
|colspan=2| Per-volume only with [[DR-DOS]] || No <!--check this one: i know dr-dos supports fat32 so this looks wrong [[User:Plugwash|Plugwash]] 20:01, 8 September 2005 (UTC)-->
| colspan="2" | Por volumen solo con [[DR-DOS]] || No <!--ATENCIÓN: se conoce que DR-DOS soporta FAT32, de modo que esto podría ser incorrecto (por[[User:Plugwash|Plugwash]] el 8 de septiembre de 2.005, a las 20:01 (UTC), traducido por Maestro Jedi)-->
|}
|}


'''Tabla de asignación de archivos''', comúnmente conocido como '''FAT''' (del inglés ''file allocation table''), es un [[sistema de archivos]] desarrollado para [[MS-DOS]], así como el sistema de archivos principal de las ediciones no empresariales de [[Microsoft Windows]] hasta [[Windows Me]].
'''Tabla de Asignación de Archivos''' ('''FAT''') ( del inglés File Allocation Table)es un [[sistema de archivos]] que fue desarrollado para [[MS-DOS]] y es el sistema de archivos principal para las versiones comerciales de [[Microsoft Windows]] hasta [[Windows Me]] inclusive. El sistema de archivos FAT es considerado relativamente sencillo, y por ello, es un formato popular para [[disquete]]s; más aun, tiene soporte de casi todos los [[sistemas operativos]] existentes para [[computadoras personales]], y por eso, es comúnmente usado para compartir data entre diversos [[sistemas operativos]] que 'booteen' en una misma computadora (un ambiente multiarranque). También es usado en media sólida [[memory card]]s y aparatos similares. Las implementaciones más comunes tienen una gran desventaja en cuanto a que cuando a que cuando los archivos viejos son borrados y nuevos archivos son escritos los fragmentos de los archivos tienden para dispersarse, lo que hace que la lectura y la escritura sean procesos muy lentos. La Desfragmentación es una solución a esto, pero ,a menudo, resulta un proceso muy largo en sí mismo y tiene que ser repetido regularmente para mantener el sistema de archivos FAT limpio.
==Historia ==
El sistema de archivos FAT fue inventado por [[Bill Gates ]] y [[Marc McDonald]] en [[1977]] para manejar discos [[Microsoft BASIC|Microsoft Disk BASIC]] y fue incorporado por [[Tim Paterson]] en agosto de [[1980]] a su sistema operativo [[QDOS|86-DOS]] para [[S-100]] [[8086]] los tableros de CPU; el sistema de archivos era la diferencia principal entre 86-DOS y [[CP/M]], de la cual 86-DOS era sobre todo una copia {{ref|fatOrigin}}
===FAT 12===
Esta versión inicial del FAT ahora se conoce como '''FAT12'''. Como sistema de archivos para las diskettes, tenía un número de limitaciones: no tena soporte para los directorios jerárquicos, [[racimo (system)|cluster del archivo]] las direcciones slo 12-bits de largo (lo que hizo el código que manipulaba el FAT un poco difícil) y el tamaño del disco fue almacenado como múltiplo 16-bit de [[la Cilindro-cabeza-sector|sectores]], que limitó el tamaño a 32MB. Un diskette del entrada-nivel sería en ese entonces el 5.25", single-sided, 40 [[Cilindro-cabeza-sector|track]]s, con 8 sectores por pista, dando por resultado una capacidad levemente de menos que 160KB. Los límites antedichos excedieron esta capacidad por unas o más órdenes de la magnitud y en el mismo tiempo permitido caber todas las estructuras del control dentro de la primera pista, así evitando el movimiento principal durante leído y escribir operaciones. Los límites sucesivamente fueron levantados en los años siguientes. Para apoyar correctamente la computadora más nueva de la PC XT de la IBM, que ofreció un disco duro del MB 10, el MS-DOS 2.0 fue lanzado alrededor del mismo tiempo, al principio de [[1983]], e introdujo directorios jerárquicos. El formato del FAT sí mismo no cambió. El disco duro en la PC XT tenía racimos de 8 KB. En [[1984]] la IBM lanzó la PC EN, que ofreció un disco duro del MB 20. Microsoft introdujo el MS-DOS 3.0 en paralelo. Las direcciones del racimo fueron aumentadas a 16-bit, permitiendo para un mayor número de los racimos (hasta 65.536) y de tamaños por lo tanto mucho mayores del filesystem. Sin embargo, el número posible máximo de sectores y (partición, más bien que disco) el tamaño máximo de MB 32 no cambiaron. Ayuda también introducida del MS-DOS 3.0 para la alta densidad 1.2 diskettes del MB el 5.25", que tenían notablemente 15 sectores por pista, por lo tanto más espacio para el FAT. Esto incitó probablemente una optimización dudosa del tamaño del racimo, que fue abajo a partir de 2 sectores a apenas 1. El efecto neto era que los diskettes de alta densidad eran perceptiblemente más lentos que un más viejo ' ' '' de la densidad doble unos.


FAT es relativamente sencillo. A causa de ello, es un formato popular para [[disquete]]s admitido prácticamente por todos los [[Sistema operativo|sistemas operativos]] existentes para [[computadora personal]]. Se utiliza como mecanismo de intercambio de datos entre sistemas operativos distintos que coexisten en la misma [[computadora]], lo que se conoce como [[entorno multiarranque]]. También se utiliza en [[Tarjeta de memoria|tarjetas de memoria]] y dispositivos similares.
===FAT 16===
En [[1987]] finalmente vino qué hoy se llama ' ' el formato del '' FAT16, con el retiro del contador 16-bit de los sectores del disco, adentro [[Compaq]] el DOS 3.31. En [ [ 1988 ] ] la mejora se convirtió el MS-DOS directo generalmente disponible 4.0. El tamaño de la partición ahora fue limitado por la cuenta firmada 8-bit de sectores por el racimo, que podría alcanzar un máximo energi'a--dos del valor de 64, dando racimos de 32 KB con los 512 octetos generalmente por sector, por lo tanto fijando el límite "definitivo" para el tamaño de la partición FAT16 en 2 [[los gigabyte]]s. Mucho más adelante, Windows NT aumentó el tamaño máximo del racimo a 64K considerando el sector por cuenta del racimo como sin firmar. Sin embargo el formato que resultaba no era compatible con ninguna otra puesta en práctica del FAT del tiempo y del realmente enorme generada [[fragmentación interna|fragmentación]] de todos modos. La lectura y la escritura también apoyadas de Windows 98 esta variante sino sus utilidades de disco no trabajaron con ella.
=== VFAT ===
Windows 3.11 de FASTFAT introdujeron un nuevo esquema para tener acceso a filesystems, usando un conductor protegido 32-bit del filesystem del modo fuera del núcleo del DOS, usando directamente BIOS o el acceso del hardware (cuando esta' disponible) al disco, que también integró depositar, haciendo accesos más rápidos que con el DOS en conductor del núcleo. Fue llamado Virtual FAT (o '''VFAT'''). Windows NT 3.1 proporcionó el mismo acercamiento, llamándolo '''FASTFAT''', no obstante en una diversa manera pues es natural que un conductor del filesystem en el NT utilice modo protegido 32-bit. Como VFAT, se deposita FASTFAT. Se confunde comúnmente con la ayuda de LFN, como casi nadie configuró Windows 3.11 para utilizar VFAT y fue permitida automáticamente (y también fue realzado para apoyar LFNs) en Windows 95. el
=== LFNs (Nombres Largos para Archivos)===
De las metas de la experiencia del usuario para los diseñadores de Windows 95 era el uso de los nombres largos del archivo (conocidos como LFNs para el cortocircuito) en el nuevo sistema operativo. Éstos fueron puestos en ejecucio'n usando un work-around en la manera que se presentan las entradas en la guía (véase abajo). La versión del sistema de ficheros con este extention se conoce generalmente como VFAT después del driver de dispositivo de Windows 95 [[VxD]] que primero lo apoyó. Los nombres largos del archivo también son apoyados por Windows NT 3.5 (FASTFAT 1.1) y arriba. === del === FAT32 Para superar el volumen clasifique el límite de FAT16 mientras que todavía permite que el código del verdadero-modo del DOS maneje el formato sin innecesariamente la reducción del availible [[memoria convencional]], Microsoft decidido para poner una más nueva generación en ejecucio'n del FAT, conocida como '''FAT32''', con los números 32-bit del racimo, de los cuales 28 pedacitos se utilizan actualmente. En teoría, esto debe apoyar un total de aproximadamente 268.435.438 (28) racimos, teniendo en cuenta tamaños de la impulsión en la gama de 2 [[terabyte]]s. Sin embargo, debido a las limitaciones en la utilidad de Microsoft [[scandisk]], el FAT no se permite crecer más allá de 4.177.920 (24) racimos, poniendo el límite del volumen en 124.55 gigabytes, a menos que el "scandisk" no sea [ http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q184006& ] Windows necesario 2000 y XP puso un límite en el tamaño de las particiones FAT32 que él puede crear en 32 GB; Microsoft dice que éste está por diseño pero que no explica porqué, y esas versiones de Windows son absolutamente capaces de particiones más grandes FAT32 de la lectura y de la escritura creadas por otros medios. FAT32 fue introducido con Windows 95 OSR2, aunque el cambio de formato era necesario utilizar las ventajas FAT32, y [ [ DriveSpace ] ] 3 (la versión que vinieron con Windows 95 OSR2 y Windows 98) nunca lo apoyaron. Windows 98 introdujo una utilidad para convertir discos duros existentes de FAT16 a FAT32 sin la pérdida de datos. La ayuda en la línea del NT vino con Windows 2000. El tamaño del archivo posible máximo para un volumen FAT32 es la llave 4 menos 1 octeto (2 32 -1 octetos). Para la mayoría de los usuarios, éste se ha convertido en el límite que regañaba lo ma's de FAT32 [[2005]], puesto que la captura video y corregir usos puede exceder fácilmente este límite, al igual que el sistema [[ archivo del intercambio ]]. === de la ayuda de los terceros del === El systems—such de funcionamiento de la PC de la IBM del alternativa como [ [ Linux ] ], [ [ FreeBSD ] ], y [ [ BeOS]]—have todo apoyó el FAT, y la ayuda ganada para VFAT y FAT32 poco después las versiones apropiadas de Windows fue lanzada. Las distribuciones tempranas de Linux también apoyaron un formato conocido como [ [ UMSDOS ] ], que no era nada más que el FAT con las características de archivo de UNIX (e.g. nombre del archivo y los permisos de acceso largos) almacenadas en un archivo separado llamó -- linux -. UMSDOS bajó en disuse después de que VFAT fuera lanzado y se ha caído de versiones recientes del [ [ núcleo de Linux ] ]. [ [ OS X del mac ] ] el sistema operativo también apoya los filesystems del FAT en volúmenes con excepción de [ [ disco del cargador ] ]. el FAT del === y el === alterno de las secuencias de datos el filesystem sí mismo del FAT no se diseña para suporting [ [ bifurcación (filesystem)|ADS ] ], pero algunos sistemas que depende pesadamente de ellos creó los varios métodos para manejarlos en impulsiones del FAT. [ [ OS del mac ] ] el usar [ [ intercambio de la PC ] ] almacena sus diversas fechas y cualidades del archivo, los nombres de fichero largos y las bifurcaciones del recurso (un ADS) en un archivo ocultado llamado FINDER.DAT en cada directorio donde se utilizan. Del intercambio 2.1 de la PC almacenan los nombres de fichero largos del OS del mac como nombres de fichero largos estándares del FAT y convierten nombres de fichero largos del FAT más en gran parte de 31 caracteres a un nombre de fichero único de 31 caracteres. [[OS X del mac]] almacena todos sus datos específicos (el recurso bifurca, diverso ADS, cualidades del archivo) en un archivo ocultado llamado exactamente como su dueño pero comenzando con "._", y cuando los datos están de una carpeta las almacena dentro de la carpeta en un archivo ocultado llamado "DS_Store" en cualquier filesystem con excepción de [[archivo jerárquico System|HFS]] y [[HFS Plus|HFS+]]. [[OS/2]] depende pesadamente encendido [[Ettribute]]s extendido (otro ADS) y los almacena en un archivo ocultado llamado "EA.DATA..SF" en el directorio de raíz del volumen del FAT. Las cualidades extendidas son accesibles vía [[cáscara del lugar de trabajo]] el tablero del escritorio, a través [[REXX]] las escrituras, y mucho sistema [[interface|GUI gráfico del usuario]] y [[línea de comando interface|command-li'nea]] las utilidades (por ejemplo [ [ 4DOS|4OS2 ] ]). [[Windows NT]] apoya la dirección de cualidades extendidas toda la manera en HPFS, [[NTFS]] y el FAT (que usa exactamente el mismo esquema que OS/2), solamente no ninguna otra clase de ADS almacenada en impulsiones de NTFS. El intentar copiar un archivo con cualquier ADS diferente de EAs de un NTFS conduce a las demostraciones de una impulsión del FAT un mensaje de alerta que nombra el ADS que usted perdido. [[Windows 2000]] el acto hacia adelante exactamente como Windows NT pero no hace caso de EAs al copiar a FAT32 sin demostrar ninguna advertencia (pero demuestra la advertencia para cualquier otro ADS, como el "buscador Info de Macintosh" y "la bifurcación del recurso de Macintosh"). el === futuro Microsoft del === intentado recientemente para asegurar las patentes existentes para VFAT y FAT32, que causaron la preocupación que puede ser que busquen más adelante derechos de los distros de Linux y de los vendedores de los medios que preformatean sus productos (véase el FAT el licenciar abajo). Esto sin embargo fue rechazada de octubre el 6 de 2005. Puesto que Microsoft ha anunciado la discontinuación de su [[los sistemas operativos Ms-DOS]]-basados del consumidor con Windows yo, sigue siendo inverosímil que aparecerán algunas nuevas versiones del FAT. Para la mayoría de los propósitos, [[NTFS]] el sistema de ficheros que fue desarrollado para la línea de Windows NT es superior al FAT de los puntos de la vista de la eficacia, del funcionamiento y de la confiabilidad; sus desventajas principales son el tamaño de arriba para los volúmenes pequeños y la ayuda muy limitada por cualquier cosa con excepción de las versiones NT-BASADAS de Windows, puesto que la especificación exacta es a [[el secreto comercial]] de Microsoft, que alternadamente las marcas él difícil de utilizar un disco blando del DOS para los propósitos de la recuperación. Microsoft proporcionó a [[consola de la recuperación]] al trabajo alrededor de esta edición, pero se limitaron seriamente qué se podría hacer con él por razones de la "seguridad". El FAT sigue siendo el filesystem normal para los medios desprendibles, con FAT12 usado en los discos blandos, y FAT16 en la mayoría de las otras tarjetas desprendibles de los medios (por ejemplo [[memoria de destello]] para [[los camera]]s digitales y [[USB]] las impulsiones del flash). La mayoría de los medios desprendibles no son todavía lo suficientemente grandes para beneficiarse de FAT32.


Las implementaciones más extendidas de FAT tienen algunas desventajas. Cuando se borran y se escriben nuevos archivos tiende a dejar [[Fragmentación de un sistema de ficheros|fragmentos dispersos]] de estos por todo el soporte. Con el tiempo, esto hace que el proceso de lectura o escritura sea cada vez más lento. La denominada ''[[desfragmentación]]'' es la solución a esto, pero es un proceso largo que debe repetirse regularmente para mantener el sistema de archivos en perfectas condiciones. FAT tampoco fue diseñado para ser redundante ante fallos. Inicialmente solamente soportaba nombres cortos de archivo: ocho caracteres para el nombre más tres para la extensión.


== Historia y versiones ==
{{en desarrollo}}


El sistema de archivos FAT fue creado por Mac basado en una serie de conversaciones entre Mac y [[Bill Gates]]. Fue incorporado por primera vez en el sistema operativo [[QDOS]] por [[Tim Paterson]] en agosto de 1980, para los computadores [[S-100]] de arquitectura [[Intel 8086]]. Este sistema de archivos fue la principal diferencia entre QDOS y [[CP/M]].
[[Categoría:Sistemas de archivos]]

=== FAT12 ===

* 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 [[megabyte]]s.

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 [[kilobyte]]s. 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 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 solo uno. El efecto global fue una reducción significativa de los tiempos de lectura y escritura frente a los disquetes de doble densidad.


Estructura de la FAT12 en un disquete de 1,44M:

{|
|-
|style="background-color: rgb(180,180,180); color: black"| 512 Byte
|style="background-color: rgb(180,180,180); color: black"| Primer sector físico del disco flexible (Pista Cero)
{|
|-
|style="background-color: rgb(200,200,200); color: black"| 3 Byte
|style="background-color: rgb(200,200,200); color: black"| [[Código máquina]] de salto ( jmp short 0x3E; nop )
|style="background-color: rgb(220,220,220); color: black"| 0EBh 03Ch 090h
|-
|style="background-color: rgb(200,200,200); color: black"| 8 Byte
|style="background-color: rgb(200,200,200); color: black"| Cadena que identifica el fabricante del disco
|style="background-color: rgb(220,220,220); color: black"| 'mkdosfs',0
|-
|style="background-color: rgb(200,200,200); color: black"| 2 Byte
|style="background-color: rgb(200,200,200); color: black"| Bytes por sector
|style="background-color: rgb(220,220,220); color: black"| 512
|-
|style="background-color: rgb(200,200,200); color: black"| 1 Byte
|style="background-color: rgb(200,200,200); color: black"| Sectores por clúster
|style="background-color: rgb(220,220,220); color: black"| 1
|-
|style="background-color: rgb(200,200,200); color: black"| 2 Byte
|style="background-color: rgb(200,200,200); color: black"| Sectores reservados
|style="background-color: rgb(220,220,220); color: black"| 1
|-
|style="background-color: rgb(200,200,200); color: black"| 1 Byte
|style="background-color: rgb(200,200,200); color: black"| Número de FAT's
|style="background-color: rgb(220,220,220); color: black"| 2
|-
|style="background-color: rgb(200,200,200); color: black"| 2 Byte
|style="background-color: rgb(200,200,200); color: black"| Entradas máximas en directorio raíz
|style="background-color: rgb(220,220,220); color: black"| 224
|-
|style="background-color: rgb(200,200,200); color: black"| 2 Byte
|style="background-color: rgb(200,200,200); color: black"| Sectores totales
|style="background-color: rgb(220,220,220); color: black"| 2880
|-
|style="background-color: rgb(200,200,200); color: black"| 1 Byte
|style="background-color: rgb(200,200,200); color: black"| Descriptor de medio (0F0h para discos de 1'44M)
|style="background-color: rgb(220,220,220); color: black"| 240
|-
|style="background-color: rgb(200,200,200); color: black"| 2 Byte
|style="background-color: rgb(200,200,200); color: black"| Sectores por fat
|style="background-color: rgb(220,220,220); color: black"| 9
|-
|style="background-color: rgb(200,200,200); color: black"| 2 Byte
|style="background-color: rgb(200,200,200); color: black"| Sectores por pista
|style="background-color: rgb(220,220,220); color: black"| 18
|-
|style="background-color: rgb(200,200,200); color: black"| 2 Byte
|style="background-color: rgb(200,200,200); color: black"| Número de caras
|style="background-color: rgb(220,220,220); color: black"| 2
|-
|style="background-color: rgb(200,200,200); color: black"| 4 Byte
|style="background-color: rgb(200,200,200); color: black"| Sectores ocultos
|style="background-color: rgb(220,220,220); color: black"| 0
|-
|style="background-color: rgb(200,200,200); color: black"| 4 Byte
|style="background-color: rgb(200,200,200); color: black"| Longitud total de sectores
|style="background-color: rgb(220,220,220); color: black"| 0
|-
|style="background-color: rgb(200,200,200); color: black"| 1 Byte
|style="background-color: rgb(200,200,200); color: black"| Número de unidad
|style="background-color: rgb(220,220,220); color: black"| 0
|-
|style="background-color: rgb(200,200,200); color: black"| 1 Byte
|style="background-color: rgb(200,200,200); color: black"| Banderas
|style="background-color: rgb(220,220,220); color: black"| 0
|-
|style="background-color: rgb(200,200,200); color: black"| 1 Byte
|style="background-color: rgb(200,200,200); color: black"| Firma (029h)
|style="background-color: rgb(220,220,220); color: black"| 41
|-
|style="background-color: rgb(200,200,200); color: black"| 4 Byte
|style="background-color: rgb(200,200,200); color: black"| Número de serie
|style="background-color: rgb(220,220,220); color: black"| 4294967295
|-
|style="background-color: rgb(200,200,200); color: black"| 12 Byte
|style="background-color: rgb(200,200,200); color: black"| Etiqueta de volumen
|style="background-color: rgb(220,220,220); color: black"| 'DISCO EJEMPLO'
|-
|style="background-color: rgb(200,200,200); color: black"| 8 Byte
|style="background-color: rgb(200,200,200); color: black"| Identificador de formato
|style="background-color: rgb(220,220,220); color: black"| 'FAT12'
|-
|style="background-color: rgb(200,200,200); color: black"| 446 Byte
|style="background-color: rgb(200,200,200); color: black"| Código máquina del cargador de arranque
|style="background-color: rgb(220,220,220); color: black"| [...]
|-

|style="background-color: rgb(200,200,200); color: black"| 2 Byte
|style="background-color: rgb(200,200,200); color: black"| Firma de unidad arrancable
|style="background-color: rgb(220,220,220); color: black"| 055AAh
|-
|}
|}

=== FAT16 ===

En 1987 apareció lo que hoy se conoce como «el formato FAT 16». 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 [[kibibyte|KiB]] con los usuales 512 bytes por sector. Así que el límite definitivo de FAT16 se situó en los 4 (2GiB por clúster) [[gibibyte|GiB]].

Esta mejora estuvo disponible en 1988. Mucho más tarde, [[Windows NT]] 4.0(1998) y [[Windows XP]] (2001) aumentaron el tamaño máximo del ''cluster'' a 64 kilobytes pudiendo crear particiones de hasta 4 GB. No obstante, el formato resultante no era compatible con otras implementaciones de la época, y además, generaba más [[Fragmentación de un sistema de ficheros|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.

=== VFAT y FASTFAT ===

[[Windows 3.11]] introdujo un nuevo esquema de acceso a los sistemas de archivos, usando el [[modo protegido]] de 32 bits (presente en los Intel 386 y posteriores) esquivando el núcleo de MS-DOS. Para ello, usaba directamente el [[BIOS]] o el ''hardware'' de la unidad de disco. Esto también permitía utilizar una [[caché (informática)|caché]], acelerando el acceso. Todo esto se denominó '''VFAT''' o FAT virtual.

[[Windows NT]] 3.1 proporcionaba la misma aproximación, pero denominándolo '''FASTFAT'''. Sin embargo, era natural que los controladores de Windows NT utilizasen el modo protegido de 32 bits. A menudo se confunde con el soporte ''LFN'' (nombres largos de archivo) ya que este estaba habilitado por defecto en Windows 95.

=== LFN o nombres largos de archivo ===

Uno de los objetivos de los diseñadores de Windows 95 fue el uso de nombres más largos para los archivos. Se implementó sobre FAT utilizando un truco en el modo de almacenar los índices de los directorios. Esta implementación también se conoce como VFAT por culpa del controlador de Windows 95 que lo incorporó por primera vez. Los nombres largos también se soportaron en Windows NT a partir de la versión 3.5.

=== FAT32 ===

[[Archivo:Entradas tabla FAT32.png|derecha|miniaturadeimagen|350px|Estructura de una tabla FAT32, con tres archivos asignados]]

'''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'' de 32 bits (aunque solo 28 de esos bits se utilizaban realmente).

En teoría, esto debería permitir aproximadamente 100.100.538.948.585.453 ''clusters'', arrojando tamaños de almacenamiento cercanos a los 8 [[tebibyte|TiB]]. 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 [[gibibyte|GiB]]). Posteriormente, Windows 2000 y XP situaron el límite de FAT32 en los 64 GiB. 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 GiB (2<sup>32</sup>−1 bytes).

=== Otros fabricantes ===

Otros sistemas operativos tales como [[GNU/Linux]], [[FreeBSD]] y [[BeOS]] soportan FAT, y la mayoría también soportan VFAT y FAT32 en menor extensión. Las primeras ediciones de GNU/Linux también apoyaron un formato conocido como [[UMSDOS]]. Este consistía en una variante de ''FAT'' que admitía los permisos de seguridad típicos en [[Unix]], además de los nombres largos de este. Para ello, se almacenaba esta información en un archivo FAT separado que se denominaba ''"--linux--.---"'' (por tanto, conservando compatibilidad total). UMSDOS quedó en desuso con la aparición de VFAT en recientes versiones del núcleo Linux.
El sistema operativo [[Mac OS X]] también soporta sistemas de archivos FAT, siempre que no se trate del volumen de arranque del sistema.

=== FAT y metadatos ===

: NOTA: Los [[metadato]]s son atributos asociados a un archivo pero que no forman parte de él (por ejemplo, la fecha o el autor). Este concepto recibe otras denominaciones tales como ''filesystem fork'', ''alternate data streams'' (en Windows), etc.

El sistema de archivos FAT no está diseñado para albergar metadatos. Algunos sistemas operativos que los necesitan incorporaron varios métodos para simularlos. Por ejemplo, almacenándolos en archivos o carpetas extra (de manera similar a UMSDOS) o también otorgando una semántica especial a estructuras no usadas en el formato original. No obstante, este último método no es compatible con herramientas no preparadas para esta extensión. Por ejemplo, una herramienta de desfragmentación podría destruir los metadatos. [[Mac OS]], a través de la utilidad [[PC Exchange]], almacena metadatos en un archivo oculto denominado ''"FINDER.DAT"'' (uno por carpeta). [[Mac OS X]] almacena los metadatos en un archivo oculto denominado como su propietario, pero comenzando por ''".-"''. Cuando se trata de meta-datos de una carpeta, los almacena en un archivo oculto llamada ''".DS_Store"''.seis

[[OS/2]] también depende fuertemente del uso de meta-datos. Cuando se refiere a volúmenes en FAT, los almacena en un archivo oculto denominado ''"EA&nbsp;DATA.&nbsp;SF"'' en la carpeta raíz del volumen. También reserva dos bytes en el archivo (o carpeta) para poder indexarlo. Los meta-datos se acceden a través del [[escritorio]] [[Workplace Shell]], a través de ''guiones'' [[REXX]], o a través de utilidades como [[4DOS|4OS2]]. Cuando se refiere a su sistema de archivos propio HPFS, este ya da soporte nativo a meta-datos, denominados atributos extendidos.

[[Windows NT]] soporta meta-datos en los sistemas de archivos [[HPFS]], [[NTFS]] y FAT (mediante el mismo mecanismo que OS/2). Pero no es posible copiar meta-datos entre sistemas de archivos distintos. [[Windows 2000]] se comporta exactamente igual que Windows NT, pero ignora los meta-datos cuando copia archivos desde FAT32 a otros sistemas de archivos.

=== exFAT ===

{{AP|exFAT}}
[[exFAT]] (Extended File Allocation Table) es un sistema de archivos especialmente adaptado para memorias flash presentado con Windows Embedded CE 6.0. exFAT se utiliza cuando el sistema de archivos NTFS no es factible debido a la sobrecarga de las estructuras de datos.

=== Futuro ===

Dado que Microsoft no seguirá dando soporte a sistemas operativos basados en [[MS-DOS]], es poco probable que se desarrollen nuevas versiones de FAT. [[NTFS]] es un sistema de archivos superior a este en múltiples aspectos: eficiencia, rendimiento y fiabilidad. Su principal desventaja es el excesivo tamaño que desperdicia en pequeños volúmenes y su limitado soporte en otros sistemas operativos. Sus especificaciones son un secreto comercial; no obstante, esto está cambiando, gracias a la [[ingeniería inversa]], pues ya es posible leer y escribir en particiones NTFS en [[GNU/Linux|Linux]] con herramientas como [[NTFS-3G]].

FAT es, hoy por hoy, el sistema de archivos habitual en medios de almacenamiento extraíbles (con la excepción hecha del [[Disco compacto|CD]] y [[DVD]]). FAT12 se usa en disquetes, y FAT16 en el resto de medios (por ejemplo, tarjetas de memoria y [[Memoria USB|memorias USB]]) de hasta 2GB (hoy en día casi en desuso). Las tarjetas y memorias USB de 4GB a 32GB usualmente usan FAT32 para superar las limitaciones de la versión anterior. Las memorias de 64GB y más usan el sistema exFAT por la misma razón. FAT se utiliza por motivos de compatibilidad.

El soporte para formatear particiones con FAT32 en Windows está limitado a particiones de hasta 32 gigabytes, lo que obliga a los usuarios a usar NTFS o utilizar utilidades de terceros al margen de Windows.<ref>{{cita web |url=http://www.microsoft.com/spain/windowsxp/using/setup/getstarted/installnew.mspx |título=Instalación nueva de Windows XP |fechaacceso=2009 |autor= |enlaceautor= |idioma= }}</ref> Esta limitación afecta a la hora de crear particiones, pero no al uso: Windows puede acceder a discos FAT32 de hasta 2 terabytes.

Aunque en el momento de instalar no permite formatear una partición con FAT32 de más de 32 GB, y obligará a usar NTFS.<ref>{{cita web |url=http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q314463& |título=Limitations of the FAT32 File System in Windows XP |fechaacceso=2009 |autor= |enlaceautor= |idioma= }}</ref> La solución es formatear antes el disco en FAT32 (por ejemplo con la ayuda de un LiveCd de [[GNU/Linux]] o utilidades de terceros), y a continuación instalar Windows.

== Estructura ==

El sistema de archivos FAT se compone de cuatro secciones:

# El [[sector de arranque]]. Siempre es el primer sector de la partición (volumen) e incluye información básica, punteros a las demás secciones, y la dirección de la rutina de arranque del sistema operativo.
# La ''región FAT''. Contiene dos copias de la ''tabla de asignación de archivos'' (por motivos de seguridad). Estos son mapas de la partición, indicando qué ''clusters'' están ocupados por los archivos.
# La ''región del directorio raíz''. Es el índice principal de carpetas y archivos.
# La ''región de datos''. Es el lugar donde se almacena el contenido de archivos y carpetas. Por tanto, ocupa casi toda la partición. El tamaño de cualquier archivo o carpeta puede ser ampliado siempre que queden suficientes ''clusters'' libres. Cada ''cluster'' está enlazado con el siguiente mediante un puntero. Si un determinado ''cluster'' no se ocupa por completo, su espacio remanente se desperdicia.

Una partición se divide en un conjunto de ''clusters'' de idéntico tamaño. Son pequeños bloques discontinuos. El tamaño del clúster depende de la variante de FAT utilizada. Varía entre 2 y 32 kilobytes. Cada archivo ocupa uno o más ''clusters'' en función de su tamaño. De manera que un archivo queda representado por una cadena secuencial de ''clusters'' (una [[lista enlazada]]). Cada clúster de la cadena no tiene por qué ser adyacente al anterior. Esto es lo que provoca la [[Fragmentación de un sistema de ficheros|fragmentación]].

La tabla de asignación de archivos consta de una lista de entradas. Cada entrada contiene información sobre un clúster:

* La dirección del siguiente clúster en la cadena.
* Si es pertinente, la indicación de "fin de archivo" (que es también el fin de la cadena).
* Un carácter especial para indicar que el clúster es defectuoso.
* Un carácter especial para indicar que el clúster está reservado (es decir, ocupado por un archivo).
* El número cero para indicar que el clúster está libre (puede ser usado por un archivo).

El tamaño de estas entradas también depende de la variante FAT en uso: FAT16 usa entradas de 16 bits, FAT32 usa entradas de 32 bits, etc.

=== El directorio raíz ===

[[Archivo:Entradas directorio VFAT.png|derecha|miniaturadeimagen|350px|Tres entradas de directorio bajo un sistema de archivos VFAT (FAT32)]]

Este índice es un tipo especial de archivo que almacena las sub-carpetas y archivos que componen cada carpeta. Cada entrada del directorio contiene el nombre del archivo o carpeta (máximo 8 caracteres), su extensión (máximo 3 caracteres), sus atributos (archivo, carpeta, oculto, del sistema, o volumen), la fecha y hora de creación, la dirección del primer ''cluster'' donde están los datos, y por último, el tamaño que ocupa.

El directorio raíz ocupa una posición concreta en el sistema de archivos, pero los índices de otras carpetas ocupan la zona de datos como cualquier otro archivo.

Los nombres largos se almacenan ocupando varias entradas en el índice para el mismo archivo o carpeta.

== Licenciamiento ==

Microsoft ha solicitado una serie de patentes para elementos clave del sistema de archivos FAT en los años 1990. Su popularidad y compatibilidad lo hacen el formato de elección para [[Memoria flash|memorias flash]] de [[Cámara digital|cámaras digitales]], [[telefonía móvil|teléfonos móviles]], y [[tableta (computadora)|tabletas]] por ejemplo.

En diciembre de 2003, Microsoft anunció que comenzaría a comercializar licencias de uso para ''FAT'' al coste de 0,25 [[dólar estadounidense|dólares]] por unidad vendida. con un máximo de 250.000 dólares por acuerdo de licencia.

Hasta el momento, Microsoft ha citado cuatro patentes sobre FAT como fundamento de sus pretensiones. Las cuatro se refieren a la implementación de nombres largos:

* Patente 5.745.902: Método y sistema para acceder un archivo usando nombres largos con diferentes formatos de nombre de archivo. Cubre un modo de generar y asociar un nombre corto "8.3" con uno largo (por ejemplo, "Microsoft.txt" -largo- con "Micros~1.txt" -corto-). Así como el modo de enumerar nombres cortos en conflicto (por ejemplo, "MICROS~2.TXT" y "MICROS~3.TXT").
* Patente 5.579.517: Espacio de nombres común tanto para nombres cortos como largos de archivos. Cubre un método para encadenar múltiples entradas de nombre corto en el índice para almacenar un nombre largo. La ''Public Patent Foundation'' impugnó esta patente con éxito.
* Patente 5.758.352: Similar a la anterior. También fue impugnada con éxito.
* Patente 6.286.013: Método y sistema para proporcionar un espacio común de nombres para nombres de archivo tanto largos como cortos en un sistema operativo. Esta patente reclama los métodos usados en Windows 95, 98 y ME para hacer los nombres de archivos largos compatibles con MS-DOS. Aparentemente, no afecta a ninguna implementación de FAT distinta a la de Microsoft.

Algunos expertos creen que estas patentes no cubren realmente el uso que se hace de FAT en medios extraíbles de consumo.

Por otra parte, el documento ''Microsoft Extensible Firmware Initiative FAT 32 File System Specification, FAT: General Overview of On-Disk Format'', publicado por Microsoft, garantiza una serie de derechos que podrían interpretarse como una licencia para implementar FAT en otros sistemas operativos.

=== Impugnaciones ===

Debido al clamor popular para que se volviesen a examinar dichas patentes, la [[Public Patent Foundation]] envió pruebas a la Oficina de Patentes sobre trabajos previos de [[Xerox]] e [[IBM]]. La Oficina reconoció que existían "dudas sustanciales de patentabilidad" y abrió una investigación para revisar dichas patentes.

Finalmente, dicha revisión ha confirmado la validez de las patentes en enero de 2006.<ref>«[http://news.cnet.com/Microsofts-file-system-patent-upheld/2100-1012_3-6025447.html Microsoft's file system patent upheld]» (en inglés).</ref>

== Véase también ==

* [[NTFS]]
* [[HPFS]]
* [[ext2]]
* [[ext3]]
* [[ext4]]
* [[ReiserFS]]
* [[Sistema de archivos virtual|VFS]]
* [[ISO 9660]] (sistema de archivos estándar para [[Disco compacto|discos compactos]])
* [[Formato de disco]]

== Referencias ==
{{listaref}}

== Enlaces externos ==
=== En inglés ===
* [https://web.archive.org/web/20060213224425/http://www.microsoft.com/mscorp/ip/tech/fat.asp Microsoft's statement on "FAT File System Technology and Patent License"]
* [http://slashdot.org/article.pl?sid=03/12/04/1318212 Slashdot discussion on Microsoft's claims of FAT-related patents]
* [http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx Microsoft Extensible Firmware Initiative FAT 32 File System Specification, FAT: General Overview of On-Disk Format]
* [http://www.pjrc.com/tech/8051/ide/fat32.html Understanding FAT32 Filesystems (explained for embedded firmware developers)]
* [http://www.theregister.co.uk/2004/06/14/ms_fat_patent_reexamined/ Microsoft's war on GPL dealt patent setback]
* [https://web.archive.org/web/20070611184027/http://www.patersontech.com/Dos/Byte/History.html A Short History of MS-DOS], by [[Tim Paterson]]
* [http://support.microsoft.com/support/kb/articles/Q140/4/18.asp Detailed Explanation of FAT Boot Sector] - Microsoft Knowledge Base Article 140418
* [http://www.pubpat.org/Microsoft_517_Rejected.htm At PUBPAT's Request, Patent Office Rejects Microsoft's FAT Patent: All Claims of Reynolds '517 Patent Ruled Invalid]
* [http://www.microsoft.com/resources/documentation/Windows/XP/all/reskit/en-us/prkc_fil_tdrn.asp Volume and file size limits of FAT filesystems]
* [http://cd.textfiles.com/megademo2/INFO/OS2_HPFS.TXT Design goals and implementation of the new High Performance File System]

{{Control de autoridades}}
[[Categoría:Sistemas de archivos de Windows]]
[[Categoría:Acrónimos de informática]]
[[Categoría:DOS]]
[[Categoría:Almacenamiento informático]]
[[Categoría:Normas Ecma]]

Revisión actual - 23:36 11 jun 2024

FAT12 FAT16 FAT32
Desarrollador Microsoft
Nombre completo Tabla de Asignación de Archivos
(versión de 12 bits) (versión de 16 bits) (versión de 32 bits)
Introducido FAT12: 1980-08 (SCP 86-DOS 0.42) FAT16: 1984-08 (PC DOS 3.0), FAT16B: 1987-11 (Compaq MS-DOS 3.31) FAT32: 1996-08 (Windows 95 OSR2)
Identificador de partición 0x01 (MBR) 0x04, 0x06, 0x0E (MBR) 0x0B, 0x0C (MBR)
EBD0A0A2-B9E5-4433
-87C0-68B6B72699C7 (GPT)
Estructuras FAT12 FAT16 FAT32
Contenido de carpeta Tabla
Ubicación de archivo Lista enlazada
Bloques defectuosos Lista enlazada
Límites FAT12 FAT16 FAT32
Tamaño máximo de archivo 32 MiB 2 GiB (4 GiB - 1) 4 GiB - 1
Número máximo de archivos 4.068 para clústers de 8 KiB 65.460 para clústers de 32 KiB 268.173.300 para clústers de 32 KiB
Longitud máxima del nombre de archivo 8.3 (11) o 255 caracteres cuando se usan LFNs (Long File Names)
Tamaño máximo del volumen 32 MiB 2 GiB (4 GiB en Windows NT) 10 TiB
Características FAT12 FAT16 FAT32
Fechas almacenadas Creación, modificación, acceso
Rango de fechas soportado 1 de enero de 1980-31 de diciembre de 2107
Metadatos No de modo nativo
Atributos Solo lectura, oculto, sistema, archivo, nombre del volumen
Permisos No
Compresión transparente Por volumen, Stacker, DoubleSpace, DriveSpace No
Cifrado transparente Por volumen solo con DR-DOS No

Tabla de asignación de archivos, comúnmente conocido como FAT (del inglés file allocation table), es un sistema de archivos desarrollado para MS-DOS, así como el sistema de archivos principal de las ediciones no empresariales de Microsoft Windows hasta Windows Me.

FAT es relativamente sencillo. A causa de ello, es un formato popular para disquetes admitido prácticamente por todos los sistemas operativos existentes para computadora personal. Se utiliza como mecanismo de intercambio de datos entre sistemas operativos distintos que coexisten en la misma computadora, lo que se conoce como entorno multiarranque. También se utiliza en tarjetas de memoria y dispositivos similares.

Las implementaciones más extendidas de FAT tienen algunas desventajas. Cuando se borran y se escriben nuevos archivos tiende a dejar fragmentos dispersos de estos por todo el soporte. Con el tiempo, esto hace que el proceso de lectura o escritura sea cada vez más lento. La denominada desfragmentación es la solución a esto, pero es un proceso largo que debe repetirse regularmente para mantener el sistema de archivos en perfectas condiciones. FAT tampoco fue diseñado para ser redundante ante fallos. Inicialmente solamente soportaba nombres cortos de archivo: ocho caracteres para el nombre más tres para la extensión.

Historia y versiones

[editar]

El sistema de archivos FAT fue creado por Mac basado en una serie de conversaciones entre Mac y Bill Gates. Fue incorporado por primera vez en el sistema operativo QDOS por Tim Paterson en agosto de 1980, para los computadores S-100 de arquitectura Intel 8086. Este sistema de archivos fue la principal diferencia entre QDOS y CP/M.

FAT12

[editar]
  • 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 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 solo uno. El efecto global fue una reducción significativa de los tiempos de lectura y escritura frente a los disquetes de doble densidad.


Estructura de la FAT12 en un disquete de 1,44M:

512 Byte Primer sector físico del disco flexible (Pista Cero)
3 Byte Código máquina de salto ( jmp short 0x3E; nop ) 0EBh 03Ch 090h
8 Byte Cadena que identifica el fabricante del disco 'mkdosfs',0
2 Byte Bytes por sector 512
1 Byte Sectores por clúster 1
2 Byte Sectores reservados 1
1 Byte Número de FAT's 2
2 Byte Entradas máximas en directorio raíz 224
2 Byte Sectores totales 2880
1 Byte Descriptor de medio (0F0h para discos de 1'44M) 240
2 Byte Sectores por fat 9
2 Byte Sectores por pista 18
2 Byte Número de caras 2
4 Byte Sectores ocultos 0
4 Byte Longitud total de sectores 0
1 Byte Número de unidad 0
1 Byte Banderas 0
1 Byte Firma (029h) 41
4 Byte Número de serie 4294967295
12 Byte Etiqueta de volumen 'DISCO EJEMPLO'
8 Byte Identificador de formato 'FAT12'
446 Byte Código máquina del cargador de arranque [...]
2 Byte Firma de unidad arrancable 055AAh

FAT16

[editar]

En 1987 apareció lo que hoy se conoce como «el formato FAT 16». 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 KiB con los usuales 512 bytes por sector. Así que el límite definitivo de FAT16 se situó en los 4 (2GiB por clúster) GiB.

Esta mejora estuvo disponible en 1988. Mucho más tarde, Windows NT 4.0(1998) y Windows XP (2001) aumentaron el tamaño máximo del cluster a 64 kilobytes pudiendo crear particiones de hasta 4 GB. No obstante, el formato resultante no era compatible con otras implementaciones de la época, y además, generaba más 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.

VFAT y FASTFAT

[editar]

Windows 3.11 introdujo un nuevo esquema de acceso a los sistemas de archivos, usando el modo protegido de 32 bits (presente en los Intel 386 y posteriores) esquivando el núcleo de MS-DOS. Para ello, usaba directamente el BIOS o el hardware de la unidad de disco. Esto también permitía utilizar una caché, acelerando el acceso. Todo esto se denominó VFAT o FAT virtual.

Windows NT 3.1 proporcionaba la misma aproximación, pero denominándolo FASTFAT. Sin embargo, era natural que los controladores de Windows NT utilizasen el modo protegido de 32 bits. A menudo se confunde con el soporte LFN (nombres largos de archivo) ya que este estaba habilitado por defecto en Windows 95.

LFN o nombres largos de archivo

[editar]

Uno de los objetivos de los diseñadores de Windows 95 fue el uso de nombres más largos para los archivos. Se implementó sobre FAT utilizando un truco en el modo de almacenar los índices de los directorios. Esta implementación también se conoce como VFAT por culpa del controlador de Windows 95 que lo incorporó por primera vez. Los nombres largos también se soportaron en Windows NT a partir de la versión 3.5.

FAT32

[editar]
Estructura de una tabla FAT32, con tres archivos asignados

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 de 32 bits (aunque solo 28 de esos bits se utilizaban realmente).

En teoría, esto debería permitir aproximadamente 100.100.538.948.585.453 clusters, arrojando tamaños de almacenamiento cercanos a los 8 TiB. 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 GiB). Posteriormente, Windows 2000 y XP situaron el límite de FAT32 en los 64 GiB. 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 GiB (232−1 bytes).

Otros fabricantes

[editar]

Otros sistemas operativos tales como GNU/Linux, FreeBSD y BeOS soportan FAT, y la mayoría también soportan VFAT y FAT32 en menor extensión. Las primeras ediciones de GNU/Linux también apoyaron un formato conocido como UMSDOS. Este consistía en una variante de FAT que admitía los permisos de seguridad típicos en Unix, además de los nombres largos de este. Para ello, se almacenaba esta información en un archivo FAT separado que se denominaba "--linux--.---" (por tanto, conservando compatibilidad total). UMSDOS quedó en desuso con la aparición de VFAT en recientes versiones del núcleo Linux. El sistema operativo Mac OS X también soporta sistemas de archivos FAT, siempre que no se trate del volumen de arranque del sistema.

FAT y metadatos

[editar]
NOTA: Los metadatos son atributos asociados a un archivo pero que no forman parte de él (por ejemplo, la fecha o el autor). Este concepto recibe otras denominaciones tales como filesystem fork, alternate data streams (en Windows), etc.

El sistema de archivos FAT no está diseñado para albergar metadatos. Algunos sistemas operativos que los necesitan incorporaron varios métodos para simularlos. Por ejemplo, almacenándolos en archivos o carpetas extra (de manera similar a UMSDOS) o también otorgando una semántica especial a estructuras no usadas en el formato original. No obstante, este último método no es compatible con herramientas no preparadas para esta extensión. Por ejemplo, una herramienta de desfragmentación podría destruir los metadatos. Mac OS, a través de la utilidad PC Exchange, almacena metadatos en un archivo oculto denominado "FINDER.DAT" (uno por carpeta). Mac OS X almacena los metadatos en un archivo oculto denominado como su propietario, pero comenzando por ".-". Cuando se trata de meta-datos de una carpeta, los almacena en un archivo oculto llamada ".DS_Store".seis

OS/2 también depende fuertemente del uso de meta-datos. Cuando se refiere a volúmenes en FAT, los almacena en un archivo oculto denominado "EA DATA. SF" en la carpeta raíz del volumen. También reserva dos bytes en el archivo (o carpeta) para poder indexarlo. Los meta-datos se acceden a través del escritorio Workplace Shell, a través de guiones REXX, o a través de utilidades como 4OS2. Cuando se refiere a su sistema de archivos propio HPFS, este ya da soporte nativo a meta-datos, denominados atributos extendidos.

Windows NT soporta meta-datos en los sistemas de archivos HPFS, NTFS y FAT (mediante el mismo mecanismo que OS/2). Pero no es posible copiar meta-datos entre sistemas de archivos distintos. Windows 2000 se comporta exactamente igual que Windows NT, pero ignora los meta-datos cuando copia archivos desde FAT32 a otros sistemas de archivos.

exFAT

[editar]

exFAT (Extended File Allocation Table) es un sistema de archivos especialmente adaptado para memorias flash presentado con Windows Embedded CE 6.0. exFAT se utiliza cuando el sistema de archivos NTFS no es factible debido a la sobrecarga de las estructuras de datos.

Futuro

[editar]

Dado que Microsoft no seguirá dando soporte a sistemas operativos basados en MS-DOS, es poco probable que se desarrollen nuevas versiones de FAT. NTFS es un sistema de archivos superior a este en múltiples aspectos: eficiencia, rendimiento y fiabilidad. Su principal desventaja es el excesivo tamaño que desperdicia en pequeños volúmenes y su limitado soporte en otros sistemas operativos. Sus especificaciones son un secreto comercial; no obstante, esto está cambiando, gracias a la ingeniería inversa, pues ya es posible leer y escribir en particiones NTFS en Linux con herramientas como NTFS-3G.

FAT es, hoy por hoy, el sistema de archivos habitual en medios de almacenamiento extraíbles (con la excepción hecha del CD y DVD). FAT12 se usa en disquetes, y FAT16 en el resto de medios (por ejemplo, tarjetas de memoria y memorias USB) de hasta 2GB (hoy en día casi en desuso). Las tarjetas y memorias USB de 4GB a 32GB usualmente usan FAT32 para superar las limitaciones de la versión anterior. Las memorias de 64GB y más usan el sistema exFAT por la misma razón. FAT se utiliza por motivos de compatibilidad.

El soporte para formatear particiones con FAT32 en Windows está limitado a particiones de hasta 32 gigabytes, lo que obliga a los usuarios a usar NTFS o utilizar utilidades de terceros al margen de Windows.[1]​ Esta limitación afecta a la hora de crear particiones, pero no al uso: Windows puede acceder a discos FAT32 de hasta 2 terabytes.

Aunque en el momento de instalar no permite formatear una partición con FAT32 de más de 32 GB, y obligará a usar NTFS.[2]​ La solución es formatear antes el disco en FAT32 (por ejemplo con la ayuda de un LiveCd de GNU/Linux o utilidades de terceros), y a continuación instalar Windows.

Estructura

[editar]

El sistema de archivos FAT se compone de cuatro secciones:

  1. El sector de arranque. Siempre es el primer sector de la partición (volumen) e incluye información básica, punteros a las demás secciones, y la dirección de la rutina de arranque del sistema operativo.
  2. La región FAT. Contiene dos copias de la tabla de asignación de archivos (por motivos de seguridad). Estos son mapas de la partición, indicando qué clusters están ocupados por los archivos.
  3. La región del directorio raíz. Es el índice principal de carpetas y archivos.
  4. La región de datos. Es el lugar donde se almacena el contenido de archivos y carpetas. Por tanto, ocupa casi toda la partición. El tamaño de cualquier archivo o carpeta puede ser ampliado siempre que queden suficientes clusters libres. Cada cluster está enlazado con el siguiente mediante un puntero. Si un determinado cluster no se ocupa por completo, su espacio remanente se desperdicia.

Una partición se divide en un conjunto de clusters de idéntico tamaño. Son pequeños bloques discontinuos. El tamaño del clúster depende de la variante de FAT utilizada. Varía entre 2 y 32 kilobytes. Cada archivo ocupa uno o más clusters en función de su tamaño. De manera que un archivo queda representado por una cadena secuencial de clusters (una lista enlazada). Cada clúster de la cadena no tiene por qué ser adyacente al anterior. Esto es lo que provoca la fragmentación.

La tabla de asignación de archivos consta de una lista de entradas. Cada entrada contiene información sobre un clúster:

  • La dirección del siguiente clúster en la cadena.
  • Si es pertinente, la indicación de "fin de archivo" (que es también el fin de la cadena).
  • Un carácter especial para indicar que el clúster es defectuoso.
  • Un carácter especial para indicar que el clúster está reservado (es decir, ocupado por un archivo).
  • El número cero para indicar que el clúster está libre (puede ser usado por un archivo).

El tamaño de estas entradas también depende de la variante FAT en uso: FAT16 usa entradas de 16 bits, FAT32 usa entradas de 32 bits, etc.

El directorio raíz

[editar]
Tres entradas de directorio bajo un sistema de archivos VFAT (FAT32)

Este índice es un tipo especial de archivo que almacena las sub-carpetas y archivos que componen cada carpeta. Cada entrada del directorio contiene el nombre del archivo o carpeta (máximo 8 caracteres), su extensión (máximo 3 caracteres), sus atributos (archivo, carpeta, oculto, del sistema, o volumen), la fecha y hora de creación, la dirección del primer cluster donde están los datos, y por último, el tamaño que ocupa.

El directorio raíz ocupa una posición concreta en el sistema de archivos, pero los índices de otras carpetas ocupan la zona de datos como cualquier otro archivo.

Los nombres largos se almacenan ocupando varias entradas en el índice para el mismo archivo o carpeta.

Licenciamiento

[editar]

Microsoft ha solicitado una serie de patentes para elementos clave del sistema de archivos FAT en los años 1990. Su popularidad y compatibilidad lo hacen el formato de elección para memorias flash de cámaras digitales, teléfonos móviles, y tabletas por ejemplo.

En diciembre de 2003, Microsoft anunció que comenzaría a comercializar licencias de uso para FAT al coste de 0,25 dólares por unidad vendida. con un máximo de 250.000 dólares por acuerdo de licencia.

Hasta el momento, Microsoft ha citado cuatro patentes sobre FAT como fundamento de sus pretensiones. Las cuatro se refieren a la implementación de nombres largos:

  • Patente 5.745.902: Método y sistema para acceder un archivo usando nombres largos con diferentes formatos de nombre de archivo. Cubre un modo de generar y asociar un nombre corto "8.3" con uno largo (por ejemplo, "Microsoft.txt" -largo- con "Micros~1.txt" -corto-). Así como el modo de enumerar nombres cortos en conflicto (por ejemplo, "MICROS~2.TXT" y "MICROS~3.TXT").
  • Patente 5.579.517: Espacio de nombres común tanto para nombres cortos como largos de archivos. Cubre un método para encadenar múltiples entradas de nombre corto en el índice para almacenar un nombre largo. La Public Patent Foundation impugnó esta patente con éxito.
  • Patente 5.758.352: Similar a la anterior. También fue impugnada con éxito.
  • Patente 6.286.013: Método y sistema para proporcionar un espacio común de nombres para nombres de archivo tanto largos como cortos en un sistema operativo. Esta patente reclama los métodos usados en Windows 95, 98 y ME para hacer los nombres de archivos largos compatibles con MS-DOS. Aparentemente, no afecta a ninguna implementación de FAT distinta a la de Microsoft.

Algunos expertos creen que estas patentes no cubren realmente el uso que se hace de FAT en medios extraíbles de consumo.

Por otra parte, el documento Microsoft Extensible Firmware Initiative FAT 32 File System Specification, FAT: General Overview of On-Disk Format, publicado por Microsoft, garantiza una serie de derechos que podrían interpretarse como una licencia para implementar FAT en otros sistemas operativos.

Impugnaciones

[editar]

Debido al clamor popular para que se volviesen a examinar dichas patentes, la Public Patent Foundation envió pruebas a la Oficina de Patentes sobre trabajos previos de Xerox e IBM. La Oficina reconoció que existían "dudas sustanciales de patentabilidad" y abrió una investigación para revisar dichas patentes.

Finalmente, dicha revisión ha confirmado la validez de las patentes en enero de 2006.[3]

Véase también

[editar]

Referencias

[editar]

Enlaces externos

[editar]

En inglés

[editar]