Sistema de archivos

De Wikipedia, la enciclopedia libre

Saltar a navegación, búsqueda

Los sistemas de archivos (filesystem en inglés), estructuran la información guardada en una unidad de almacenamiento (normalmente un disco duro) de una computadora, que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos poseen su propio sistema de archivos.

Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamaño, a veces llamados sectores, usualmente de 512 bytes de longitud. El software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados. En la práctica, un sistema de archivos también puede ser utilizado para acceder a datos generados dinámicamente, como los recibidos a través de una conexión de red (sin la intervención de un dispositivo de almacenamiento).

Los sistemas de archivos tradicionales proveen métodos para crear, mover, renombrar y eliminar tanto archivos como directorios, pero carecen de métodos para crear, por ejemplo, enlaces adicionales a un directorio o archivo (enlace duro en Unix) o renombrar enlaces padres (".." en Unix).

El acceso seguro a sistemas de archivos básicos puede estar basado en los esquemas de lista de control de acceso o capacidades. Las listas de control de acceso hace décadas que demostraron ser inseguras, por lo que los sistemas operativos experimentales utilizan el acceso por capacidades. Los sistemas operativos comerciales aún funcionan con listas de control de acceso.

Rutas y nombre de archivos [editar]

Generalmente un sistema de archivos tiene directorios que asocian un nombre de archivo a cada archivo, usualmente conectando el nombre de archivo a un índice en una tabla de asignación de archivos de algún tipo —como FAT en sistemas de archivos MS-DOS o los inodos de los sistemas Unix—.

Normalmente los archivos y carpetas se organizan jerárquicamente

Normalmente los archivos y carpetas se organizan jerárquicamente

La estructura de directorios suele ser jerárquica, ramificada o "en árbol", aunque en algún caso podría ser plana. En algunos sistemas de archivos los nombres de archivos son estructurados, con sintaxis especiales para extensiones de archivos y números de versión. En otros, los nombres de archivos son simplemente cadenas de texto y los metadatos de cada archivo son alojados separadamente.

