Sistema de Archivo

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 14

¿Qué es un sistema de archivos?

Un sistema de archivos es el sistema de almacenamiento de un dispositivo de memoria,


que estructura y organiza la escritura, búsqueda, lectura, almacenamiento, edición y
eliminación de archivos de una manera concreta. El objetivo principal de esta organización es
que el usuario pueda identificar los archivos sin lugar a error y acceder a ellos lo más rápido
posible. Los sistemas de archivos también otorgan a los archivos, entre otras, las siguientes
características:

 Convenciones para nombrar a los archivos


 Atributos de archivo
 Control(es) de acceso

Asimismo, los sistemas de archivos son un componente operativo importante, ya que actúan
como una interfaz entre el sistema operativo y todos los dispositivos conectados al equipo
(internos y externos, como las memorias USB).

Para instalar un sistema de archivos, hay que formatear el soporte de datos. Los medios de
almacenamiento que se comercializan ya vienen formateados. En el pasado, era común que
el propio usuario tuviera que configurar los nuevos soportes de datos para almacenar y
administrar los archivos.

FAT/FAT32, exFAT
FAT (del inglés File Allocation Table, Tabla de asignación de archivos) es
uno de los sistemas de archivos más simples que existe desde la década
de 1980 y tiene sus raíces en el antiguo sistema operativo MS-DOS de
Microsoft. Por lo tanto, no sorprende que FAT se creara originalmente
con los almacenamientos de baja capacidad en mente.

Como sugiere su nombre, este sistema de archivos en realidad se basa


en una tabla que sirve como un índice de su contenido. La estructura
general del sistema de ficheros se compone de tres áreas separadas:

 El sector de arranque;

 La Tabla de asignación de archivos (File Allocation Table o FAT);

 El área de almacenamiento de datos.

El sector de arranque es el primer sector en cualquier partición


formateada con FAT y contiene información importante sobre su
organización.
Luego va la Tabla de asignación de archivos (FAT) principal, así como su
copia de seguridad a la que se puede acceder en caso de un problema
de lectura de la original.

La mayor parte de la partición pertenece al área de almacenamiento de


datos que se divide en clústeres. Un clúster consta de sectores
adyacentes y se utiliza como una unidad mínima para la asignación de
archivos. Su tamaño es fijo, pero puede variar entre 512 bytes y 64
kilobytes, según el tamaño del volumen y la versión de FAT. Un archivo,
independientemente de lo pequeño que sea, ocupa todo el clúster, y el
espacio desocupado restante se desperdicia. Cuando se requieren varios
clústeres para almacenar un archivo, pueden asignarse en una cadena
consecutiva o de manera dispersa por todo el volumen, lo que provoca
la fragmentación del archivo.

Cada clúster tiene una entrada asociada en la Tabla de asignación de


archivos (FAT). Un valor cero en la Tabla indica que este clúster no se
usa actualmente, mientras que uno distinto de cero puede apuntar al
siguiente clúster del mismo archivo o a un indicador especial de su final.

Los directorios, al igual que los archivos, están en el área de


almacenamiento de datos. Se componen de entradas de directorio de 32
bytes de longitud, cada una de las cuales describe un archivo
almacenado en este directorio (o en su subdirectorio). Además del
nombre, el tamaño y otros atributos del archivo, la entrada de directorio
contiene información sobre el primer clúster del archivo. En
consecuencia, es posible descubrir dónde comienza el archivo necesario
por la entrada de directorio correspondiente, mientras que cualquier
clúster siguiente se puede encontrar a través de la Tabla de asignación
de archivos, usándola como una lista de enlaces.

A lo largo del tiempo, FAT ha sido revisado varias veces. A la versión


original le siguió FAT12, luego vino FAT16 y, finalmente, FAT32. Los
números en sus nombres indican la cantidad de bits utilizados para
dirigirse a un solo clúster: 12 bits en FAT12, 16 bits en FAT16 y 32 bits
en FAT32 respectivamente.

FAT12 y FAT16 se aplicaron a los disquetes antiguos y hoy en día no se


pueden encontrar con frecuencia. Y FAT32, por el contrario, todavía se
usa mucho, principalmente debido a su compatibilidad amplia. Es que se
puede acceder a él desde casi cualquier sistema operativo, incluidos
macOS y Linux, lo que lo convierte en una buena opción para los
dispositivos portátiles, como las tarjetas de memoria y memorias USB.
Este formato también es compatible con los teléfonos inteligentes, las
cámaras digitales, las grabadoras de vídeo, las consolas de juegos y
otros dispositivos.

