Un sistema de archivos son los métodos y estructuras de datos que un sistema operativo utiliza para seguir la
pista de los archivos de un disco o partición; es decir, es la manera en la que se organizan los archivos en el
disco.
El término también es utilizado para referirse a una partición o disco que se está utilizando para
almacenamiento, o el tipo del sistema de archivos que utiliza. Así uno puede decir “tengo dos sistemas de
archivo” refiriéndose a que tiene dos particiones en las que almacenar archivos, o que uno utiliza el sistema
de “archivos extendido”, refiriéndose al tipo del sistema de archivos.
Sistemas de archivos soportados por Linux
minix: el más antiguo y supuestamente el más fiable, pero muy limitado en características (algunas marcas de
tiempo se pierden, 30 caracteres de longitud máxima para los nombres de los archivos) y restringido en
capacidad (como mucho 64 MB de tamaño por sistema de archivos).
xia: Una versión modificada del sistema de archivos minix que
eleva los límites de nombres de archivos y tamaño del sistema de
archivos, pero por otro lado no introduce características nuevas.
No es muy popular, pero se ha verificado que funciona muy bien.
ext3 :El sistema de archivos ext3 posee todas las propiedades del
sistema de archivos ext2. La diferencia es que se ha añadido una
bitácora (journaling). Esto mejora el rendimiento y el tiempo de
recuperación en el caso de una caída del sistema. Se ha vuelto
más popular que el ext2.
ext2:El más sistema de archivos nativo Linux que posee la mayor cantidad de características. Está
diseñado para ser compatible con diseños futuros, así que las nuevas versiones del código del sistema de
archivos no necesitará rehacer los sistemas de archivos existentes.
ext : Una versión antigua de ext2 que no es compatible en el
futuro. Casi nunca se utiliza en instalaciones nuevas, y la
mayoría de la gente que lo utilizaba han migrado sus sistemas
de archivos al tipo ext2.
reiserfs: Un sistema de archivos más robusto. Se utiliza una bitácora que provoca que la pérdida de
datos sea menos frecuente. La bitácora es un mecanismo que lleva un registro por cada transacción
que se va a realizar, o que ha sido realizada. Esto permite al sistema de archivos reconstruirse por sí
sólo fácilmente tras un daño ocasionado, por ejemplo, por cierres del sistema inadecuados.
La mayoría de los sistema de archivos UNIX tienen una estructura general parecida, aunque los detalles
exactos pueden variar un poco. Los conceptos centrales son superbloque, nodo-i, bloque de datos,
bloque de directorio, y bloque de indirección. El superbloque tiene información del sistema de archivos
en conjunto, como su tamaño (la información precisa aquí depende del sistema de archivos). Un nodo-i
tiene toda la información de un archivo, salvo su nombre.
Los sistemas de archivos UNIX generalmente nos permiten crear un agujero en un archivo (esto se
realiza con la llamada al sistema lseek(); compruebe su página de manual), lo que significa que el
sistema de archivos simplemente intenta que en un lugar determinado en el archivo haya justamente
cero bytes, pero no existan sectores del disco reservados para ese lugar en el archivo (esto significa que
el archivo utilizará un poco menos de espacio en disco). Esto ocurre frecuentemente en especial para
pequeños binarios, librerías compartidas de Linux, algunas bases de datos, y algunos pocos casos
especiales. (los agujeros se implementan almacenando un valor especial en la dirección del bloque de
datos en el bloque indirecto o en el nodo-i. Esta dirección especial indica que ningún bloque de datos
está localizado para esa parte del archivo, y por lo tanto, existe un agujero en el archivo).
Jerarquía de Archivos en Linux
Montar y desmontar sistema de Archivos
Antes de que se pueda utilizar un sistema de archivos, debe ser montado. El sistema operativo realiza
entonces operaciones de mantenimiento para asegurarse que todo funciona. Como todos los archivos en UNIX
están en un mismo árbol de directorios, la operación de montaje provocará que el contenido del nuevo sistema
de archivos aparezca como el contenido de un subdirectorio existente en algún sistema de archivos ya
montado.