Sistema de archivos y dispositivos de almacenamiento. Los dispositivos de almacenamiento necesitan un sistema de organización para poder ubicar toda la información que contienen. Ésta es la función del sistema de archivos. Los dispositivos de almacenamiento más habituales son los discos duros o discos rígidos. Tomaremos como ejemplo la estructura de estos para poder acercarnos a los sistemas de archivos. Los discos duros o rígidos, son dispositivos de almacenamiento no volátil, esto quiere decir que conserva la información, en el contenida, aún cuando haya una interrupción de energía. Los discos duros están formados por platos circulares y metálicos, en ellos se graba la información empleando un sistema magnético digital. Cada uno de estos platos esta compuesto por pistas (áreas concéntricas a ambos lados de los platos), las cuales a su vez se dividen en sectores (cada uno de los cuales contiene 512 bytes). El formateado lógico de un disco permite que se cree un sistema de archivos en el disco, lo cual, a su vez, permitirá que un sistema operativo use el espacio disponible en disco para almacenar y utilizar archivos. El sistema de archivos se basa en la administración de clusters, la unidad de disco más pequeña que el sistema operativo puede administrar. Un clúster consiste en uno o más sectores. Por esta razón, cuanto más grande sea el tamaño del clúster, menores utilidades tendrá que administrar el sistema operativo. Por otro lado, ya que un sistema operativo sólo sabe administrar unidades enteras de asignación (es decir, un archivo ocupa un número entero de clusters), cuantos más sectores haya por clúster, más espacio desperdiciado habrá. La elección de un sistema de archivos viene altamente condicionada por el sistema operativo que se vaya a utilizar. Generalmente, cuanto más reciente sea el sistema operativo, mayor será el número de archivos que soporte. Archivos y Directorios. Un archivo es un conjunto de información almacenada como una unidad en el dispositivo de almacenamiento. Las principales características de esta estructura de archivos son, independencia de las informaciones respecto de los programas, la información almacenada es permanente, un archivo puede ser accedido por distintos programas en distintos momentos y gran capacidad de almacenamiento. Las operaciones típicas que se pueden realizar en los archivos son, la creación y destrucción, la lectura y la escritura, acceso al mismo y también el cambió de atributos. Aparte de contener la información que se desea tratar, los archivos tienen una serie de atributos que condicionan su tratamiento. Nombre (cadena de caracteres), tipo de archivo (necesario en sistemas que reconoce distintos tipos), ubicación en el dispositivo, tamaño, información de protección, fechas, horas e identificación del usuario. Poder realizar las tareas típicas con un archivo, normalmente, implica el encontrar la dirección del directorio con el que se asocia el archivo. La finalidad de los directorios es crear una estructura que nos permita acceder a los archivos. Un directorio es una agrupación de archivos de datos, atendiendo a su contenido, a su propósito o a cualquier criterio que decida el usuario. Los directorios igual que los archivos deben ser no volátiles y almacenarse en el disco. La información guardada puede ser de muchos tipos, un método común para implementar los tipos de archivos es especificar el tipo haciéndolo constar en el nombre del archivo (extensión). La organización de directorios puede tener diferentes formas. Único nivel (espacio plano), Dos niveles, Arbóreo, Grafo acíclico (enlaces), Grafo general (enlaces sin restricciones). También es importante nombrar los diferentes métodos de acceso a los archivos, pues es una relación directa con la estructura en que se contienen. El acceso secuencial: Se refiere al procesamiento de los archivos de acuerdo con el orden específico. El acceso directo o relativo, permite recuperar registros individuales sin leer otros registros del archivo, se basa en el modelo de archivo de disco. El acceso indexado requiere de registros adicionales, se necesitan tablas de índices. En resumen, el sistema de archivos contiene miles de ficheros, por este motivo es necesaria su correcta estructuración para poder acceder a ellos. Existen diferentes maneras de realizar esta organización e incluso son complementarias entre ellas. Particiones, volúmenes, directorio del dispositivo, tabla de contenido del volumen o simplemente directorios. Como hemos comentado anteriormente todos los archivos tienen una serie de características, como los atributos, la extensión o su nombre. Centrándonos en la cuestión del nombre, estos son muy importantes para encontrar e identificar los archivos. Como en muchas otras cosas, pueden existir diferentes normas o restricciones dependiendo de los distintos S.O. Por ejemplo, bajo DOS, los nom bres de archivos y de directorios podían tener solam ente 8 caracteres, después un punto y luego otros 3 caracteres, por ejemplo: texto.txt . Con la aparición del Windows 95, se superaron los lím ites para dar nom bres a las carpetas y archivos. De hecho, la capacidad de poder usar nom bres de archivo largos para los archivos y carpetas, es una de las mejores características que tiene Win95/98. Las partes de un nombre de archivo, son; la primer parte del nombre de un archivo (antes del punto) es el nombre del archivo. La parte después del punto, se llama extensión, esta es la que identifica el tipo de archivo. La extensión es la parte del nombre del archivo que utilizan las aplicaciones para reconocer automáticamente el formato del archivo. A la hora de crear el nombre de un archivo con los S.O Windows, deberemos recordar que, auque espacios, números y variedad de caracteres están permitidos existen otros que no, estos son, \ / : * ? ” < > | De igual manera, es indiferente la utilización de mayúsculas o minúsculas, al contrario que los S.O UNIX, los cuales ante un mismo nombre, entenderá que son archivos diferentes si está escrito en mayúsculas o no. En las recientes versiones de Windows, el lím ite a la longitud de un nom bre del archivo o la carpeta se ha acotado a unos, m ás que suficientes, 255 caracteres. Sin em bargo, la ru ta (el nom bre del drive y todas las carpetas anidadas para llegar al archivo) sólo puede ser de 259 caracteres. Cuanto más profundas las carpetas estén anidadas, m ás larga será la ruta y m enos caracteres quedarán disponibles para el nom bre del archivo. Si el núm ero de caracteres, incluida la ruta, supera esos 259 caracteres, Windows genera un nuevo nom bre para ese archivo, acotando su nom bre principal, por ejem plo 15656,90 A.txt podría pasar a nom brarse com o 1,90 ª .txt. A partir de todo esto podem os llegar a la conclusión que el nom bre com pleto de un archivo no solo consta de la cadena de caracteres que le asignam os, si no que tam bién la ruta completa en la que se encuentra alojado. Además del nombre, a un archivo le corresponden una serie de atributos. Ahora nos centraremos en aquellos que condicionan la seguridad del fichero, es decir aquellos que aportan o no permisos a según el tipo de usuario que los desee utilizar. Estos atributos vienen significados por una serie de letras, de este modo, R atributo de sólo lectura, A atributo de archivo, S atributo de sistema, H atributo de archivo oculto. Si necesitamos cambiar los atributos de un archivo desde línea de comandos en sistemas Microsoft, tenemos el commando attrib. Normalmente las opciones que tenemos so: ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]] + Activa un atributo. - Desactiva un atributo. Esta acción es posible realizarla, también desde el modo gráfico, a través de la pestaña de propiedades del archivo en cuestión. En definitva, la descripción de cada uno de estos atributos sería la siguiente: Archivo (archive), usado por algunos programas que realizan copia de seguridad. Se emplea para distinguir aquellos archivos de los que ya se ha hecho copia de seguridad, de otros de los que no se ha hecho esta copia. Sólo lectura (read only) hace que un archivo se pueda leer, pero no modificar ni borrar. Oculto (hidden) hace que no se muestre un archivo con la orden DIR, lo que permite que gente extraña no localice ficheros confidenciales con facilidad. Sistema (system) permite que un fichero no se muestre en pantalla con la orden DIR ni se pueda copiar con COPY. Ya hemos comentado la diferencia entre archivos y directorios. En el segundo grupo merece especial mención el directorio raíz. Como hemos visto el sistema de archivos contiene una estructura jerárquica, así el directorio raíz es el primer directorio en una jerarquía, es el punto de inicio desde donde surgen el resto de directorios. El directorio raíz ocupa una posición única y concreta en el sistema de ficheros (la región del directorio raíz), pero los índices de otras carpetas ocupan la zona de datos como cualquier fichero. Cada entrada en este índice contiene el nombre del fichero o carpeta, su extensión, sus atributos, la fecha y hora de creación, la dirección del primer clúster donde están los datos y el tamaño que ocupa. Por último cabe esclarecer que son los volúmenes. Un Volumen es un mecanismo por el que Windows Server 2003 usa para dividir un disco lógicamente. Puede haber uno o varios volúmenes en un disco. Adicionalmente, un único volumen puede abarcar múltiples discos. El siguiente cuadro muestra gráficamente la diferencia entre volumnes físicos y lógicos, también resulta un ejemplo, que no el único, de gestión de estos. Sistemas de Archivos. Como hemos visto anteriormente, cada S.O puede soportar uno o varios sistemas de archivos. Nos dedicaremos a explicar aquellos correspondientes a los S.O Windows, principalmente FAT, FAT16, FAT36 y NFTS. Windows soporta tres tipos de archivos para los medios magnéticos: FAT 16 (no admite discos duros inferiores a 2 GB) FAT 32 (admite discos duros superiores a 2 GB) NTFS (permite codificar los ficheros y asignar licencias NTFS) Para los medios ópticos soporta: CDFS (sistema de archivos de CD-ROM) UDF (sistema de intercambio entre CD-ROM y DVD-ROM) DVD (sistema de archivos de DVD-ROM) FAT es el sistema de archivos más sencillo, es un sistema de archivos desarrollado para MS-DOS, compatible con Windows. El sistema de archivos FAT se caracteriza por la tabla de asignación de archivos (File Allocation Table). que en realidad es una tabla en la que reside la parte "superior" del volumen. Para proteger el volumen, se conservan dos copias de la FAT por si una de ellas resulta dañada. Además, las tablas de FAT y el directorio raíz deben almacenarse en una ubicación fija para que se puedan encontrar correctamente los archivos de inicio del sistema. Un disco formateado con FAT se asigna en clústeres, cuyo tamaño está determinado por el tamaño del volumen. Cuando se crea un archivo, se crea una entrada en el directorio y se establece el primer número de clúster que contiene datos. Esta entrada de la tabla FAT indica que éste es el último clúster del archivo o señala al clúster siguiente. La actualización de la tabla FAT es muy importante y consume mucho tiempo. Si no se actualiza la tabla FAT periódicamente, pueden producirse pérdidas de datos. Consume mucho tiempo porque las cabezas lectoras de disco deben cambiar de posición y ponerse a cero en la pista lógica de la unidad cada vez que se actualiza la tabla FAT. No hay ninguna organización en cuanto a la estructura de directorios de FAT y se asigna a los archivos la primera ubicación libre de la unidad. Además, FAT sólo es compatible con los atributos de archivo de sólo lectura, oculto, sistema y modificado. El formato FAT se organiza en sectores. Cada sector puede almacenar 512 bytes de datos. Ésta es la menor unidad que se utiliza cuando se leen o escriben datos en el disco. En 1987 apareció el formato FAT16. El sistema FAT16 es un sistema de 16 bits que permite la identificación de archivos por un nombre de hasta 8 caracteres y tres extensiones de caracteres. Es por esto que el sistema se denomina FAT16. El tamaño de la partición, con el sistema FAT12 estaba limitado por la cuenta de sectores por clúster, que era de 8 bits. Esto obligaba a usar clusters de 32 Kbytes con los usuales 512 bytes por sector. Así que el límite definitivo de FAT16 se situó en los 2 gigabytes. Para mejorar esto, la versión original de Windows 95 (que usa el sistema FAT16) se lanzó al mercado con una administración FAT mejorada en la forma del sistema VFAT(Virtual FAT [FAT Virtual]). VFAT es un sistema de 32 bits que permite nombres de archivos de hasta 255 caracteres de longitud. Sin embargo, los programadores tenían que asegurar una compatibilidad directa para que los entornos (DOS) de 16 bits aún pudieran acceder a estos archivos. La solución fue asignar un nombre para cada sistema. Por esta razón se pueden usar nombres extensos de archivos en Windows y, aún así, acceder a ellos en DOS. Aunque el VFAT era un buen sistema, no solucionaba las limitaciones de FAT16. Por este motivo se desarrollo un nuevo sistema de archivos en Windows 95 OSR2 (el cual no sólo contaba con una mejor administración FAT como fue el caso de VFAT). Este sistema de archivos, el FAT32, utiliza valores de 32 bits para las entradas FAT. De hecho, sólo se utilizan 28 bits, ya que 4 bits se reservan para su futuro uso. Con FAT32 el máximo número de clusters por partición aumento, de esta forma, las particiones pueden resultar mucho mas grandes, hasta 8 terabytes. Microsoft lo redujo, voluntariamente, a 32 GB en los sistemas 9x de Windows para promover NTFS. Ya que una partición FAT32 puede contener muchos clústers más que una partición FAT16, es posible reducir significativamente el tamaño de los clústers y, así, limitar también el espacio desperdiciado del disco. Por ejemplo, con una partición de 2 GB, es posible usar clústers de 4KB con sistemas FAT32 (en lugar de clústers de 32KB con sistemas FAT16), que reducen el espacio desperdiciado. Ya que el número de clusters es limitado, el tamaño máximo de una partición depende del tamaño de cada clúster. En el siguiente cuadro podemos ver el tamaño máximo de la partición según el tamaño del clúster y el sistema de archivos utilizado: El sistema de archivos NTFS (New Technology File System [Sistema de archivos de nueva tecnología]) se basa en una estructura llamada "tabla maestra de archivos" o MFT, la cual puede contener información detallada en los archivos. La Tabla maestra de archivos es una tabla de valores numéricos. En cada celda se definen los dos posibles estados de un cluster, ocupado o libre. Una de las principales ventajas respecto a los sistemas FAT, es que el acceso a los archivos es mucho mas rápida, ya que usa un árbol binario de alto rendimiento para localizar a los archivos. En teoría, el tamaño límite de una partición es de 16 exabytes (17 mil millones de TB). Sin embargo, el límite físico de un disco es de 2TB. Otra de las principales ventajas de NTFS, es que permite la asignación de atributos para cada archivo, de este modo mejorando la seguridad. NTFS permite el uso de nombres extensos, pero, al contrario del sistema FAT32, distingue entre mayúsculas y minúsculas.