Los sistemas de archivos de Windows

basic concepts of varios file systems of windows

Como se explica en el artículo sobre los conceptos básicos del sistema de archivos, los sistemas operativos suelen tener una lista limitada de sistemas de archivos compatibles. Y en el caso de la familia Windows de Microsoft, generalmente se debe elegir entre dos tipos principales de sistemas de ficheros: NTFS, el formato principal que la mayoría de las versiones modernas del sistema operativo usan de forma predeterminada, y FAT heredado del antiguo MS-DOS, con exFAT como su extensión posterior. Microsoft también lanzó ReFS como un formato de nueva generación para servidores a partir de Windows Server 2012. En cuanto a HPFS que fue desarrollado por Microsoft junto con IBM, ahora sólo se puede encontrar en los equipos extremadamente antiguos que funcionan en Windows NT hasta 3.5. Siga leyendo para examinar estos formatos con más detalle y compararlos.


FAT/FAT32, exFAT

FAT (del inglés File Allocation Table, Tabla de asignación de archivos) es uno de los sistemas de archivos más simples que existe desde la década de 1980 y tiene sus raíces en el antiguo sistema operativo MS-DOS de Microsoft. Por lo tanto, no sorprende que FAT se creara originalmente con los almacenamientos de baja capacidad en mente.

Como sugiere su nombre, este sistema de archivos en realidad se basa en una tabla que sirve como un índice de su contenido. La estructura general del sistema de ficheros se compone de tres áreas separadas:

  • El sector de arranque;

  • La Tabla de asignación de archivos (File Allocation Table o FAT);

  • El área de almacenamiento de datos.

El sector de arranque es el primer sector en cualquier partición formateada con FAT y contiene información importante sobre su organización.

Luego va la Tabla de asignación de archivos (FAT) principal, así como su copia de seguridad a la que se puede acceder en caso de un problema de lectura de la original.

La mayor parte de la partición pertenece al área de almacenamiento de datos que se divide en clústeres. Un clúster consta de sectores adyacentes y se utiliza como una unidad mínima para la asignación de archivos. Su tamaño es fijo, pero puede variar entre 512 bytes y 64 kilobytes, según el tamaño del volumen y la versión de FAT. Un archivo, independientemente de lo pequeño que sea, ocupa todo el clúster, y el espacio desocupado restante se desperdicia. Cuando se requieren varios clústeres para almacenar un archivo, pueden asignarse en una cadena consecutiva o de manera dispersa por todo el volumen, lo que provoca la fragmentación del archivo.

Cada clúster tiene una entrada asociada en la Tabla de asignación de archivos (FAT). Un valor cero en la Tabla indica que este clúster no se usa actualmente, mientras que uno distinto de cero puede apuntar al siguiente clúster del mismo archivo o a un indicador especial de su final.

Los directorios, al igual que los archivos, están en el área de almacenamiento de datos. Se componen de entradas de directorio de 32 bytes de longitud, cada una de las cuales describe un archivo almacenado en este directorio (o en su subdirectorio). Además del nombre, el tamaño y otros atributos del archivo, la entrada de directorio contiene información sobre el primer clúster del archivo. En consecuencia, es posible descubrir dónde comienza el archivo necesario por la entrada de directorio correspondiente, mientras que cualquier clúster siguiente se puede encontrar a través de la Tabla de asignación de archivos, usándola como una lista de enlaces.

A lo largo del tiempo, FAT ha sido revisado varias veces. A la versión original le siguió FAT12, luego vino FAT16 y, finalmente, FAT32. Los números en sus nombres indican la cantidad de bits utilizados para dirigirse a un solo clúster: 12 bits en FAT12, 16 bits en FAT16 y 32 bits en FAT32 respectivamente.

FAT12 y FAT16 se aplicaron a los disquetes antiguos y hoy en día no se pueden encontrar con frecuencia. Y FAT32, por el contrario, todavía se usa mucho, principalmente debido a su compatibilidad amplia. Es que se puede acceder a él desde casi cualquier sistema operativo, incluidos macOS y Linux, lo que lo convierte en una buena opción para los dispositivos portátiles, como las tarjetas de memoria y memorias USB. Este formato también es compatible con los teléfonos inteligentes, las cámaras digitales, las grabadoras de vídeo, las consolas de juegos y otros dispositivos.