Sin embargo, FAT32 no tiene la compatibilidad nativa con los


almacenamientos de datos de más de 32 GB. Por esta razón, se puede
utilizar en los almacenamientos externos o en las particiones de disco
menores de 32 GB compatibles con Windows y formateados con la
herramienta integrada de este sistema operativo, o en esos de hasta 2
TB formateados con otros medios. Este sistema de archivos tampoco
permite crear archivos mayores de 4 GB.

Para abordar este problema, se presentó exFAT (del inglés Extended


File Allocation Table, Tabla de asignación de archivos extendida). No
tiene limitaciones con respecto al tamaño y se utiliza con frecuencia en
los discos duros externos, los SSD, las memorias USB de capacidades
grandes, etc. Sin embargo, la tecnología subyacente ya está obsoleta y
tiene muchas restricciones que la hacen inadecuada para el uso
predominante en los entornos informáticos modernos.

NTFS
NTFS (del inglés New Technology File System, Sistema de archivos de
nueva tecnología) se introdujo en 1993 con Windows NT y actualmente
es el sistema de archivos más común en las computadoras de usuarios
finales que funcionan en Windows. Los sistemas operativos de la línea
Windows Server también utilizan este formato.

NTFS es significativamente mejor que FAT en numerosos aspectos. Es


bastante confiable gracias al registro por diario (journaling) y brinda
muchas funciones útiles, incluido el control de acceso, el cifrado, la
compresión de archivos, etc. Además, utiliza las estructuras de datos
más avanzadas que permiten usar mejor el espacio de almacenamiento
y lo hacen mucho menos propenso a la fragmentación. Todo el sistema
de archivos se basa en varios archivos de servicio:

 El archivo $Boot;

 El archivo $MFT (Master File Table o Tabla maestra de archivos);

 El archivo $Bitmap;

 El $LogFile y otros.
El archivo $Boot participa en el proceso de arranque y contiene muchos
parámetros importantes del sistema de ficheros.

La Tabla maestra de archivos tiene una entrada para todos y cada uno
de los ficheros del sistema de archivos. Los registros que contiene se
llaman atributos y pueden incluir todo tipo de información, desde el
nombre del archivo, su tamaño, los permisos, la fecha de
creación/última modificación hasta su contenido real. Cuando este
contenido no cabe en una entrada de la tabla MFT (que es de 1024
bytes de tamaño), NTFS asigna clústeres fuera de la MFT y crea
punteros a sus ubicaciones. Otros atributos también pueden ser
demasiado grandes para caber en una entrada de la MFT, por ejemplo,
nombres de archivo largos. Dichos atributos también obtienen clústeres
separados.

Los clústeres generalmente se asignan en secuencias continuas que se


llaman extents. NTFS siempre intenta colocar el contenido en un solo
extent. Sin embargo, si no hay clústeres contiguos disponibles, crea un
nuevo extent en otro lugar, dividiendo un archivo en fragmentos.

En NTFS, los directorios se almacenan como archivos, pero en lugar del


contenido de datos típico, dichos archivos mantienen listas de nombres
de archivo y referencias que identifican esos archivos.

El archivo $Bitmap realiza un seguimiento del estado de los clústeres.


Cada bit en él representa un clúster y puede tener el valor de 1, cuando
el clúster está ocupado, o 0, cuando está no ocupado.

Antes de alterar cualquiera de sus estructuras cruciales, NTFS registra


los cambios en $LogFile. Dicho registro (journal) permite recuperarlos
en caso de inconsistencias que pueden ser causadas por un fallo durante
su actualización. Cuando se ocurre un error durante el funcionamiento
normal, NTFS identifica el clúster defectuoso, lo registra en el archivo
$BadClus y copia los datos en otra ubicación.

En vista de su organización eficaz y un montón de funciones, NTFS es


adecuado para el uso interno en las computadoras en Windows. Por otro
lado, los dispositivos como las tarjetas de memoria o memorias USB
pueden requerir un sistema de archivos más liviano que permanezca
accesible fuera del entorno de Windows.
ReFS
ReFS (del inglés Resilient File System, Sistema de archivos resistente)
es el último desarrollo de Microsoft que fue lanzado con Windows Server
2012 y luego agregado a Windows 8.1. Ahora también está disponible
para Windows 11.

