Sistemas FAT y NTFS
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" 8.1.2c2) que tiene un mapa con la geometría del volumen (en
ocasiones hay un espacio entre el VBS y las FAT).
Tablas
FAT
Los sistemas FAT y muchos otros, utilizan un
método de grabación que agrupa varios sectores en una misma unidad
("Allocation unit") también llamada cluster, traducida al español
como unidad de asignación, a la que ya hemos hecho referencia 8.1.2). Esta es la menor unidad de grabación lógica
que utiliza el Sistema en la unidad, de forma que un fichero se grabará siempre
utilizando un número entero de clusters.
El primero es que en la tabla existe un campo o
celda (de 12, 16 o 32 bytes) por cada cluster del volumen [5]. Su contenido lo llamaremos entrada. El campo
n de la FAT representa el cluster n del volumen -no confundir la
"entrada" (un valor de 12, 16 o 32 bytes), con el contenido del
cluster al que representa (un campo de 512 bytes como mínimo).
El segundo se refiere a qué son los directorios y
como está organizada su estructura. En
realidad los directorios son un tipo especial de fichero, que en lugar de datos
de usuario, contienen metadatos (punteros a otros ficheros). En cualquier caso, como cualquier otro
fichero, sus "datos" están en el área de datos del disco, y a cada
sector de información le corresponde una entrada en la FAT (dedicaremos todo un capítulo a explicar la
estructura interna de estos ficheros especiales 8.1.2d).
Nota: Como puede
suponerse, el sistema presenta algunos inconvenientes. Por ejemplo, si se rompe la cadena en un
punto, el resto del fichero se pierde.
Si el punto de ruptura es un directorio, entonces se pierde todo su
contenido. Estos y otros errores de las
FAT serán comentados más adelante al tratar de la estructura de directorios (
8.1.2d)
Las dos primeras entrada de la FAT (los tres
primeros bytes en FAT12) tienen un significado especial, de forma que la
anotación de clusters se realiza a partir del tercero (a partir del número 2 si
como es costumbre, empezamos a contar por cero). Como veremos a continuación, al tratar de la
FAT12, lar razón es de tipo histórico.
FAT-12
En realidad los primeros PCs, que solo disponían
de un disquete de 160 KB y una cara, gobernados por el IBM-DOS 1.0, no
utilizaban el sistema FAT, sino uno derivado de CP/M Gary Kildall. Sin embargo, las exigencias de almacenamiento
se dispararon enseguida. El primer disco
duro instalado en el XT tenía capacidad para 10 MB y el del AT era ya de 20
MB. Como el sistema de ficheros
utilizado por CP/M era ineficiente y complicado (el disquete solo podía
contener un directorio con 64 entradas), había que buscar en otra dirección.
El sistema FAT-12, inspirado en el sistema de ficheros
de Unix [4], que utiliza 12 bits para el índice de clusters, apareció a partir
de MS-DOS 1.1 hasta 2.x. Aunque también
se utilizó en versiones 3.00 y posteriores si el dispositivo tenía menos de
4087 clusters. A partir de esta cantidad
se usa la versión FAT de 16 bits. Cada
entrada de la tabla corresponde directamente con un cluster utilizable en el
volumen.
Nota: La razón
es de tipo histórico. El sistema de ficheros del DOS 1.0 no tiene bloque de
parámetros BIOS (BPB 8.1.2c2), y la distinción entre los disquetes de
5.25" de simple o doble cara (320/640 KB) debía indicarse en la FAT. A partir del DOS 2.0 la FAT incluyó el BPB
con el "Media descriptor".
FAT-16
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.
Los valores posibles para las entradas de la tabla son:
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.
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.
SISTEMAS NTFS
Como se adelantó al tratar de los sistemas de
ficheros ( 8.1.2a), 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 [2]; 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.
Su última versión, 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 ( 8.1.2a) 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 [1].
Resumen
A partir de Windows98-SE, con las nuevas versiones
de Windows, Microsoft ha mantenido posibilidad de acceso a la información
anterior de los usuarios (contenidos FAT), aunque ha establecido como formato
por defecto NTFS, que comenzó a utilizar como sistema de ficheros de gama alta
con Windows NT. La tabla adjunta muestra
la compatibilidad de los distintos sistemas de fichero con los SOs de
Microsoft.
ANGEL LINDAO
ZUÑIGA
GRUPO#5
II NIVEL