Sistemas FAT
Los sistemas FAT son los sistemas de fichero utilizados en DOS y primeras versiones Windows de Microsoft. La característica principal (a la que deben su nombre), es que el estado de cada unidad de información del dispositivo, está reflejado en un catálogo denominado tabla de situación de ficheros FAT ("File Allocation Table"). Esta tabla es muy importante porque es el índice del contenido del disco. Cualquier error aquí puede convertir la unidad en inutilizable, razón por la que está duplicada. Ambas copias ocupan lugares consecutivos en los primeros sectores del disco. Justamente a continuación del primero, el VBS (Volume Boot Sector) que tiene un mapa con la geometría del volumen (en ocasiones hay un espacio entre el VBS y las FAT).
No hace falta decir que en unidades de gran capacidad, la tabla es necesariamente muy grande. Generalmente se carga en memoria para agilizar los procesos, ya que es de uso constante y cualquier operación de lectura/escritura tiene que utilizarla. En consecuencia, se han ingeniado métodos para que estos índices ocupen el menor espacio posible.
FAT16
En este sistema, utilizado a partir de MS-DOS 3.0, cada cluster está representado en la FAT por un número de 16 bits en forma de 4 dígitos hexadecimales (0000h/FFFFh), con lo que el disco puede tener un máximo de 216 = 65.536 unidades de asignación.
El modelo resultaba muy adecuado para discos pequeños, pues con clusters de solo 256 bytes se pueden conseguir capacidades de 256 x 65.536 = 16 MB, o de 33 MB con clusters de 512 bytes. Sin embargo, para discos de 2 GB el cluster tenía que ser de 32 KB. Tamaño que se considera el límite superior razonable para cada unidad de asignación.
Esté sistema tiene dos inconvenientes: en primer lugar el tamaño máximo de 2 GB, cuando actualmente ya es común ver discos duros de 8 GB. El segundo es el espacio desperdiciado. Cada fichero que se almacena en el disco ocupa los clusters completos que necesita, por lo que si el fichero tiene un tamaño de 2 KB, ocupará un cluster de 32 KB, desperdiciando 30 KB. Si es de 66 KB, ocupará tres clusters = 96 KB, desperdiciando 31 KB. Si se tienen en cuenta que en una partición de 2 GB caben miles de ficheros, y estimamos que se desperdicia una media de 16 KB por fichero, si el disco tiene unos 8.500 archivos estaremos desperdiciando 132 MB. El problema se agrava si consideramos que cuantos más ficheros pequeños tengamos, más espacio se desperdicia y que por ejemplo, los sistemas Windows utilizan cientos de pequeños ficheros.
FAT-32
Fue introducido con Windows 95b y con el SO DOS v.7.x que venía incluido con él. La razón de su lanzamiento fue que el tamaño de los discos crecía sin parar y que, como se ha señalado, el FAT-16 tradicional no permitía hacer particiones de mas de 2 GB, so pena de utilizar clusters muy grandes, lo que a su vez era contraproducente.
Microsoft denominó al nuevo sistema Virtual FAT (VFAT) e incorporó algunas mejoras, como la posibilidad de utilización de nombres largos para los ficheros y directorios. Pero VFAT es un sistema de ficheros básicamente igual que los FAT anteriores, la mayoría de las implementaciones se basan mas en "como" se usa el sistema que en cambios estructurales.
Aunque nominalmente utiliza una FAT de 32 bit, en realidad los 4 superiores están reservados. Los 28 restantes permiten direccionar 228 = 268.435.456 clusters. Lo que se traduce en que aún utilizando el tamaño mínimo de cluster, que es de 8 sectores (4.096 Bytes), se pueden tener particiones de hasta 1.07 TB (1.073 · 1012 bytes), aunque en realidad, FAT-32 utiliza clusters de 4096 a 32768 bytes (8/64 sectores)
Frente a FAT-16 posee la ventaja de no utilizar un tamaño fijo para la tabla de entradas, lo que permite introducir cualquier número de sub directorios y archivos en el directorio raíz. La contrapartida es que se aprecia una considerable pérdida de prestaciones frente a la FAT 16. En concreto aparecen pérdidas de del orden de un 5% de prestaciones al convertir un disco de FAT 16 a FAT 32, notándose más en los ficheros más pequeños. Hay que resaltar que la versión OSR2 (Windows95 OEM Service Release 2) es, en general, más lenta de acceso a disco que la anterior.
En principio las particiones FAT-32 solo eran accesibles desde Windows 95b y desde Dos 7.x. Ningún otro sistema operativo podía leerlas, siquiera Windows NT. Las utilidades de disco anteriores no servían para esta, así que Windows 95b traía sus propias versiones de FDisk, Format, ScanDisc y Defrag que trabajan con las particiones FAT 32.
Con Windows98-2E, Microsoft introdujo una nueva versión de su sistema FAT-32 con las siguientes mejoras respecto a las implementaciones anteriores:
* Admite unidades de hasta 2 TB (Terabytes) de tamaño.
* Utiliza clústeres menores que las versiones FAT anteriores. Es decir, clústeres de 4 KB para unidades de hasta 8 GB de tamaño, lo que da como resultado un uso de entre el 10 y el 15 más eficiente del espacio de disco con respecto a las grandes unidades FAT16.
* Puede reubicar el directorio raíz y utilizar la copia de seguridad de la FAT en lugar de la copia predeterminada. Además, se ha ampliado el registro de inicio de las unidades FAT32 para incluir una copia de seguridad de las estructuras de datos críticas. Esto significa que las unidades FAT32 son menos susceptibles a un único punto de fallo que los volúmenes FAT16 existentes.
* El directorio raíz de una unidad FAT32 es ahora una cadena normal de clústeres, por lo que puede ubicarse en cualquier lugar de la unidad. Por ello, ya no existen las limitaciones anteriores sobre el número de entradas del directorio raíz.
NTFS
Windows NT fue diseñado desde el principio para ser un sistema operativo de red y multitarea que rompiese definitivamente cualquier nexo con sus ancestros MS-DOS, para lo que se diseñó un nuevo sistema de ficheros partiendo de un diseño radicalmente nuevo (no se trata por tanto de un nuevo carrozado de las FAT anteriores).
El sistema resultante, denominado NTFS ("New Technology File System") es un sistema muy robusto que permite compresión de ficheros uno a uno; un protocolo de autorización de uso y de atributos de fichero muy desarrollado; sistema de operación basado en transacciones; soporte RAID; posibilidad de juntar las capacidades de dos unidades en un volumen único ("Disk striping") y muchas otras mejoras, como es la capacidad de anotar clusters malos ("Hot fixing") en run-time.
La denominada NTFS 5, incorporada en Windows 2000, dispone de algunas otras características avanzadas, como soporte de encriptación de ficheros incorporado en el propio SO; propiedades de ficheros basados en identificadores persistentes de usuario (ya no es necesario identificar a los ficheros mediante sus terminaciones), e identificación única de todos los objetos del sistema de archivos que permite, entre otras cosas, que un archivo pueda ocupar distintos volúmenes (ficheros multivolumen). Aunque naturalmente estas prestaciones cobran su tributo. NTFS utiliza meta-estructura muy grandes por lo que no es aconsejado para volúmenes de menos de 400 GB.
La estructura central de este sistema es la MFT ("Master File Table"), de la que se guardan varias copias de su parte más critica a fin de protegerla contra posibles corrupciones. Al igual que FAT16 y FAT32, NTFS también utiliza agrupaciones de sectores (clusters) como unidad de almacenamiento, aunque estos no dependen del volumen de la partición. Es posible definir un cluster de 512 bytes (1 sector) en una partición de 5 MB o de 500.000 MB. Esta capacidad le hace disminuir tanto la fragmentación interna como la externa.