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
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.
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.
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)
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)
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:
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.2941967.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.