ReFS ha sido diseñado para abordar ciertas deficiencias de NTFS,


específicamente esas con respecto a la corrupción de datos. Tiene una
tolerancia a fallas mucho más alta gracias al mecanismo de Copy-on-
Write (CoW) o Copiar en escrito (VACA). Al editar los metadatos
existentes, ReFS guarda su copia en otra área en el medio de
almacenamiento y, en lugar de sobrescribirla en sitio, la actualiza y
vincula esta copia modificada al archivo correspondiente. Por lo tanto,
una cantidad considerable de copias antiguas se almacenan en
diferentes ubicaciones, lo que facilita la restauración de la integridad del
sistema de archivos y permite prevenir la pérdida de datos. ReFS
también emplea sumas de verificación (checksums) que le permiten
detectar rápidamente cualquier posible corrupción de datos.

La arquitectura de ReFS difiere absolutamente de esa de otros formatos


de Windows. Ella emplea los árboles B+ como una estructura común en
disco para representar tanto los metadatos como los datos reales de los
archivos. Este árbol está compuesto por la raíz, los nodos internos y las
hojas. Cada nodo del árbol contiene una lista ordenada de claves o
punteros a los nodos de nivel inferior (hojas).

Este diseño de ReFS lo hace óptimo para los sistemas de


almacenamiento grandes y de alta disponibilidad. Pero a pesar de sus
ventajas obvias, aún no puede ser tan estable como NTFS y tampoco
ofrece la compatibilidad con otros dispositivos basados en Windows.

HPFS
HPFS (del inglés High Performance File System, Sistema de archivos de
alto rendimiento) fue creado por Microsoft en cooperación con IBM y
lanzado al mercado con OS/2 1.20 en 1989 como un sistema de
archivos para servidores que ofrece un rendimiento mucho mejor en
comparación con FAT.

A diferencia de FAT que simplemente asigna cualquier primer clúster


libre en el disco al fragmento de archivo, HPFS busca colocar los
archivos en bloques contiguos, o al menos garantizar que sus
fragmentos (los extents) se coloquen lo más cerca posible uno de otro.

Al comienzo de HPFS, hay tres bloques de control que ocupan 18


sectores: el bloque de arranque, el súper bloque y el bloque de
repuesto.

El espacio de almacenamiento restante se divide en partes de sectores


contiguos denominados bandas que ocupan 8 MB cada una. Una banda
tiene su propio bitmap (mapa de bits) de asignación de sectores que
muestra cuáles de los sectores están ocupados (1 – ocupado, 0 – libre).

Cada archivo y directorio tiene su propio F-nodo ubicado cerca de él en


el disco – esta estructura contiene información sobre la ubicación del
archivo y sus atributos extendidos. Se utiliza una banda de directorios
especial ubicada en el centro del disco para almacenar directorios,
mientras que la estructura de directorios en sí es un árbol equilibrado
con entradas en orden alfabético.

Aún así, HPFS tenía limitaciones significativas y eventualmente se volvió


obsoleto. Ni siquiera se soporta en Windows a partir de NT 4.

APFS
APFS (del inglés Apple File System, Sistema de archivos de Apple) se
introdujo en 2017 junto con el lanzamiento de macOS High Sierra 10.13
y se diseñó exclusivamente para el uso en los productos de Apple,
incluidos Mac, iPhone, iPad, Apple Watch y Apple TV.

Este formato de nueva generación tiene como objetivo funcionar de


manera eficiente con memorias flash y unidades de estado sólido. Y esto
no sorprende, ya que la gran mayoría de los dispositivos modernos de
Apple emplean las unidades SSD como sus almacenamientos
principales. Además, APFS aborda los problemas fundamentales de
HFS+, su predecesor en los dispositivos antes mencionados, y ofrece
muchas características con respecto a la integridad de datos y el ahorro
de espacio.

El sistema de archivos utiliza la técnica de Copiar en escrito (VACA) o


Copy-on-Write (CoW) que minimiza el riesgo de corrupción. Antes de la
aparición de APFS, los cambios se escribían directamente en los bloques
de almacenamiento ocupados por los objetos existentes. Y APFS, en
cambio, nunca los sobrescribe en sitio, sino que crea sus copias y realiza
los cambios necesarios en una nueva ubicación en el almacenamiento, lo
que garantiza la protección de las modificaciones de los fallos.