Sin embargo, FAT32 no tiene la compatibilidad nativa con los almacenamientos de datos de más de 32 GB. Por esta razón, se puede utilizar en los almacenamientos externos o en las particiones de disco menores de 32 GB compatibles con Windows y formateados con la herramienta integrada de este sistema operativo, o en esos de hasta 2 TB formateados con otros medios. Este sistema de archivos tampoco permite crear archivos mayores de 4 GB.

Para abordar este problema, se presentó exFAT (del inglés Extended File Allocation Table, Tabla de asignación de archivos extendida). No tiene limitaciones con respecto al tamaño y se utiliza con frecuencia en los discos duros externos, los SSD, las memorias USB de capacidades grandes, etc. Sin embargo, la tecnología subyacente ya está obsoleta y tiene muchas restricciones que la hacen inadecuada para el uso predominante en los entornos informáticos modernos.

NTFS

NTFS (del inglés New Technology File System, Sistema de archivos de nueva tecnología) se introdujo en 1993 con Windows NT y actualmente es el sistema de archivos más común en las computadoras de usuarios finales que funcionan en Windows. Los sistemas operativos de la línea Windows Server también utilizan este formato.

NTFS es significativamente mejor que FAT en numerosos aspectos. Es bastante confiable gracias al registro por diario (journaling) y brinda muchas funciones útiles, incluido el control de acceso, el cifrado, la compresión de archivos, etc. Además, utiliza las estructuras de datos más avanzadas que permiten usar mejor el espacio de almacenamiento y lo hacen mucho menos propenso a la fragmentación. Todo el sistema de archivos se basa en varios archivos de servicio:

  • El archivo $Boot;

  • El archivo $MFT (Master File Table o Tabla maestra de archivos);

  • El archivo $Bitmap;

  • El $LogFile y otros.

El archivo $Boot participa en el proceso de arranque y contiene muchos parámetros importantes del sistema de ficheros.

La Tabla maestra de archivos tiene una entrada para todos y cada uno de los ficheros del sistema de archivos. Los registros que contiene se llaman atributos y pueden incluir todo tipo de información, desde el nombre del archivo, su tamaño, los permisos, la fecha de creación/última modificación hasta su contenido real. Cuando este contenido no cabe en una entrada de la tabla MFT (que es de 1024 bytes de tamaño), NTFS asigna clústeres fuera de la MFT y crea punteros a sus ubicaciones. Otros atributos también pueden ser demasiado grandes para caber en una entrada de la MFT, por ejemplo, nombres de archivo largos. Dichos atributos también obtienen clústeres separados.

Los clústeres generalmente se asignan en secuencias continuas que se llaman extents. NTFS siempre intenta colocar el contenido en un solo extent. Sin embargo, si no hay clústeres contiguos disponibles, crea un nuevo extent en otro lugar, dividiendo un archivo en fragmentos.

En NTFS, los directorios se almacenan como archivos, pero en lugar del contenido de datos típico, dichos archivos mantienen listas de nombres de archivo y referencias que identifican esos archivos.

El archivo $Bitmap realiza un seguimiento del estado de los clústeres. Cada bit en él representa un clúster y puede tener el valor de 1, cuando el clúster está ocupado, o 0, cuando está no ocupado.

Antes de alterar cualquiera de sus estructuras cruciales, NTFS registra los cambios en $LogFile. Dicho registro (journal) permite recuperarlos en caso de inconsistencias que pueden ser causadas por un fallo durante su actualización. Cuando se ocurre un error durante el funcionamiento normal, NTFS identifica el clúster defectuoso, lo registra en el archivo $BadClus y copia los datos en otra ubicación.