En los sistemas de archivos jerárquicos, usualmente, se declara la ubicación precisa de un archivo con una cadena de texto llamada "ruta" —o path en inglés—. La nomenclatura para rutas varía ligeramente de sistema en sistema, pero mantienen por lo general una misma estructura. Una ruta viene dada por una sucesión de nombres de directorios y subdirectorios, ordenados jerárquicamente de izquierda a derecha y separados por algún carácter especial que suele ser una barra ('/') o barra invertida ('\') y puede terminar en el nombre de un archivo presente en la última rama de directorios especificada.

Ejemplo de 'ruta' en un sistema Unix [editar]

Así, por ejemplo, en un sistema tipo Unix como GNU/Linux, la ruta para la canción llamada "cancion.ogg" del usuario "pedro" sería algo como:

/home/pedro/musica/cancion.ogg

 

donde:

·        '/' representa el directorio raiz donde está montado todo el sistema de archivos.

·        'home/pedro/musica/' es la ruta del archivo.

·        'cancion.ogg' es el nombre del archivo.

Ejemplo de 'ruta' en un sistema Windows [editar]

Un ejemplo análogo en un sistema de archivos de Windows(específicamente en Windows XP) se vería como:

C:\Documents and Settings\pedro\Mis Documentos\Mi música\canción.ogg

donde:

·        'C:\' es la unidad de almacenamiento en la que se encuentra el archivo.

·        'Documents and Settings\pedro\Mis Documentos\Mi música\' es la ruta del archivo.

·        'canción.ogg' es el nombre del archivo.

·        '.ogg' es la extensión del archivo, este elemento, parte del nombre, es especialmente relevante en los sistemas Windows, ya que sirve para identificar qué aplicación está asociada con el archivo en cuestión, es decir, con qué programa se puede editar o reproducir el archivo.

Resumen de características de los sistemas de Archivos [editar]

Tipo de sistemas de archivos [editar]

Sistemas de archivos de disco [editar]

Un sistema de archivo de disco está diseñado para el almacenamiento de archivos en una unidad de disco, que puede estar conectada directa o indirectamente a la computadora.

(ver Anexo:Sistemas de archivos de disco)

Sistemas de archivos de red [editar]

Un sistema de archivos de red es un sistema de archivos que accede a sus archivos a través de una red. Dentro de esta clasificación encontramos dos tipos de sistemas de archivos: los sistemas de archivos distribuidos (no proporcionan E/S en paralelo) y los sistemas de archivos paralelos (proporcionan una E/S de datos en paralelo).

(ver Anexo:Sistemas de archivos de red)

Sistemas de archivos de propósito especial [editar]

Los sistemas de archivos de propósito especial son básicamente aquellos que no caen en ninguna de las dos clasificaciones anteriores.

Ejemplos de sistemas de archivos de propósito especial:

Organización de la información en el disco: El sistema de archivos


Toda la información que guardemos a través del S.O. en algún dispositivo de almacenamiento se almacena en una estructura de datos que denominamos archivo (agrupación de clusters encadenados desde la FAT o bloques encadenados desde uno o varios inodes).

http://es.wikipedia.org/wiki/FAT
http://es.wikipedia.org/wiki/NTFS
http://es.wikipedia.org/wiki/Ext2
http://es.wikipedia.org/wiki/EXT3
http://es.wikipedia.org/wiki/ReiserFS

Toda la información que grabemos en los discos debe estar organizada de alguna manera. El sistema de archivos es la forma que cada SO tiene de organizar la información sobre el disco.
- MSDOS lo crea con FORMAT o FORMAT /Q, Linux con mkfs
El sistema de archivos consiste en un conjunto de estructuras creadas sobre el disco que permiten al SO manejar toda la información en él contenida.

Las siguientes estructuras son creadas por MS-DOS en un diskete de 1.44 MB, el tamaño de clúster es de 512 bytes:

   - el registro de arranque, 1er cluster (desde el byte 0=0h, hasta el 511=1FFh)
   - tabla de ubicación de archivos o FAT: 18 clusters (desde el byte 512=200h, hasta el 9727=25FFh)
   - directorio raíz: 14 clusters (desde el byte 9728=2600h hasta el 16895=41FFh)
   - área de datos, el resto: 2847 clusters (desde 4200h hasta el 1474559=167FFFh)

FAT 12 es el sistema de archivos utilizado en los disquetes. Utiliza 12 bits para direccionar los clusters (i.e., las entradas en la estructura FAT son de 12 bits), por tanto, el número máximo de clústers que se pueden utilizar con FAT12 son:

212 = 4096

de sobra, para los 2847 clusters de un disquete de 1,44 MB.

Con FAT 16 se pueden direccionar hasta 216 = 65536 clusters.
Con FAT 32: 232 = 4.294
1967.296 de clusters.

Ejercicios
En un disco de 2 GB formateado con FAT16

a. ¿Cuánto ocupan 1024 archivos de 1 kB?
>> con FAT16 el número máximo de clusters es de: 216=65536 clústers
Vamos a utilizar el tamaño de clúster lo más pequeño posible, para ello dividimos los 2GB en 65536 trozos, cada uno de estos trozos (o clúster) tiene un tamaño de:
    tamaño clúster= 2GB/65536 = 2*230/216=231-16=215=25*210= 32 KB
>>
La ocupación mínima de un archivo es de 1 clúster ==>
    
1024 archivos de 1 KB, ocupan en el disco 1024 clusters: 1024*32 KB = 210*32*210 bytes = 32 MB

b. ¿Cuántos disketes (FAT12, 512 bytes clúster) necesito para guardar esa carpeta?
Cada archivo ocupa 2 clústers, por tanto 1024 archivos: 1024*2*512 bytes = 210*2*29=220 = 1 MB
   =>
me basta con un disquete para almacenar una carpeta que en el disco ocupa 32 MB

Algunos sistemas de archivos como ext3, NTFS o Reiserfs, mantienen en el disco una estructura denominada Journaling, que lleva registro de los ficheros que permanecen abiertos en un momento dado (i.e., que han pasado a memoria), de esta forma se simplifica el reinicio ante una caída del sistema, además de que reduce la fragmentación de los archivos a la hora de guardarlos.

NOTA: Si se está actualizando la información contenida en el sistema de archivos cuando se cae el sistema, se pueden producir inconsistencias en el sistema de archivos, pueden aparecer clústers asignados que no pertenecen a ningún archivo porque todavía no se han liberado o asignado en FAT.
Se hace obligatorio el uso de scandisk o fsck en todo el disco, si se llevaba un registro de journaling, basta con chequear las zonas de disco en la que existían ficheros abierto en el momento de la caída del sistema.