APFS usa el Contenedor (Container) como un elemento principal para


almacenar datos. Un solo Contenedor puede contener varios volúmenes
(sistemas de archivos) que comparten el espacio de almacenamiento
disponible en él. La información sobre el número de bloques en el
Contenedor, el tamaño de bloque, etc. se almacena en el Superbloque
del contenedor (Container Superblock) que también sirve como un
punto de entrada a cada volumen. La asignación de bloques en todo el
Contenedor se rastrea con la ayuda de un solo bitmap (mapa de bits)
común.

Al mismo tiempo, los volúmenes tienen sus propios Superbloques del


volumen (Volume Superblock) y estructuras independientes para
almacenar datos y metadatos. Todos los archivos y las carpetas que
ellos contienen se administran mediante las estructuras binarias de
árbol de búsqueda, que se llaman Árboles B de archivos y carpetas. Los
nodos de dichos árboles almacenan claves y valores.

El contenido de cualquier archivo está representado por al menos un


extent que contiene información sobre la ubicación de su inicio y su
longitud en bloques. Todos los extents en un volumen son manejados
por un árbol B dedicado.

No obstante, a pesar de su estructura optimizada y otros beneficios


aparentes, APFS se ha desarrollado pensando principalmente en el
almacenamiento de memoria flash y es posible que no sea la mejor
opción para las unidades de disco duro mecánicas. Incluso puede causar
su fragmentación excesiva y, como resultado, conducir a un rendimiento
degradado. Asimismo, es imposible acceder a un volumen APFS desde
las versiones anteriores de macOS, por ejemplo, macOS Sierra 10.12 o
una anterior, lo que puede convertirse en un obstáculo en ciertos
escenarios de uso.

HFS+
HFS+ (del inglés Hierarchical File System Plus, Sistema de archivos
jerárquico plus), también conocido como Mac OS Extended, se lanzó en
1998 con Mac OS 8.1 y sirvía como el sistema de archivos
predeterminado para las computadoras Mac, así como para los
productos iPod y Xserve, antes de la aparición de APFS en macOS High
Sierra 10.13. Originalmente, era solo una extensión del formato HFS
heredado que ahora tiene casi cuarenta años.

HFS+ usa el mecanismo de registro por diario (journal) para prevenir la


corrupción de sus estructuras. Todas las modificaciones se documentan
en el Registro, lo que permite restaurarlas rápidamente en caso de
eventos inesperados, como cortes de energía.

Una de las estructuras centrales de HFS+ se llama Encabezado de


volumen (Volume Header) y se encuentra al comienzo de un volumen
HFS+. Este contiene los parámetros generales del sistema de ficheros
junto con las ubicaciones de otros elementos cruciales. La mayor parte
de otra información de servicio está organizada en archivos especiales
que pueden encontrarse en diferentes partes del volumen y están
representados principalmente por los árboles B.

En HFS+, todo el espacio de almacenamiento se divide en bloques de


asignación iguales. El estado de cada bloque de asignación se registra
en el Archivo de asignación (Allocation File) que es similar a un bitmap
(mapa de bits). Como regla general, dichos bloques se asignan a
archivos en grupos continuos, lo que ayuda a reducir su fragmentación.

Los archivos pueden tener dos conjuntos de datos. El contenido real del
archivo es referido como data fork, mientras que la información
adicional sobre él se almacena como resource fork. Una secuencia de
bloques contiguos que pertenece a un fork se llama extent que, a su
vez, se representa por la posición inicial y el número de bloques que
contiene.

El Archivo de catálogo (Catalog File) tiene registros para todos y cada


uno de los archivos y directorios en el sistema de archivos. Dichos
registros contienen la mayor parte de los metadatos y también los
primeros ocho extents de cada fork. Otros extents, si están disponibles,
se guardan en el Archivo de desbordamiento de extents (Extents
Overflow File). Y, por último, los atributos adicionales de archivos y
carpetas se almacenan en el Archivo de atributos (Attributes File).

Entre otras cosas, HFS+ soporta múltiples referencias al contenido del


mismo archivo, conocidas como enlaces duros. A diferencia de los
archivos normales, los enlaces duros no requieren espacio de
almacenamiento adicional: existen en el Archivo de catálogo (Catalog
File) como punteros al archivo original que, a su vez, se desplaza al
directorio raíz oculto.