En vista de su organización eficaz y un montón de funciones, NTFS es adecuado para el uso interno en las computadoras en Windows. Por otro lado, los dispositivos como las tarjetas de memoria o memorias USB pueden requerir un sistema de archivos más liviano que permanezca accesible fuera del entorno de Windows.

ReFS

ReFS (del inglés Resilient File System, Sistema de archivos resistente) es el último desarrollo de Microsoft que fue lanzado con Windows Server 2012 y luego agregado a Windows 8.1. Ahora también está disponible para Windows 11.

ReFS ha sido diseñado para abordar ciertas deficiencias de NTFS, específicamente esas con respecto a la corrupción de datos. Tiene una tolerancia a fallas mucho más alta gracias al mecanismo de Copy-on-Write (CoW) o Copiar en escrito (VACA). Al editar los metadatos existentes, ReFS guarda su copia en otra área en el medio de almacenamiento y, en lugar de sobrescribirla en sitio, la actualiza y vincula esta copia modificada al archivo correspondiente. Por lo tanto, una cantidad considerable de copias antiguas se almacenan en diferentes ubicaciones, lo que facilita la restauración de la integridad del sistema de archivos y permite prevenir la pérdida de datos. ReFS también emplea sumas de verificación (checksums) que le permiten detectar rápidamente cualquier posible corrupción de datos. 

La arquitectura de ReFS difiere absolutamente de esa de otros formatos de Windows. Ella emplea los árboles B+ como una estructura común en disco para representar tanto los metadatos como los datos reales de los archivos. Este árbol está compuesto por la raíz, los nodos internos y las hojas. Cada nodo del árbol contiene una lista ordenada de claves o punteros a los nodos de nivel inferior (hojas).

Este diseño de ReFS lo hace óptimo para los sistemas de almacenamiento grandes y de alta disponibilidad. Pero a pesar de sus ventajas obvias, aún no puede ser tan estable como NTFS y tampoco ofrece la compatibilidad con otros dispositivos basados en Windows.

HPFS

HPFS (del inglés High Performance File System, Sistema de archivos de alto rendimiento) fue creado por Microsoft en cooperación con IBM y lanzado al mercado con OS/2 1.20 en 1989 como un sistema de archivos para servidores que ofrece un rendimiento mucho mejor en comparación con FAT.

A diferencia de FAT que simplemente asigna cualquier primer clúster libre en el disco al fragmento de archivo, HPFS busca colocar los archivos en bloques contiguos, o al menos garantizar que sus fragmentos (los extents) se coloquen lo más cerca posible uno de otro.

Al comienzo de HPFS, hay tres bloques de control que ocupan 18 sectores: el bloque de arranque, el súper bloque y el bloque de repuesto.

El espacio de almacenamiento restante se divide en partes de sectores contiguos denominados bandas que ocupan 8 MB cada una. Una banda tiene su propio bitmap (mapa de bits) de asignación de sectores que muestra cuáles de los sectores están ocupados (1 – ocupado, 0 – libre).

Cada archivo y directorio tiene su propio F-nodo ubicado cerca de él en el disco – esta estructura contiene información sobre la ubicación del archivo y sus atributos extendidos. Se utiliza una banda de directorios especial ubicada en el centro del disco para almacenar directorios, mientras que la estructura de directorios en sí es un árbol equilibrado con entradas en orden alfabético.

Aún así, HPFS tenía limitaciones significativas y eventualmente se volvió obsoleto. Ni siquiera se soporta en Windows a partir de NT 4.

Sugerencia: La información sobre las perspectivas de la recuperación de datos de los sistemas de archivos de Windows se puede encontrar en los artículos sobre las peculiaridades de la recuperación de datos de diferentes sistemas operativos y las probabilidades de recuperar datos. Para obtener instrucciones detalladas y recomendaciones prácticas, por favor, lea el manual dedicado a la recuperación de datos en Windows.

Si usted busca información sobre los formatos nativos de otros sistemas operativos populares, por favor, consulte el artículo correspondiente:

Última actualización: el 25 de abril de 2023

Si le gusta este artículo, compártalo en sus redes sociales: