Si
usamos sistemas Windows, nos habremos visto en la necesidad de
decidir cuando formateamos nuestro disco duro, entre dos sistemas
de ficheros. NTFS y FAT. Incluso entre FAT32 y FAT16. Para los
que no hayan tenido nunca claro qué es cada cosa, aquí
presento un breve resumen que podrá aclarar un poco a qué
se refiere cada nomenclatura.
Lo importante del sistema
NTFS con respecto a la seguridad es básicamente que
se la toma en serio.
El sistema de ficheros es la forma
en la que el sistema operativo organiza los archivos y ficheros
en el disco duro para que no sea sólo un montón
de información caótica desperdigada por el disco.
Es un sistema que gestiona cómo se organizan los archivos,
dándoles un sentido y una estructura. Sin él, no
podríamos comunicarnos con el disco duro de la manera a
la que estamos acostumbrados, accediendo a ficheros en vez de
a trozos de datos sueltos, que es lo que el disco duro almacena
en realidad. Para que el
sistema operativo pueda acceder a cada uno de los ficheros contenidos
más rápidamente, todos los discos contienen una
lista de los archivos almacenados en el mismo llamada directorio.
En esta lista se incluye una sublista con información relativa
a los todos los paquetes de datos del disco duro que unidos forman
un fichero. Estos paquetes de datos se llaman clusters, y la sublista,
es la llamada FAT (File Allocation Table, Tabla de asignación
de ficheros) que da nombre al sistema de ficheros.
El directorio contiene la información
relativa al nombre del fichero, el tamaño, la fecha de
creación... y, lo más importante, el primer cluster
del disco donde hay datos del fichero, para a partir de ahí,
acudir a la FAT, que le dice cuál es el cluster que sigue
al ya leído y así sucesivamente hasta encontrar
todos los clusters ocupados por el archivo, todos los que lo forman,
y recuperarlo por completo. El final de fichero viene indicado
por un carácter especial que universalmente se representa
por <EOF> (End of file).
La FAT y el directorio en sí
ocupan espacio físico en el disco duro, pero siempre se
localizan "al principio" del disco, en el primer sector
de la pista más externa, antes que cualquier fichero que
almacena el usuario. La diferencia entre FAT16 y FAT32 viene por
el "tamaño" de esta lista. Con 32 bits puede
"enlazar" más clusters que con 16, y así
se permiten tamaños de disco mayores. Veamos un poco de
matemáticas. Una FAT de 16 bits permite 2^16= 64 Kilobytes
de combinaciones posibles, o sea, posibles referencias a clusters.
Si cada cluster tenía un tamaño de 4 kilobytes,
esto nos da 64 kilobytes x 4 kilobytes= 256 Megas de tamaño
máximo. Una FAT de 32 bits permite, haciendo los mismos
cálculos de antes, soportar discos duros de hasta 2 Terabytes,
2048 Gigas, que supongo que por ahora es más que suficiente.
El sistema de ficheros "alternativo"
que implementan los sistemas operativos Windows es el NTFS (NT
File System) que aporta sustanciosas mejoras de seguridad con
respecto al sistema FAT, y que ha sido añadido, por fin,
a las posibilidades para el usuario medio, o sea, para el que
utiliza Windows XP. Por ejemplo NTFS implementa un sistema real
de permisos, cosa que con FAT era imposible y hacía que
la seguridad en Windows 9x/Me fuese nula por mucho que se empeñaran
en esconder o cambiar de usuario. En su día no se le dotó
de ningún sistema de seguridad, y es lo que ha forzado
a Microsoft a implementar un sistema "avanzado" que
sólo usaban sus productos de gama alta (Windows NT y 2000)
en sus productos destinados al usuario convencional (Windows XP).
También el cambio se hacía complicado, pues ambos
sistemas son incompatibles entre sí, aunque pueden convivir
en el mismo disco duro sin problemas en particiones distintas.
Lo importante del sistema NTFS
con respecto a la seguridad es básicamente que se la toma
en serio. La filosofía del NTFS es que "todo es un
fichero" (Copiada de los sistemas Unix) y eso lo hace bastante
robusto. El control de la información se guarda en un conjunto
de ficheros especiales que se crean a la vez que la partición
NTFS y se llaman ficheros de metadatos. Uno de esos metadatos,
el MTF (Master File Table) que es donde se almacena toda la información
sobre cada fichero y directorio en una partición NTFS.
Básicamente es una base de datos que contiene los atributos
de cada archivo. Se podría considerar como el homólogo
de la FAT pero mucho más completo. Lo que más llama
la atención cuando se crea una partición o volumen
formateado con NTFS es que el sistema reserva algo más
del 12% de espacio disponible bajo la carpeta System Volume Information
a la que no se pude tener acceso (y que se encuentra con los atributos
de oculto y sistema). Con NTFS el tamaño máximo
de una partición, en teoría, puede ser de 2^64...
18 Terabytes… 18000 Gigabytes... 18 mil millones de Megabytes.
Yo creo que también es suficiente.
Microsoft
ha decidido mejorar su sistema de archivos, mezclando NTFS
con ciertas mejoras destinadas a la facilidad para acceder
a los datos.
El sistema de ficheros en sistemas
Unix o Linux es completamente distinto... y en cierta medida,
más "delicado". También se divide en clusters
múltiplos de 512 bytes. El "boot record" o
bloque de arranque es también el bloque 0 de la pista 0
de la superficie 0 de un disco. El superbloque se encuentra físicamente
a continuación del bloque de arranque y contiene la información
crítica sobre el sistema de ficheros. Luego viene la característica
diferenciadora, los i-nodos. Los i-nodos contienen la descripción
de los bloques de disco que forman los ficheros y otro tipo de
información, como el propietario del fichero, permisos
de acceso... etc. Están numerados y cada uno de ellos ocupa
64 bytes. Cada nodo contiene información sobre un único
fichero, y un fichero se identifica independientemente de su nombre,
por el número de su nodo. Un fichero en Linux puede tener
varios nombres y aparecer en distintos directorios, pero si apunta
al mismo nodo, son, físicamente, el mismo fichero. El sistema
de ficheros en Linux y Unix es mucho más delicado que el
NTFS, y reiniciar un ordenador si cerrar el sistema operativo
adecuadamente puede hacer que peligre la integridad de todo el
sistema.
Ahora, Microsoft ha decidido mejorar
su sistema de archivos, mezclando NTFS con ciertas mejoras destinadas
a la facilidad para acceder a los datos. Los discos duros van
creciendo rápidamente (el estándar ahora mismo son
120 gigabytes de información) y la velocidad de búsqueda
y acceso a los archivos se resiente ante tal cantidad de datos.
Así que ha añadido capacidades de los sistemas de
consultas de bases de datos para agilizar la tarea. Esto, además
de velocidad, dotará a los usuarios de prestaciones interesantes
a la hora de organizar y buscar archivos almacenados. El sistema
se llama WinFS y esta listo para ser usado en el sucesor de Windows
XP, para el 2005.