Aunque HFS+ ya está desactualizado, se caracteriza por la


compatibilidad inversa, lo que permite preservar el acceso a las
computadoras en las versiones anteriores de macOS. Por lo tanto, es
poco probable que se deje de usar muy pronto.

Ext
Ext (del inglés Extended File System, Sistema de archivos extendido) se
lanzó en 1992 como el primer formato diseñado específicamente para
Linux. Sin embargo, tenía limitaciones de rendimiento serias y se
reemplazó pronto por Ext2. Este sistema de archivos y sus revisiones
posteriores, Ext3 y Ext4, se convirtieron en la opción predeterminada
para la gran mayoría de las distribuciones de Linux.

Ext2 ha demostrado ser más eficiente debido a su estructura que se


basa en el concepto de inodos. Dicho descriptor de índice (inodo)
contiene los atributos de un objeto particular, como un archivo o un
directorio, y apunta a las ubicaciones de sus datos. En Ext2, el espacio
de almacenamiento se divide en bloques que forman unidades más
grandes denominadas Grupos de bloques (Block Groups). La información
sobre todos los Grupos de bloques se almacena en la Tabla de
descriptores (Descriptor Table) ubicada justo a continuación del
Superbloque (Superblock). Cada Grupo de bloques almacena inodos en
su propia Tabla de inodos (Inode Table). Adicionalmente, monitorea el
estado de sus bloques e inodos utilizando los bitmaps de bloque y de
inodo respectivamente. Mientras tanto, el nombre de un archivo o un
directorio no forma parte de su inodo: los nombres se asignan a los
números de inodo correspondientes a través de directorios,
implementados como un tipo especial de archivos.

La mayoría de los sistemas de archivos de Linux son similares en el


sentido de que el nombre no se considera un atributo y más bien se
define como un alias de un archivo en un directorio determinado. Un
objeto de archivo puede estar vinculado desde muchas ubicaciones y
existir con diferentes nombres (los llamados enlaces duros o físicos).
Esto puede conducir a dificultades graves e incluso insuperables en la
recuperación de nombres de archivos después de la eliminación de
archivos o en caso de daños lógicos.
Ext3 es, de hecho, una versión mejorada de Ext2 que soporta el registro
por diario (journaling). En Ext3, el registro por diario está organizado
como un archivo de registro (log) que almacena todos los cambios en el
sistema de archivos y lo protege de la corrupción en caso de falla.

En Ext4, se cambió el método de asignación de datos de bloques


individuales a extents. La idea detrás de esto es escribir la mayor parte
de los datos del archivo en un área continua y luego anotar sólo la
dirección de su primer bloque y la cantidad de bloques en la secuencia.
Hasta cuatro extents pueden almacenarse directamente en el inodo,
mientras que el resto se organizan como un árbol B+. Además, Ext4
pospone la operación hasta que los datos estén realmente metidos en el
disco y, así minimiza la fragmentación.

En general, se considera uno de los sistemas de archivos de propósito


general más flexibles que también ha ganado reputación por su
estabilidad sólida.

XFS
XFS (del inglés Extended File System, Sistema de archivos extendido) es
otro sistema de archivos maduro que fue creado por Silicon Graphics e
inicialmente empleado en los servidores IRIX de la empresa. En 2001,
llegó al núcleo de Linux y ahora se soporta en la mayoría de las
distribuciones de Linux, algunas de las cuales, como, por ejemplo, Red
Hat Enterprise Linux, incluso lo usan de forma predeterminada.

Este tipo de sistema de ficheros está optimizado para almacenar


archivos y volúmenes muy grandes en un solo host. Él divide el espacio
de almacenamiento en áreas de igual tamaño denominadas Grupos de
asignación (Allocation Groups). Cada uno de los grupos opera como un
sistema de archivos distinto, es decir, tiene su propio Superbloque
(Superblock) y maneja sus propias estructuras y el uso del espacio. Este
último se controla con la ayuda de los árboles B+, uno de los cuales
registra el primer bloque en el área de espacio libre continuo y el otro,
el número de bloques de los que se compone. Los bloques de
almacenamiento se asignan a los archivos aplicando el mismo enfoque
basado en los extents. En XFS, todos los archivos y directorios están
representados por sus inodos individuales. La asignación de los extents
puede almacenarse directamente en el inodo o rastrearse mediante otro
árbol B+ vinculado a él en caso de un archivo muy grande o
fragmentado. Y al igual que los inodos en Ext, estos no contienen los
nombres que, a su vez, están disponibles sólo en las entradas de
directorio correspondientes.

