A medida que avanza la computación los sistemas de información se van haciendo mucho más complejos cada día. Hoy es difícil encontrarnos con disquetes; hablar de gigabytes para dispositivos de almacenamiento masivo y terabytes para discos duros ya no es algo fuera de lo común; por lo que se hace imperante la creación o el mejoramiento del sistemas de archivos de los dispositivos de almacenamiento.
Todos conocemos el sistema NTFS y las personas que usamos alguna vez Windows 95 conoció al viejo FAT16 (que luego evolucionó a FAT32). Sin ir mas lejos, en Unix tenemos al sistema ext2, ext3 y el más reciente ext4. Todos tienen sus características, que hablaremos en el segundo capítulo cuando nos adentremos en los sistemas operativos y los sistemas de archivos.
Esquemas de asignación
El sistema de archivos tiene la misión de localizar espacio libre en el HD para guardar archivos, borrarlos, renombrarlos, etc. Para asignarle espacio a los distintos archivos en un determinado sistema de ficheros, existen tres formas de hacerlo:
- Asignación Contigua: Cada directorio contiene los nombres de archivos y las direcciones del bloque inicial (ubicación física en el HD) de cada archivo, además contiene el tamaño total de los archivos. A modo de ejemplo; si un archivo comienza en el sector 20 y ocupa un espacio o mide 20 bloques, cuando el sistema intente acceder a éste archivo, el brazo del HD se moverá en un principio al bloque 20 y terminará en el bloque 40. Si el archivo es borrado y en su lugar es puesto un archivo más pequeño, quedará un espacio inútil entre los archivos, formando un problema común que todos conocemos como fragmentación.
- Asignación encadenada: Con este criterio los directorios contienen los nombres de archivos y por cada uno de ellos la dirección del bloque inicial que compone al archivo. Cuando un archivo es leído, el brazo va a esa dirección inicial y encuentra los datos iniciales junto con la dirección del siguiente bloque y así sucesivamente. Con este criterio no es necesario que los bloques estén contiguos y no existe la fragmentación externa, pero en cada "eslabón" de la cadena se desperdicia espacio con las direcciones mismas. En otras palabras, lo que se crea en el disco es una lista ligada.
- Asignación con índices: En este esquema se guarda en el directorio un bloque de índices para cada archivo, con apuntadores hacia todos sus bloques constituyentes, de manera que el acceso directo se agiliza notablemente, a cambio de sacrificar varios bloques para almacenar dichos apuntadores. Cuando se quiere leer un archivo o cualquiera de sus partes, se hacen dos accesos: uno al bloque de índices y otro a la dirección deseada. Este es un esquema excelente para archivos grandes.
Así, cada sistema de archivos tiene sus PRO y sus CONTRAS. En el caso de Microsoft Windows, no tenemos muchas opciones a la hora de elegir el sistema de archivos de nuestros discos (FAT32 y NTFS); en cambio en Unix específicamente en Linux, tenemos un sin número de sistema de archivos para elegir, cosa que el usuario promedio no está acostumbrado hacer y que hasta nosotros mismos por desconocimiento, hemos escogido la opción predeterminada y tal vez hemos sacrificado rendimiento por no ser un poco más intrusos.
En la próxima parte analizaremos y compararemos los sistemas de archivos más conocidos y veremos por que no todos son buenos para un determinado usuario.