XFS emplea el registro por diario (journaling) para hacer cualquier


actualización de sus metadatos. Todos los cambios se escriben primero
en el Registro (Journal) antes de que se modifiquen los bloques reales,
lo que permite su recuperación instantánea en caso de contratiempos.
En general, este tipo de sistema de archivos es altamente escalable y
funciona muy bien en el hardware de servidor.

Btrfs
Btrfs (del inglés B-tree File System, Sistema de archivos del árbol B) es
uno de los formatos de nueva generación más populares para Linux y se
está esforzando mucho para hacerlo estable. Fue desarrollado por
Oracle y se soporta por el núcleo principal de Linux desde 2009. Fedora
y SUSE ya lo emplean de forma predeterminada.

Btrfs está ajustado para funcionar en una amplia gama de dispositivos,


desde teléfonos inteligentes hasta servidores de gama alta. Además,
cuenta con unas características de un administrador de volúmenes
lógicos, puede distribuirse entre múltiples almacenamientos y brinda un
montón de otras posibilidades avanzadas.

Como sugiere su nombre, Btrfs se basa en gran medida en los árboles


B, cada uno compuesto por nodos internos y hojas. Un nodo interno
apunta a un nodo secundario o una hoja, mientras que una hoja
contiene un elemento con cierta información. El diseño y el contenido
reales de un elemento dependen del tipo de árbol B dado. El árbol B
Raíz (Root B-tree), cuya ubicación está disponible en el Superbloque
(Superblock), tiene referencias al resto de los árboles B. El árbol B
Fragmentos (Chunk B-tree) gestiona el mapeo de direcciones lógicas a
físicas, mientras que el árbol B Dispositivos (Device B-tree) vincula a la
inversa los bloques físicos de los dispositivos subyacentes con sus
direcciones virtuales. El árbol B Sistema de archivos (File System B-
tree) es responsable de la distribución de archivos y carpetas. Los
archivos pequeños se almacenan allí mismo, en los elementos extents
internos. Los grandes se colocan afuera en las áreas contiguas llamadas
extents. En este caso, un elemento de extent refiere a todos los extents
que contienen los datos del archivo. Los elementos de directorio
incluyen nombres de archivo y apuntan a sus elementos de inodo. Los
elementos de inodo, a su vez, se utilizan para almacenar otras
propiedades, como el tamaño, los permisos, etc.
Btrfs es un sistema de archivos que usa Copy-on-Write (CoW) o Copiar
en escrito (VACA). En lugar de emplear el registro (journal), él hace
copias de los bloques antes de modificarlos y luego escribe estos datos
en una ubicación libre diferente. Este mecanismo ayuda a evitar el
riesgo de corrupción de datos en caso de que se interrumpa una
actualización, por ejemplo, debido a una pérdida de energía. Gracias a
esta y a una amplia variedad de otras características atractivas, Btrfs
está ganando cada vez más adeptos entre los usuarios modernos de
Linux.

F2FS
F2FS (del inglés Flash-Friendly File System, Sistema de archivos
compatible con memoria flash) es otro formato que fue introducido por
Samsung Electronics en 2012. Ha sido diseñado específicamente para
los dispositivos de almacenamiento basados en la memoria flash NAND
y, por lo tanto, se utiliza más ampliamente en los teléfonos inteligentes
modernos y medios de almacenamiento portátiles (extraíbles).

F2FS funciona aplicando el enfoque del sistema de ficheros con


estructura de registro (LFS o log-structured file systema) y tiene en
cuenta las peculiaridades de los dispositivos de memoria flash, como el
tiempo de acceso constante y el número limitado de ciclos de reescritura
de datos. En lugar de crear un solo fragmento grande para escribir,
F2FS ensambla bloques en fragmentos separados (hasta 6) que se
escriben simultáneamente.

Él divide el espacio de almacenamiento en segmentos de tamaño fijo.


Los segmentos consecutivos forman una sección y varias secciones
constituyen una zona. La asignación de datos en ellos se realiza con la
ayuda de nodos. Estos últimos vienen en tres tipos: directos, indirectos
e inodos. Un inodo almacena los metadatos, incluidos el nombre, el
tamaño y otras propiedades del archivo; un nodo directo indica la
ubicación de sus bloques de datos, mientras que un nodo indirecto
apunta a los bloques en otros nodos. Las direcciones físicas de estos
nodos se pueden encontrar en la Tabla de direcciones de nodos (Node
Address Table o NIT). El contenido en sí se almacena en el Área
principal (Main Area). Las secciones en ella separan los bloques de datos
de los bloques de nodos con información de servicio. El estado de uso de
todos los bloques se registra en la Tabla de información de segmento
(Segment Information Table o SIT). El Área de resumen de segmento
(Segment Summary Area o SSA) especifica qué bloques están asignados
a qué nodo.
Cuando se le faltan segmentos libres, F2FS se limpia en segundo plano,
cuando el sistema está inactivo. El algoritmo de limpieza selecciona los
segmentos a limpiar en función del número de bloques utilizados según
la tabla SIT o por su "antigüedad".

La organización descrita hace que F2FS funcione bastante bien en los


almacenamientos de estado sólido. Sin embargo, hasta ahora, se ha
aplicado principalmente en los dispositivos portátiles y rara vez se ha
encontrado en los equipos de escritorio y servidores.

JFS
JFS (del inglés Journaled File System, Sistema de archivos de registro)
fue creado por IBM en 1990. La versión original, a veces denominada
JFS1, se implementó en el sistema operativo AIX de la empresa. Más
tarde, se lanzó JFS2 que se llegó a Linux después de hacerse de código
abierto.

Un volumen JFS se compone de regiones denominadas Grupos de


asignación (Allocation Groups) cada uno de los cuales contiene uno o
más Conjuntos de archivos (FileSets). Todos los archivos y directorios
están descritos por sus inodos individuales, mientras que el contenido
real está representado por uno o más extents. Todos los extents están
indexados por un árbol B+ dedicado. El contenido de los directorios
pequeños se almacena dentro de sus inodos, mientras que los más
grandes están organizados como árboles B+. Los árboles B+ también
controlan el uso del espacio de almacenamiento: el primer árbol
almacena los bloques iniciales de los extents libres y el segundo, el
número de extents libres. JFS también tiene un área de registro
separada y escribe en ella cada vez que se producen cambios en los
metadatos.

En general, JFS se considera un sistema de archivos rápido y confiable.


Aún así, rara vez se mejora y ahora está cayendo en desuso, siendo
superado por opciones más modernas.

ReiserFS
ReiserFS es un formato alternativo de Linux que está optimizado para
almacenar una gran cantidad de archivos pequeños. Fue diseñado por
Namesys en 2001 y trajo una serie de características nuevas que se
consideraron muy innovadoras en el momento de su presentación. No
obstante, finalmente, su mantenimiento se entregó a voluntarios debido
a ciertos problemas técnicos.

ReiserFS se basa en el árbol S+ compuesto por nodos internos y


secundarios (hoja). Esta estructura se utiliza para gestionar todos los
archivos, directorios y metadatos. Contiene elementos de cuatro tipos
básicos: directos, indirectos, de directorio y de estadísticas. Los
elementos directos contienen datos reales, los indirectos vinculan a
ciertos bloques de datos, los de directorio representan entradas en un
directorio y los de estadísticas incluyen propiedades de archivos y
carpetas. Cada elemento tiene su clave única que se usa para ubicarlo
en el árbol. Esta clave incluye el identificador, la dirección y el tipo del
elemento.

Los archivos y fragmentos de archivos que no ocupan todo el bloque se


combinan y se almacenan directamente en los nodos hoja (secundarios)
del árbol S+. Este mecanismo se denomina tail-packing (empaquetado
de cola) y ayuda a reducir la cantidad del espacio desperdiciado y la
fragmentación. Además, ReiserFS no realiza ningún cambio
directamente en el árbol S+: primero lo escribe en el Registro (Journal)
y luego lo copia en la ubicación requerida en el almacenamiento.

Con todo, ReiserFS tiene buenas capacidades de búsqueda y permite


asignar archivos pequeños de manera compacta. Pero este formato ya
no se soporta activamente y es poco probable que siga siendo relevante
en el futuro próximo.

También podría gustarte