Articulo de referencia

Sistema de archivos

En informática , un sistema de archivos ( a menudo abreviado como FS o fs ) rige la organización y el acceso a los archivos . Un sistema de archivos local es una capacidad de un...

En informática , un sistema de archivos ( a menudo abreviado como FS o fs ) rige la organización y el acceso a los archivos . Un sistema de archivos local es una capacidad de un sistema operativo que presta servicio a las aplicaciones que se ejecutan en el mismo ordenador . [ 1 ] [ 2 ] Un sistema de archivos distribuido es un protocolo que proporciona acceso a archivos entre ordenadores conectados en red .

Un sistema de archivos proporciona un servicio de almacenamiento de datos que permite a las aplicaciones compartir almacenamiento masivo . Sin un sistema de archivos, las aplicaciones podrían acceder al almacenamiento de formas incompatibles , lo que provocaría conflictos de recursos , corrupción de datos y pérdida de datos .

Existen numerosos diseños e implementaciones de sistemas de archivos , con diversas estructuras y características, y diversas características resultantes como velocidad, flexibilidad, seguridad, tamaño y más.

Se han desarrollado sistemas de archivos para muchos tipos de dispositivos de almacenamiento , incluyendo discos duros (HDD), unidades de estado sólido (SSD), cintas magnéticas y discos ópticos . [ 3 ]

Una parte de la memoria principal del ordenador puede configurarse como un disco RAM que sirve como dispositivo de almacenamiento para un sistema de archivos. Los sistemas de archivos como tmpfs pueden almacenar archivos en memoria virtual .

Un sistema de archivos virtual proporciona acceso a archivos que se calculan bajo demanda, denominados archivos virtuales (por ejemplo, los proporcionados por procfs y sysfs ), o que se asignan a otro sistema de almacenamiento subyacente.

Etimología

Desde aproximadamente 1900 y antes de la llegada de las computadoras, los términos sistema de archivos , sistema de archivo y sistema para archivar se usaban para describir métodos de organización, almacenamiento y recuperación de documentos en papel. [ 4 ] Para 1961, el término sistema de archivos se aplicaba al archivo computarizado junto con su significado original. [ 5 ] Para 1964, su uso era generalizado. [ 6 ]

Arquitectura

La arquitectura de un sistema de archivos local puede describirse como capas de abstracción, aunque un diseño particular del sistema de archivos no separe realmente los conceptos. [ 7 ]

La capa del sistema de archivos lógico proporciona acceso de nivel relativamente alto a través de una interfaz de programación de aplicaciones (API) para operaciones de archivos, incluyendo abrir, cerrar, leer y escribir , delegando operaciones a capas inferiores. Esta capa gestiona las entradas de la tabla de archivos abiertos y los descriptores de archivos por proceso. [ 8 ] Proporciona acceso a archivos, operaciones de directorio, seguridad y protección. [ 7 ]

El sistema de archivos virtual , una capa opcional, admite múltiples instancias concurrentes de sistemas de archivos físicos, cada una de las cuales se denomina implementación del sistema de archivos. [ 8 ]

La capa del sistema de archivos físico proporciona acceso de nivel relativamente bajo a un dispositivo de almacenamiento (por ejemplo, un disco). Lee y escribe bloques de datos , proporciona almacenamiento en búfer y otras funciones de gestión de memoria , y controla la ubicación de los bloques en posiciones específicas del medio de almacenamiento. Esta capa utiliza controladores de dispositivo o E/S de canal para controlar el dispositivo de almacenamiento. [ 7 ]

Atributos

nombres de archivo

Un nombre de archivo , o nombre de archivo , identifica un archivo para las aplicaciones que lo consumen y, en algunos casos, para los usuarios.

Un nombre de archivo es único para que una aplicación pueda referirse a un único archivo con ese nombre. Si el sistema de archivos admite directorios, la unicidad del nombre de archivo se aplica generalmente dentro del contexto de cada directorio. En otras palabras, un sistema de almacenamiento puede contener varios archivos con el mismo nombre, pero no en el mismo directorio.

La mayoría de los sistemas de archivos limitan la longitud del nombre de un archivo.

Algunos sistemas de archivos distinguen entre mayúsculas y minúsculas para los nombres de archivo, mientras que otros no. Por ejemplo, los nombres MYFILEy myfilecoinciden con el mismo archivo si no se distingue entre mayúsculas y minúsculas, pero con archivos diferentes si sí se distingue.

La mayoría de los sistemas de archivos modernos permiten que un nombre de archivo contenga una amplia gama de caracteres del conjunto de caracteres Unicode . Algunos restringen caracteres como los que se utilizan para indicar atributos especiales, como un dispositivo, un tipo de dispositivo, un prefijo de directorio, un separador de ruta de archivo o el tipo de archivo.

Directorios

Los sistemas de archivos suelen permitir organizar los archivos en directorios , también llamados carpetas , que los agrupan.

Esto puede implementarse asociando el nombre del archivo con un índice en una tabla de contenido o con un inodo en un sistema de archivos tipo Unix .

Las estructuras de directorios pueden ser planas (es decir, lineales) o permitir jerarquías al permitir que un directorio contenga otros directorios, llamados subdirectorios.

El primer sistema de archivos que admitía jerarquías arbitrarias de directorios se utilizó en el sistema operativo Multics . [ 9 ] Los sistemas de archivos nativos de los sistemas tipo Unix también admiten jerarquías de directorios arbitrarias, como lo hacen el Sistema de Archivos Jerárquico de Apple y su sucesor HFS+ en el Mac OS clásico , el sistema de archivos FAT en MS-DOS 2.0 y versiones posteriores de MS-DOS y en Microsoft Windows , el sistema de archivos NTFS en la familia de sistemas operativos Windows NT , y el ODS-2 (On-Disk Structure-2) y niveles superiores del sistema de archivos Files-11 en OpenVMS .

Metadatos

Además de los datos, el contenido del archivo, un sistema de archivos también gestiona los metadatos asociados , que pueden incluir, entre otros:

Un sistema de archivos almacena los metadatos asociados por separado del contenido del archivo.

La mayoría de los sistemas de archivos almacenan los nombres de todos los archivos de un directorio en un solo lugar: la tabla de directorios de ese directorio, que a menudo se almacena como cualquier otro archivo. Muchos sistemas de archivos colocan solo algunos de los metadatos de un archivo en la tabla de directorios, y el resto de los metadatos de ese archivo en una estructura completamente separada, como el inodo .

La mayoría de los sistemas de archivos también almacenan metadatos no asociados a ningún archivo en particular. Estos metadatos incluyen información sobre regiones no utilizadas ( mapa de bits de espacio libre , mapa de disponibilidad de bloques) e información sobre sectores defectuosos . A menudo, esta información sobre un grupo de asignación se almacena dentro del propio grupo.

Se pueden asociar atributos adicionales a sistemas de archivos como NTFS , XFS , ext2 , ext3 , algunas versiones de UFS y HFS+ , mediante atributos de archivo extendidos . Algunos sistemas de archivos permiten definir atributos como el autor del documento, la codificación de caracteres o el tamaño de una imagen.

Algunos sistemas de archivos permiten asociar diferentes conjuntos de datos a un mismo nombre de archivo. Estos conjuntos separados pueden denominarse flujos o bifurcaciones . Apple lleva mucho tiempo utilizando un sistema de archivos bifurcado en Macintosh, y Microsoft admite flujos en NTFS. Algunos sistemas de archivos mantienen varias revisiones anteriores de un archivo bajo un mismo nombre; el nombre del archivo por sí solo recupera la versión más reciente, mientras que se puede acceder a versiones anteriores guardadas mediante una convención de nomenclatura especial, como "nombrearchivo;4" o "nombrearchivo(-4)", para acceder a la versión guardada cuatro veces atrás.

Organización del espacio de almacenamiento

Un sistema de archivos local realiza un seguimiento de qué áreas de almacenamiento pertenecen a qué archivo y cuáles no se están utilizando.

Cuando un sistema de archivos crea un archivo, asigna espacio para los datos. Algunos sistemas de archivos permiten o requieren especificar una asignación de espacio inicial y asignaciones incrementales posteriores a medida que el archivo crece.

Para eliminar un archivo, el sistema de archivos registra que el espacio que ocupaba está libre (disponible para ser utilizado por otro archivo).

Un ejemplo de espacio sobrante, demostrado con clústeres NTFS de 4096 bytes : 100 000 archivos, cada uno de cinco bytes, que equivalen a 500 000 bytes de datos reales pero requieren 409 600 000 bytes de espacio en disco para su almacenamiento.

Un sistema de archivos local gestiona el espacio de almacenamiento para proporcionar un nivel de fiabilidad y eficiencia. Generalmente, asigna el espacio del dispositivo de almacenamiento de forma granular, normalmente en varias unidades físicas (es decir, bytes ). Por ejemplo, en Apple DOS de principios de la década de 1980, los sectores de 256 bytes en un disquete de 140 kilobytes utilizaban un mapa de pistas/sectores . [ 10 ]

La naturaleza granular genera espacio no utilizado, a veces llamado espacio libre , para cada archivo, excepto para aquellos que tienen un tamaño excepcional que es un múltiplo de la asignación granular. [ 11 ] Para una asignación de 512 bytes, el espacio no utilizado promedio es de 256 bytes. Para  clústeres de 64 KB, el espacio no utilizado promedio es de 32  KB.

Por lo general, el tamaño de la unidad de asignación se define al configurar el almacenamiento. Elegir un tamaño relativamente pequeño en comparación con los archivos almacenados genera una sobrecarga de acceso excesiva. Elegir un tamaño relativamente grande genera un exceso de espacio sin usar. Seleccionar un tamaño de asignación basado en el tamaño promedio de los archivos que se espera almacenar tiende a minimizar el espacio sin usar.

Fragmentación

Los sistemas de archivos pueden fragmentarse.

A medida que un sistema de archivos crea, modifica y elimina archivos, la representación de almacenamiento subyacente puede fragmentarse . Los archivos y el espacio no utilizado entre ellos ocuparán bloques de asignación que no son contiguos.

Un archivo se fragmenta si el espacio necesario para almacenar su contenido no se puede asignar en bloques contiguos. El espacio libre se fragmenta cuando se eliminan archivos. [ 12 ]

La fragmentación es invisible para el usuario final y el sistema sigue funcionando correctamente. Sin embargo, puede degradar el rendimiento en algunos dispositivos de almacenamiento que funcionan mejor con bloques contiguos, como los discos duros . Otros dispositivos, como las unidades de estado sólido, no se ven afectados por la fragmentación.

Control de acceso

Un sistema de archivos suele admitir el control de acceso a los datos que gestiona.

El objetivo del control de acceso suele ser impedir que determinados usuarios lean o modifiquen determinados archivos.

El control de acceso también puede restringir el acceso por programa para garantizar que los datos se modifiquen de forma controlada. Algunos ejemplos incluyen contraseñas almacenadas en los metadatos del archivo o en otro lugar, y permisos de archivo en forma de bits de permisos, listas de control de acceso o capacidades . La necesidad de que las utilidades del sistema de archivos puedan acceder a los datos a nivel del medio para reorganizar las estructuras y proporcionar copias de seguridad eficientes suele implicar que estas solo son efectivas para usuarios respetuosos, pero no contra intrusos.

En ocasiones, el sistema de archivos incluye métodos para cifrar los datos. Esto resulta muy eficaz, ya que las utilidades del sistema de archivos no necesitan conocer la clave de cifrado para gestionar los datos correctamente. Sin embargo, entre los riesgos de depender del cifrado se encuentra la posibilidad de que un atacante copie los datos y los descifre mediante fuerza bruta. Además, perder la clave implica perder los datos.

cuota de almacenamiento

Ejemplo de qgroup (grupo de cuotas) de un sistema de archivos btrfs

Algunos sistemas operativos permiten al administrador del sistema habilitar cuotas de disco para limitar el uso del espacio de almacenamiento por parte del usuario.

Integridad de los datos

Un sistema de archivos normalmente garantiza que los datos almacenados permanezcan consistentes tanto en operaciones normales como en situaciones excepcionales como:

  • El programa que accede al archivo no informa al sistema de archivos que ha completado el acceso al archivo (para cerrarlo).
  • El acceso al programa finaliza de forma anormal (se bloquea).
  • fracaso de los medios
  • pérdida de conexión con sistemas remotos
  • fallo del sistema operativo
  • Reinicio del sistema ( reinicio suave )
  • Fallo de alimentación ( reinicio forzado )

La recuperación ante situaciones excepcionales puede incluir la actualización de metadatos, entradas de directorio y el manejo de datos que se almacenaron en búfer pero no se escribieron en los medios de almacenamiento.

Grabación

Un sistema de archivos podría registrar eventos para permitir el análisis de problemas como:

  • Problemas de archivo o del sistema y rendimiento
  • acceso nefasto

Acceso a los datos

Acceso al flujo de bytes

Muchos sistemas de archivos acceden a los datos como una secuencia de bytes . Normalmente, para leer datos de un archivo, un programa proporciona un búfer de memoria y el sistema de archivos recupera los datos del medio y luego los escribe en el búfer. Una escritura implica que el programa proporciona un búfer de bytes que el sistema de archivos lee y luego almacena en el medio.

Acceso a los registros

Algunos sistemas de archivos, o capas que se superponen a un sistema de archivos, permiten que un programa defina un registro de manera que pueda leer y escribir datos como una estructura, y no como una secuencia desorganizada de bytes.

Si se utiliza una definición de registro de longitud fija , la localización del enésimo registro se puede calcular matemáticamente, lo cual es relativamente rápido en comparación con el análisis de los datos para encontrar separadores de registros.

Una identificación para cada registro, también conocida como clave, permite que un programa lea, escriba y actualice registros sin importar su ubicación en el almacenamiento. Dicho almacenamiento requiere la gestión de bloques de medios, generalmente separando los bloques de claves de los bloques de datos. Se pueden desarrollar algoritmos eficientes con estructuras piramidales para localizar registros. [ 13 ]

Servicios públicos

Normalmente, el usuario puede gestionar un sistema de archivos mediante diversos programas de utilidad.

Algunas utilidades permiten al usuario crear, configurar y eliminar una instancia de un sistema de archivos. También pueden permitir ampliar o reducir el espacio asignado al sistema de archivos.

Las utilidades de directorio pueden usarse para crear, renombrar y eliminar entradas de directorio , también conocidas como dentries (singular: dentry ), [ 14 ] y para modificar los metadatos asociados a un directorio. Las utilidades de directorio también pueden incluir capacidades para crear enlaces adicionales a un directorio ( enlaces duros en Unix ), para renombrar enlaces principales ("." en sistemas operativos tipo Unix ) y para crear enlaces bidireccionales a archivos.

Las utilidades de archivos crean, listan, copian, mueven y eliminan archivos, y modifican sus metadatos. Pueden truncar datos, truncar o extender la asignación de espacio, añadir contenido, mover y modificar archivos directamente. Según la estructura subyacente del sistema de archivos, pueden proporcionar un mecanismo para añadir contenido al principio o truncar el inicio de un archivo, insertar entradas en medio o eliminarlas. Las utilidades para liberar espacio para archivos eliminados, si el sistema de archivos ofrece una función de recuperación, también pertenecen a esta categoría.

Algunos sistemas de archivos aplazan operaciones como la reorganización del espacio libre, el borrado seguro del espacio libre y la reconstrucción de estructuras jerárquicas, proporcionando utilidades para realizar estas funciones en momentos de mínima actividad. Un ejemplo son las utilidades de desfragmentación del sistema de archivos .

Algunas de las funciones más importantes de las utilidades del sistema de archivos son las actividades de supervisión, que pueden implicar eludir la propiedad o el acceso directo al dispositivo subyacente. Estas incluyen copias de seguridad y recuperación de alto rendimiento, replicación de datos y reorganización de diversas estructuras de datos y tablas de asignación dentro del sistema de archivos.

API del sistema de archivos

Las utilidades, las bibliotecas y los programas utilizan las API del sistema de archivos para realizar solicitudes al mismo. Estas solicitudes incluyen la transferencia de datos, el posicionamiento, la actualización de metadatos, la gestión de directorios, la gestión de especificaciones de acceso y la eliminación de archivos.

Múltiples sistemas de archivos dentro de un mismo sistema.

Con frecuencia, los sistemas de venta minorista están configurados con un único sistema de archivos que ocupa todo el dispositivo de almacenamiento .

Otro enfoque consiste en particionar el disco para poder utilizar varios sistemas de archivos con diferentes atributos. Un sistema de archivos, para usarlo como caché del navegador o almacenamiento de correo electrónico, podría configurarse con un tamaño de asignación pequeño. Esto mantiene la actividad de creación y eliminación de archivos típica de la actividad del navegador en un área reducida del disco donde no interferirá con otras asignaciones de archivos. Otra partición podría crearse para el almacenamiento de archivos de audio o vídeo con un tamaño de bloque relativamente grande. Otra partición podría configurarse normalmente como de solo lectura y solo habilitarse periódicamente para escritura. Algunos sistemas de archivos, como ZFS y APFS , admiten múltiples sistemas de archivos que comparten un grupo común de bloques libres, lo que permite utilizar varios sistemas de archivos con diferentes atributos sin tener que reservar una cantidad fija de espacio para cada uno. [ 15 ] [ 16 ]

Un tercer enfoque, utilizado principalmente en sistemas en la nube, consiste en usar " imágenes de disco " para alojar sistemas de archivos adicionales, con o sin los mismos atributos, dentro de otro sistema de archivos (anfitrión) como si fueran archivos. Un ejemplo común es la virtualización: un usuario puede ejecutar una distribución experimental de Linux (que utiliza el sistema de archivos ext4 ) en una máquina virtual dentro de su entorno de producción de Windows (que utiliza NTFS ). El sistema de archivos ext4 reside en una imagen de disco, que se trata como un archivo (o varios, según el hipervisor y la configuración) en el sistema de archivos anfitrión NTFS.

Tener varios sistemas de archivos en un solo sistema tiene la ventaja adicional de que, en caso de que uno de ellos se corrompa, los demás suelen permanecer intactos. Esto incluye la destrucción del sistema de archivos por virus o incluso un sistema que no arranca. Las utilidades del sistema de archivos que requieren acceso dedicado pueden completarse eficazmente por partes. Además, la desfragmentación puede ser más efectiva. Varias utilidades de mantenimiento del sistema, como los análisis de virus y las copias de seguridad, también pueden procesarse por segmentos. Por ejemplo, no es necesario hacer una copia de seguridad del sistema de archivos que contiene vídeos junto con todos los demás archivos si no se ha añadido ninguno desde la última copia de seguridad. En cuanto a los archivos de imagen, se pueden crear fácilmente imágenes diferenciales que contengan solo los datos nuevos escritos en la imagen maestra (original). Las imágenes diferenciales se pueden usar tanto por motivos de seguridad (como un sistema desechable: se puede restaurar rápidamente si se destruye o se contamina con un virus, ya que la imagen antigua se puede eliminar y se puede crear una nueva en cuestión de segundos, incluso sin procedimientos automatizados) como para la rápida implementación de máquinas virtuales (ya que las imágenes diferenciales se pueden generar rápidamente mediante un script en lotes).

Tipos

medios de almacenamiento

Sistemas de archivos de disco

Un sistema de archivos de disco aprovecha la capacidad de los medios de almacenamiento de disco para direccionar datos aleatoriamente en un corto período de tiempo. Otras consideraciones incluyen la velocidad de acceso a los datos posteriores a los solicitados inicialmente y la anticipación de que los datos posteriores también puedan ser solicitados. Esto permite que múltiples usuarios (o procesos) accedan a varios datos en el disco sin importar la ubicación secuencial de los datos. Ejemplos incluyen FAT ( FAT12 , FAT16 , FAT32 ), exFAT , NTFS , ReFS , HFS y HFS+ , HPFS , APFS , UFS , ext2 , ext3 , ext4 , XFS , btrfs , Files-11 , Veritas File System , VMFS , ZFS , ReiserFS , NSS y ScoutFS. Algunos sistemas de archivos de disco son sistemas de archivos con registro de transacciones o sistemas de archivos con control de versiones .

discos ópticos

ISO 9660 y el formato de disco universal (UDF) son dos formatos comunes para discos compactos , DVD y discos Blu-ray . Mount Rainier es una extensión de UDF compatible con la versión 2.6 del kernel de Linux y con Windows Vista, que facilita la reescritura a DVD.

Sistemas de archivos flash

Un sistema de archivos flash considera las capacidades, el rendimiento y las limitaciones especiales de los dispositivos de memoria flash . Con frecuencia, un sistema de archivos de disco puede usar un dispositivo de memoria flash como medio de almacenamiento subyacente, pero es mucho mejor usar un sistema de archivos diseñado específicamente para un dispositivo flash. [ 17 ]

Sistemas de archivos de cinta

Un sistema de archivos en cinta es un sistema de archivos y un formato de cinta diseñado para almacenar archivos en cinta magnética. Las cintas magnéticas son medios de almacenamiento secuencial con tiempos de acceso aleatorio a datos significativamente más largos que los discos, lo que plantea desafíos para la creación y la gestión eficiente de un sistema de archivos de propósito general.

En un sistema de archivos de disco, normalmente existe un directorio maestro y un mapa de regiones de datos utilizadas y libres. Cualquier adición, modificación o eliminación de archivos requiere actualizar el directorio y los mapas de regiones utilizadas/libres. El acceso aleatorio a las regiones de datos se mide en milisegundos, por lo que este sistema funciona bien para discos.

La cinta requiere un movimiento lineal para enrollar y desenrollar bobinas de soporte potencialmente muy largas. Este movimiento de la cinta puede tardar desde varios segundos hasta varios minutos en desplazar el cabezal de lectura/escritura de un extremo a otro.

En consecuencia, un directorio maestro de archivos y un mapa de uso pueden ser extremadamente lentos e ineficientes con cintas magnéticas. La escritura generalmente implica leer el mapa de uso de bloques para encontrar bloques libres para escribir, actualizar el mapa de uso y el directorio para agregar los datos y luego avanzar la cinta para escribir los datos en la ubicación correcta. Cada escritura de archivo adicional requiere actualizar el mapa y el directorio y escribir los datos, lo que puede tardar varios segundos por archivo.

En cambio, los sistemas de archivos en cinta suelen permitir que el directorio de archivos se extienda por toda la cinta, mezclado con los datos, lo que se conoce como transmisión continua , de modo que no se requieren movimientos de cinta repetidos y que consumen mucho tiempo para escribir nuevos datos.

Sin embargo, un efecto secundario de este diseño es que, por lo general, leer el directorio de archivos de una cinta requiere escanear toda la cinta para leer todas las entradas dispersas. La mayoría del software de archivado de datos que funciona con almacenamiento en cinta guarda una copia local del catálogo de la cinta en un sistema de archivos de disco, de modo que se pueden agregar archivos a una cinta rápidamente sin tener que volver a escanear el soporte. La copia local del catálogo de la cinta se suele descartar si no se utiliza durante un período de tiempo determinado; transcurrido este tiempo, la cinta debe volver a escanearse si se va a utilizar en el futuro.

IBM ha desarrollado un sistema de archivos para cinta denominado Linear Tape File System (LTFS) . La implementación de IBM de este sistema de archivos se ha publicado como el producto de código abierto IBM Linear Tape File System — Single Drive Edition (LTFS-SDE) . El Linear Tape File System utiliza una partición independiente en la cinta para registrar los metadatos del índice, evitando así los problemas asociados con la dispersión de las entradas del directorio a lo largo de toda la cinta.

Formato de cinta

Grabar, borrar o formatear datos en una cinta suele ser un proceso que consume mucho tiempo y puede tardar varias horas en cintas grandes. [ a ] Con muchas tecnologías de cintas de datos, no es necesario formatear la cinta antes de sobrescribir nuevos datos. Esto se debe a la naturaleza intrínsecamente destructiva de sobrescribir datos en soportes secuenciales.

Debido al tiempo que puede llevar formatear una cinta, normalmente estas vienen preformateadas para que el usuario no tenga que dedicar tiempo a preparar cada cinta nueva. Lo único necesario suele ser escribir una etiqueta de identificación en la cinta antes de usarla, e incluso esto puede hacerse automáticamente mediante software la primera vez que se utiliza una cinta nueva.

Sistema de archivos mínimo / almacenamiento de casetes de audio

En la década de 1970, los dispositivos de disco y cinta digital eran demasiado caros para algunos de los primeros usuarios de microcomputadoras . Se ideó un sistema básico y económico de almacenamiento de datos que utilizaba cintas de casete de audio comunes .

Cuando el sistema necesitaba escribir datos, se notificaba al usuario que pulsara "RECORD" en la grabadora de casete y, a continuación, "RETURN" en el teclado para indicarle que la grabadora estaba grabando. El sistema grababa un sonido para sincronizar el tiempo y, a continuación, modulaba sonidos que codificaban un prefijo, los datos, una suma de comprobación y un sufijo. Cuando el sistema necesitaba leer datos, se le indicaba al usuario que pulsara "PLAY" en la grabadora de casete. El sistema escuchaba los sonidos de la cinta, esperando hasta que un sonido rítmico se reconociera como la sincronización. A continuación, el sistema interpretaba los sonidos subsiguientes como datos. Una vez completada la lectura de datos, el sistema notificaba al usuario que pulsara "STOP" en la grabadora de casete. Era un sistema primitivo, pero (en general) funcionaba. Los datos se almacenaban secuencialmente, normalmente en un formato sin nombre, aunque algunos sistemas (como la serie de ordenadores Commodore PET ) permitían nombrar los archivos. Se podían escribir y localizar varios conjuntos de datos avanzando rápidamente la cinta y observando el contador para encontrar el inicio aproximado de la siguiente región de datos. El usuario podía tener que escuchar los sonidos para encontrar el punto exacto donde comenzar a reproducir la siguiente región de datos. Algunas implementaciones incluso incluían sonidos audibles intercalados con los datos.

Sistemas de archivos de bases de datos

Otro concepto para la gestión de archivos es la idea de un sistema de archivos basado en bases de datos. En lugar de, o además de, la gestión jerárquica estructurada, los archivos se identifican por sus características, como el tipo de archivo, el tema, el autor o metadatos ricos similares . [ 18 ]

IBM DB2 para i [ 19 ] (anteriormente conocido como DB2/400 y DB2 para i5/OS) es un sistema de archivos de base de datos como parte del sistema operativo basado en objetos IBM i [ 20 ] (anteriormente conocido como OS/400 e i5/OS), que incorpora un almacenamiento de un solo nivel y se ejecuta en IBM Power Systems (anteriormente conocido como AS/400 e iSeries), diseñado por Frank G. Soltis, antiguo científico jefe de IBM para IBM i. Alrededor de 1978 a 1988, Frank G. Soltis y su equipo en IBM Rochester habían diseñado y aplicado con éxito tecnologías como el sistema de archivos de base de datos donde otros como Microsoft posteriormente no lograron. [ 21 ] Estas tecnologías se conocen informalmente como 'Fortaleza Rochester' y eran en algunos aspectos básicos extendidos de las primeras tecnologías de Mainframe, pero en muchos sentidos más avanzadas desde una perspectiva tecnológica .

Otros proyectos que no son sistemas de archivos de base de datos "puros", pero que utilizan algunos aspectos de un sistema de archivos de base de datos:

  • Muchos sistemas de gestión de contenido web utilizan un sistema de gestión de bases de datos relacionales (DBMS) para almacenar y recuperar archivos. Por ejemplo, los archivos XHTML se almacenan como XML o campos de texto, mientras que los archivos de imagen se almacenan como campos binarios (BLOB). Las sentencias SQL SELECT (con XPath opcional ) recuperan los archivos y permiten el uso de una lógica sofisticada y asociaciones de información más ricas que los sistemas de archivos convencionales. Muchos CMS también ofrecen la opción de almacenar únicamente los metadatos en la base de datos, utilizando el sistema de archivos estándar para almacenar el contenido de los archivos.
  • Los sistemas de archivos de gran tamaño, representados por aplicaciones como Apache Hadoop y Google File System , utilizan algunos conceptos de los sistemas de archivos de bases de datos .

Sistemas de archivos transaccionales

Algunos programas necesitan realizar múltiples cambios en el sistema de archivos o, si uno o más de estos cambios fallan por algún motivo, no realizar ninguno. Por ejemplo, un programa que instala o actualiza software puede escribir archivos ejecutables, bibliotecas o archivos de configuración. Si parte de la escritura falla y el software queda parcialmente instalado o actualizado, puede dañarse o volverse inutilizable. Una actualización incompleta de una utilidad clave del sistema, como la consola de comandos , puede dejar todo el sistema inutilizable.

El procesamiento de transacciones introduce la garantía de atomicidad , asegurando que todas las operaciones dentro de una transacción se confirmen o que la transacción se pueda abortar y el sistema descarte todos sus resultados parciales. Esto significa que, en caso de fallo o corte de energía, tras la recuperación, el estado almacenado será consistente. El software se instalará por completo o la instalación fallida se revertirá por completo, pero no quedará en el sistema una instalación parcial inutilizable. Las transacciones también proporcionan la garantía de aislamiento , lo que significa que las operaciones dentro de una transacción están ocultas para otros subprocesos del sistema hasta que la transacción se confirme, y que las operaciones que interfieran en el sistema se serializarán correctamente con la transacción.

Windows, a partir de Vista, añadió soporte para transacciones a NTFS , en una función llamada NTFS transaccional , pero su uso ahora se desaconseja. [ 22 ] Existen varios prototipos de investigación de sistemas de archivos transaccionales para sistemas UNIX, incluyendo el sistema de archivos Valor, [ 23 ] Amino, [ 24 ] LFS, [ 25 ] y un sistema de archivos transaccional ext3 en el núcleo TxOS, [ 26 ] así como sistemas de archivos transaccionales dirigidos a sistemas embebidos, como TFFS. [ 27 ]

Garantizar la coherencia entre múltiples operaciones del sistema de archivos es difícil, si no imposible, sin transacciones del sistema de archivos. El bloqueo de archivos puede utilizarse como mecanismo de control de concurrencia para archivos individuales, pero normalmente no protege la estructura de directorios ni los metadatos de los archivos. Por ejemplo, el bloqueo de archivos no puede evitar condiciones de carrera TOCTTOU en enlaces simbólicos. El bloqueo de archivos tampoco puede revertir automáticamente una operación fallida, como una actualización de software; esto requiere atomicidad.

El registro de transacciones en sistemas de archivos es una técnica que se utiliza para introducir consistencia a nivel de transacción en las estructuras de los sistemas de archivos. Las transacciones del registro no se exponen a los programas como parte de la API del sistema operativo; solo se utilizan internamente para garantizar la consistencia a la granularidad de una sola llamada al sistema.

Los sistemas de copia de seguridad de datos generalmente no admiten la copia de seguridad directa de datos almacenados de forma transaccional, lo que dificulta la recuperación de conjuntos de datos fiables y consistentes. La mayoría del software de copia de seguridad simplemente registra qué archivos han cambiado desde un momento determinado, independientemente del estado transaccional compartido entre los distintos archivos del conjunto de datos. Como solución alternativa, algunos sistemas de bases de datos generan un archivo de estado archivado que contiene todos los datos hasta ese momento, y el software de copia de seguridad solo realiza una copia de seguridad de dicho archivo, sin interactuar directamente con las bases de datos transaccionales activas. La recuperación requiere la recreación independiente de la base de datos a partir del archivo de estado una vez que el software de copia de seguridad lo haya restaurado.

Sistemas de archivos de red

Un sistema de archivos de red es un sistema de archivos que actúa como cliente para un protocolo de acceso remoto a archivos, proporcionando acceso a archivos en un servidor. Los programas que utilizan interfaces locales pueden crear, administrar y acceder de forma transparente a directorios y archivos jerárquicos en equipos remotos conectados a la red. Ejemplos de sistemas de archivos de red incluyen clientes para los protocolos NFS , [ 28 ] AFS , SMB y clientes similares a sistemas de archivos para FTP y WebDAV .

Sistemas de archivos de disco compartido

Un sistema de archivos de disco compartido es aquel en el que varias máquinas (generalmente servidores) tienen acceso al mismo subsistema de disco externo (generalmente una red de área de almacenamiento ). El sistema de archivos arbitra el acceso a dicho subsistema, evitando colisiones de escritura. [ 29 ] Algunos ejemplos son GFS2 de Red Hat , GPFS , ahora conocido como Spectrum Scale, de IBM, SFS de DataPlow, CXFS de SGI , StorNext de Quantum Corporation y ScoutFS de Versity.

Sistemas de archivos especiales

Algunos sistemas de archivos exponen elementos del sistema operativo como archivos para que se pueda interactuar con ellos a través de la API del sistema de archivos . Esto es común en sistemas operativos tipo Unix y, en menor medida, en otros sistemas operativos. Algunos ejemplos son:

  • devfs , udev , TOPS-10 exponen los dispositivos de E/S o pseudodispositivos como archivos especiales.
  • configfs y sysfs exponen archivos especiales que se pueden usar para consultar y configurar información del kernel de Linux.
  • procfs expone la información del proceso como archivos especiales.

Compatibilidad con jerarquías de directorios

Sistemas de archivos planos

En un sistema de archivos plano, no existen subdirectorios ; los archivos se almacenan en un disco sin jerarquía. Si bien esto es sencillo, se vuelve engorroso a medida que aumenta el número de archivos y dificulta su organización en grupos relacionados.

Los sistemas centrales DOS/360 y OS/360 almacenan entradas para todos los archivos en un paquete de discos ( volumen ) en un directorio del paquete llamado Tabla de Contenidos del Volumen (VTOC).

Algunos sistemas operativos para minicomputadoras , como el RT-11 , tenían un sistema de archivos plano con un único directorio de nivel superior. Otros, como el RSX-11 , admitían un directorio de nivel superior y subdirectorios para las cuentas de usuario, pero no admitían subdirectorios dentro de los directorios de las cuentas de usuario.

La mayoría de los sistemas operativos para microordenadores de 8 bits utilizaban originalmente sistemas de archivos planos (por ejemplo, Apple DOS , Atari DOS ). Las máquinas CP/M utilizan un sistema de archivos plano, donde los archivos se pueden asignar a una de las 16 áreas de usuario y las operaciones genéricas de archivos se limitan a trabajar en una sola, en lugar de hacerlo por defecto en todas. Estas áreas de usuario no son más que atributos especiales asociados a los archivos; no es necesario definir una cuota específica para cada una de ellas y los archivos se pueden añadir a grupos mientras haya espacio libre en el disco.

El sistema de archivos FAT en IBM PC DOS / MS-DOS era un sistema de archivos plano hasta la versión 2.0 de DOS, cuando se añadió la compatibilidad con subdirectorios.

El sistema operativo clásico Mac OS para Macintosh solo admitía el sistema de archivos plano de Macintosh hasta que se introdujo el sistema de archivos jerárquico en la versión 2.1. El programa de gestión de archivos, Finder , creaba la ilusión de un sistema de archivos parcialmente jerárquico. Esta estructura requería que cada archivo tuviera un nombre único, incluso si parecía estar en una carpeta separada.

Amazon S3 , un servicio de almacenamiento remoto del siglo XXI que se suma a la familia de sistemas de archivos planos , se caracteriza por su simplicidad intencionada, permitiendo a los usuarios personalizar el almacenamiento de sus datos. Sus únicas estructuras son los depósitos (similares a un disco duro de tamaño ilimitado) y los objetos (similares, aunque no idénticos, al concepto estándar de archivo). La gestión avanzada de archivos se logra mediante la posibilidad de usar prácticamente cualquier carácter (incluida la barra inclinada /) en el nombre del objeto, y la opción de seleccionar subconjuntos del contenido del depósito basándose en prefijos idénticos.

Sistemas de archivos jerárquicos

Ejemplo de una estructura de directorios en un sistema de archivos jerárquico.

En informática , un sistema de archivos jerárquico es un sistema de archivos que utiliza directorios para organizar los archivos en una estructura de árbol. [ 30 ]

En un sistema de archivos jerárquico, los directorios contienen información sobre archivos y otros directorios, llamados subdirectorios , que a su vez pueden apuntar a otros subdirectorios, y así sucesivamente. [ 31 ] Esto se organiza como una estructura de árbol , o jerarquía , generalmente representada con la raíz en la parte superior. El directorio raíz es la base de la jerarquía y suele almacenarse en una ubicación fija en el disco.

Un sistema de archivos jerárquico contrasta con un sistema de archivos plano , donde la información sobre todos los archivos se almacena en un único directorio y no existen subdirectorios.

Casi todos los sistemas de archivos actuales son jerárquicos. Un sistema de archivos es, en realidad, una instancia específica de un sistema jerárquico. Por ejemplo, NTFS , HPFS y ext4 implementan un sistema jerárquico con diferentes características para el almacenamiento en búfer , la asignación de archivos y la recuperación de archivos .

Implementaciones

Un sistema operativo (SO) generalmente admite uno o más sistemas de archivos. A veces, un SO y su sistema de archivos están tan estrechamente interrelacionados que resulta difícil describirlos de forma independiente.

Un sistema operativo generalmente proporciona acceso al sistema de archivos al usuario. A menudo, un sistema operativo proporciona una interfaz de línea de comandos , como un intérprete de comandos de Unix , el Símbolo del sistema de Windows y PowerShell , o OpenVMS DCL . Un sistema operativo también suele proporcionar un explorador de archivos en una interfaz gráfica de usuario , como Finder en macOS, el Explorador de archivos en Windows, GNOME Files en GNOME o Dolphin en KDE Plasma .

Sistemas operativos Unix y similares a Unix

Los sistemas operativos tipo Unix crean un sistema de archivos virtual, lo que hace que todos los archivos en todos los dispositivos de almacenamiento conectados parezcan existir en una única jerarquía. Esto significa que, en estos sistemas, existe un directorio raíz y todos los archivos del sistema se encuentran dentro de él. Los sistemas tipo Unix pueden usar un disco RAM o un recurso compartido de red como directorio raíz.

Los sistemas tipo Unix asignan un nombre a cada dispositivo, pero este no es el método para acceder a los archivos que contiene. Para acceder a los archivos de otro dispositivo, primero hay que indicarle al sistema operativo dónde deben aparecer esos archivos en el árbol de directorios. Este proceso se denomina montaje de un sistema de archivos. Por ejemplo, para acceder a los archivos de un CD-ROM , hay que indicarle al sistema operativo: «Toma el sistema de archivos de este CD-ROM y haz que aparezca en tal directorio». El directorio que se le indica al sistema operativo se denomina punto de montaje  ; por ejemplo, podría ser /media . El directorio /media existe en muchos sistemas Unix (según lo especificado en el Estándar de Jerarquía de Sistemas de Archivos ) y está diseñado específicamente para usarse como punto de montaje para medios extraíbles como CD, DVD, unidades USB o disquetes. Puede estar vacío o contener subdirectorios para montar dispositivos individuales. Generalmente, solo el administrador (es decir, el usuario root ) puede autorizar el montaje de sistemas de archivos.

Los sistemas operativos tipo Unix suelen incluir software y herramientas que facilitan el proceso de montaje y le aportan nuevas funcionalidades. Algunas de estas estrategias se conocen como "montaje automático" para reflejar su propósito.

  • En muchas situaciones, es necesario que otros sistemas de archivos, además del directorio raíz, estén disponibles tan pronto como se inicie el sistema operativo . Por lo tanto, todos los sistemas tipo Unix ofrecen la posibilidad de montar sistemas de archivos durante el arranque. Los administradores del sistema definen estos sistemas de archivos en el archivo de configuración fstab ( o vfstab en Solaris ), que también indica las opciones y los puntos de montaje.
  • En algunos casos, no es necesario montar ciertos sistemas de archivos al arrancar el sistema , aunque su uso posterior pueda ser deseado. Existen algunas utilidades para sistemas tipo Unix que permiten montar sistemas de archivos predefinidos bajo demanda.
  • Los soportes extraíbles permiten transferir programas y datos entre equipos sin necesidad de conexión física. Algunos ejemplos comunes son las memorias USB , los CD-ROM y los DVD . Por ello, se han desarrollado utilidades para detectar la presencia y disponibilidad de un soporte y montarlo sin intervención del usuario.
  • Los sistemas progresivos tipo Unix también han introducido un concepto llamado supermontaje ; véase, por ejemplo, el proyecto Linux supermount-ng . Por ejemplo, un disquete supermontado puede extraerse físicamente del sistema. En circunstancias normales, el disquete debería haberse sincronizado y desmontado antes de su extracción. Si la sincronización se ha realizado correctamente, se puede insertar un disquete diferente en la unidad. El sistema detecta automáticamente el cambio de disco y actualiza el contenido del punto de montaje para reflejar el nuevo medio.
  • Un automontador monta automáticamente un sistema de archivos cuando se hace referencia al directorio sobre el que debe montarse. Esto se suele utilizar para sistemas de archivos en servidores de red, en lugar de depender de eventos como la inserción de medios, como sería apropiado para medios extraíbles.

Linux

Linux admite numerosos sistemas de archivos, pero las opciones más comunes para el disco del sistema en un dispositivo de bloques incluyen la familia ext* ( ext2 , ext3 y ext4 ), XFS , JFS y btrfs . Para memoria flash sin procesar, sin capa de traducción de memoria flash (FTL) ni dispositivo de tecnología de memoria (MTD), existen UBIFS , JFFS2 y YAFFS , entre otros. SquashFS es un sistema de archivos comprimido de solo lectura muy común.

Solaris

En versiones anteriores, Solaris utilizaba por defecto UFS (sin registro de transacciones) para los sistemas de archivos de arranque y suplementarios. Solaris adoptó, admitió y amplió el uso de UFS.

Con el tiempo se añadió compatibilidad con otros sistemas de archivos y mejoras significativas, incluidos VxFS de Veritas Software Corp. (con registro de transacciones) , QFS de Sun Microsystems (con agrupación en clústeres) , UFS de Sun Microsystems (con registro de transacciones) y ZFS de Sun Microsystems (de código abierto, agrupable, compresible a 128 bits y con corrección de errores) .

Se añadieron extensiones del kernel a Solaris para permitir el funcionamiento de Veritas VxFS de arranque . El registro o diario se añadió a UFS en Solaris 7 de Sun. Las versiones de Solaris 10 , Solaris Express, OpenSolaris y otras variantes de código abierto del sistema operativo Solaris admitieron posteriormente ZFS de arranque .

La gestión de volúmenes lógicos permite extender un sistema de archivos a través de múltiples dispositivos para agregar redundancia, capacidad y/o rendimiento. Los entornos heredados en Solaris pueden usar Solaris Volume Manager (anteriormente conocido como Solstice DiskSuite ). Varios sistemas operativos (incluido Solaris) pueden usar Veritas Volume Manager . Los sistemas operativos modernos basados ​​en Solaris eliminan la necesidad de gestión de volúmenes al aprovechar los grupos de almacenamiento virtual en ZFS .

macOS

macOS (anteriormente Mac OS X) utiliza el sistema de archivos de Apple (APFS), que en 2017 reemplazó un sistema de archivos heredado del Mac OS clásico llamado HFS Plus (HFS+). Apple también utiliza el término "Mac OS Extended" para HFS+. [ 32 ] HFS Plus es un sistema de archivos rico en metadatos y que conserva las mayúsculas y minúsculas , pero (generalmente) no distingue entre mayúsculas y minúsculas . Debido a las raíces Unix de macOS, se agregaron permisos Unix a HFS Plus. Las versiones posteriores de HFS Plus agregaron el registro de transacciones para evitar la corrupción de la estructura del sistema de archivos e introdujeron una serie de optimizaciones en los algoritmos de asignación en un intento de desfragmentar archivos automáticamente sin necesidad de un desfragmentador externo.

Los nombres de archivo pueden tener hasta 255 caracteres. HFS Plus utiliza Unicode para almacenar los nombres de archivo. En macOS, el tipo de archivo puede provenir del código de tipo , almacenado en los metadatos del archivo, o de la extensión del nombre de archivo .

HFS Plus tiene tres tipos de enlaces: enlaces duros al estilo Unix , enlaces simbólicos al estilo Unix y alias . Los alias están diseñados para mantener un enlace a su archivo original incluso si se mueven o se renombran; no son interpretados por el propio sistema de archivos, sino por el código del administrador de archivos en el espacio de usuario .

macOS 10.13 High Sierra, que se anunció el 5 de junio de 2017 en el evento WWDC de Apple, utiliza el sistema de archivos de Apple en unidades de estado sólido .

macOS también admitía el sistema de archivos UFS , derivado del sistema de archivos rápido BSD Unix a través de NeXTSTEP . Sin embargo, a partir de Mac OS X Leopard , macOS ya no se podía instalar en un volumen UFS, ni se podía actualizar a Leopard un sistema anterior a Leopard instalado en un volumen UFS. [ 33 ] A partir de Mac OS X Lion, se eliminó por completo la compatibilidad con UFS.

Las versiones más recientes de macOS pueden leer y escribir en los sistemas de archivos FAT (16 y 32) heredados, comunes en Windows. También pueden leer los sistemas de archivos NTFS más recientes de Windows. Para escribir en sistemas de archivos NTFS en versiones de macOS anteriores a Mac OS X Snow Leopard, es necesario software de terceros. Mac OS X 10.6 (Snow Leopard) y versiones posteriores permiten escribir en sistemas de archivos NTFS, pero solo después de un cambio de configuración del sistema que no es trivial (existe software de terceros que automatiza este proceso). [ 34 ]

Finalmente, macOS admite la lectura y escritura del sistema de archivos exFAT desde Mac OS X Snow Leopard, a partir de la versión 10.6.5. [ 35 ]

Sistema operativo/2

OS/2 1.2 introdujo el Sistema de Archivos de Alto Rendimiento (HPFS). HPFS admite nombres de archivo con mayúsculas y minúsculas en diferentes páginas de códigos , nombres de archivo largos (255 caracteres), un uso más eficiente del espacio en disco, una arquitectura que mantiene los elementos relacionados cerca unos de otros en el volumen del disco, menor fragmentación de datos, asignación de espacio basada en extensiones , una estructura de árbol B+ para directorios y el directorio raíz ubicado en el punto medio del disco, para un acceso promedio más rápido. En 1999 se lanzó un sistema de archivos con registro por diario (JFS).

PC-BSD

PC-BSD es una versión de escritorio de FreeBSD que hereda la compatibilidad con ZFS de FreeBSD , al igual que FreeNAS . El nuevo instalador gráfico de PC-BSD permite gestionar la instalación de grupos de almacenamiento ZFS y RAID-Z , así como el cifrado de disco mediante Geli, de forma sencilla e intuitiva desde el principio . La versión actual de PC-BSD 9.0+ 'Isotope Edition' incluye la versión 5 del sistema de archivos ZFS y la versión 28 del grupo de almacenamiento ZFS.

Plan 9

El Plan 9 de Bell Labs trata todo como un archivo y accede a todos los objetos como si fueran archivos (es decir, no hay ioctl ni mmap ): se accede a la red, los gráficos, la depuración, la autenticación, las capacidades, el cifrado y otros servicios mediante operaciones de E/S en descriptores de archivo . El protocolo 9P elimina la diferencia entre archivos locales y remotos. Los sistemas de archivos en el Plan  9 se organizan con la ayuda de espacios de nombres privados por proceso, lo que permite que cada proceso tenga una vista diferente de los numerosos sistemas de archivos que proporcionan recursos en un sistema distribuido.

El sistema operativo Inferno comparte estos conceptos con Plan  9.

Microsoft Windows

Listado de directorios en una consola de comandos de Windows

Windows utiliza los sistemas de archivos FAT , NTFS , exFAT , Live File System y ReFS (este último solo es compatible y utilizable en Windows Server 2012 , Windows Server 2016 , Windows 8 , Windows 8.1 y Windows 10 ; Windows no puede arrancar desde él).

Windows utiliza una abstracción de letra de unidad a nivel de usuario para distinguir un disco o partición de otro. Por ejemplo, la ruta C:\WINDOWS representa un directorio WINDOWS en la partición representada por la letra C. La unidad C: se usa comúnmente para la partición principal del disco duro , donde normalmente se instala Windows y desde donde arranca. Esta "tradición" se ha arraigado tanto que existen errores en muchas aplicaciones que asumen que la unidad donde está instalado el sistema operativo es C. El uso de letras de unidad, y la tradición de usar "C" como letra de unidad para la partición principal del disco duro, se remonta a MS-DOS , donde las letras A y B estaban reservadas para hasta dos unidades de disquete. Esto, a su vez, derivó de CP/M en la década de 1970, y finalmente de CP/CMS de IBM de 1967.

GORDO

La familia de sistemas de archivos FAT es compatible con casi todos los sistemas operativos para ordenadores personales, incluidas todas las versiones de Windows , MS-DOS / PC DOS , OS/2 y DR-DOS . (PC  DOS es una versión OEM de MS-DOS, que originalmente se basaba en 86-DOS de SCP . DR-DOS se basaba en Concurrent DOS de Digital Research , sucesor de CP/M-86 ). Por lo tanto, los sistemas de archivos FAT son idóneos como formato de intercambio universal entre ordenadores y dispositivos de casi cualquier tipo y antigüedad.

El sistema de archivos FAT tiene sus orígenes en un precursor FAT de 8 bits (incompatible) presente en Standalone Disk BASIC y en el efímero proyecto MDOS/MIDAS .

Con el paso de los años, el sistema de archivos se ha ampliado de FAT12 a FAT16 y FAT32 . Se han añadido diversas funciones, como subdirectorios , compatibilidad con páginas de códigos , atributos extendidos y nombres de archivo largos . Empresas como Digital Research han incorporado soporte opcional para el seguimiento de eliminaciones y esquemas de seguridad multiusuario basados ​​en volúmenes, directorios y archivos, que admiten contraseñas y permisos de archivos y directorios, como derechos de acceso de lectura, escritura, ejecución y eliminación. La mayoría de estas extensiones no son compatibles con Windows.

Los sistemas de archivos FAT12 y FAT16 tenían un límite en el número de entradas en el directorio raíz del sistema de archivos y tenían restricciones en el tamaño máximo de los discos o particiones formateados en FAT .

FAT32 soluciona las limitaciones de FAT12 y FAT16, excepto por el límite de tamaño de archivo de casi 4  GB, pero sigue siendo limitado en comparación con NTFS.

Los sistemas de archivos FAT12, FAT16 y FAT32 también tienen un límite de ocho caracteres para el nombre del archivo y tres caracteres para la extensión (como .exe ). Esto se conoce comúnmente como el límite de 8,3 caracteres para el nombre del archivo . VFAT , una extensión opcional para FAT12, FAT16 y FAT32, introducida en Windows 95 y Windows NT 3.5 , permitía almacenar nombres de archivo largos ( LFN ) en el sistema de archivos FAT de forma retrocompatible.

NTFS

NTFS , introducido con el sistema operativo Windows NT en 1993, permitía el control de permisos basado en ACL . Otras características compatibles con NTFS incluyen enlaces duros, múltiples flujos de archivos, indexación de atributos, seguimiento de cuotas, archivos dispersos, cifrado, compresión y puntos de reanálisis (directorios que funcionan como puntos de montaje para otros sistemas de archivos, enlaces simbólicos, uniones y enlaces de almacenamiento remoto).

exGRASA

exFAT tiene ciertas ventajas sobre NTFS en lo que respecta a la sobrecarga del sistema de archivos .

exFAT no es compatible con versiones anteriores de sistemas de archivos FAT como FAT12, FAT16 o FAT32. El sistema de archivos es compatible con versiones más recientes de Windows, como Windows XP, Windows Server 2003, Windows Vista, Windows 2008, Windows 7, Windows 8, Windows 8.1, Windows 10 y Windows 11.

exFAT es compatible con macOS a partir de la versión 10.6.5 (Snow Leopard). [ 35 ] La compatibilidad con otros sistemas operativos es limitada, ya que su implementación requiere una licencia. exFAT es el único sistema de archivos totalmente compatible con macOS y Windows que puede almacenar archivos de más de 4  GB. [ 36 ] [ 37 ]

OpenVMS

Files-11 es el sistema de archivos utilizado en los sistemas operativos RSX-11 , IAS y OpenVMS de Digital Equipment Corporation . Admite E/S orientada a registros , acceso remoto a la red y control de versiones de archivos . La capa ODS-1 original es un sistema de archivos plano ; la versión ODS-2 es un sistema de archivos jerárquico , con soporte para listas de control de acceso .

Files-11 es similar a los sistemas de archivos utilizados en sistemas operativos anteriores de Digital Equipment Corporation, como TOPS-20 y RSTS/E , pero significativamente más avanzado .

MVS

Antes de la introducción de VSAM , los sistemas OS/360 implementaban un sistema de archivos híbrido. El sistema fue diseñado para admitir fácilmente paquetes de discos extraíbles , por lo que la información relativa a todos los archivos en un disco ( volumen en la terminología de IBM) se almacena en ese disco en un archivo de sistema plano llamado Tabla de Contenidos del Volumen (VTOC). El VTOC almacena todos los metadatos del archivo. Posteriormente, se impuso una estructura de directorios jerárquica con la introducción del Catálogo del Sistema , que puede catalogar opcionalmente archivos (conjuntos de datos) en volúmenes residentes y extraíbles. El catálogo solo contiene información para relacionar un conjunto de datos con un volumen específico. Si el usuario solicita acceso a un conjunto de datos en un volumen sin conexión y tiene los privilegios adecuados, el sistema intentará montar el volumen requerido. Se puede acceder a los conjuntos de datos catalogados y no catalogados utilizando la información del VTOC, omitiendo el catálogo, si se proporciona el ID de volumen requerido en la solicitud OPEN. Más tarde, el VTOC se indexó para acelerar el acceso.

Sistema de monitorización de conversaciones

El componente IBM Conversational Monitor System (CMS) de VM/370 utiliza un sistema de archivos plano independiente para cada disco virtual ( minidisco ). Los datos de los archivos y la información de control se encuentran dispersos y mezclados. El punto de referencia es un registro denominado Directorio Maestro de Archivos (MFD), ubicado siempre en el cuarto bloque del disco. Originalmente, CMS utilizaba bloques de longitud fija de 800 bytes, pero las versiones posteriores emplearon bloques de mayor tamaño, de hasta 4 KB. El acceso a un registro de datos requiere dos niveles de indirección , donde la entrada del directorio del archivo (denominada entrada de la Tabla de Estado de Archivos (FST)) apunta a bloques que contienen una lista de direcciones de los registros individuales.

Sistema de archivos AS/400

Los datos en el AS/400 y sus sucesores consisten en objetos del sistema mapeados en el espacio de direcciones virtuales del sistema en un almacén de un solo nivel . Se definen muchos tipos de objetos , incluidos los directorios y archivos que se encuentran en otros sistemas de archivos. Los objetos de archivo, junto con otros tipos de objetos, constituyen la base del soporte del AS/400 para una base de datos relacional integrada .

Otros sistemas de archivos

  • Sistema de archivos RSRE FLEX - escrito en ALGOL 68
  • El sistema de archivos del Sistema de Terminales de Michigan (MTS) es interesante porque: (i) proporciona "archivos de línea" donde las longitudes de los registros y los números de línea se asocian como metadatos con cada registro del archivo; las líneas se pueden agregar, reemplazar, actualizar con registros de igual o diferente longitud y eliminar en cualquier parte del archivo sin necesidad de leer y reescribir todo el archivo; (ii) mediante claves de programa, los archivos se pueden compartir o permitir a comandos y programas, además de a usuarios y grupos; y (iii) existe un mecanismo integral de bloqueo de archivos que protege tanto los datos del archivo como sus metadatos. [ 38 ] [ 39 ]
  • TempleOS utiliza RedSea, un sistema de archivos creado por Terry A. Davis. [ 40 ]

Limitaciones

Limitaciones de diseño

Los sistemas de archivos limitan la capacidad de almacenamiento de datos , generalmente en función del tamaño típico de los dispositivos de almacenamiento en el momento en que se diseña el sistema de archivos y de las previsiones para el futuro previsible.

Dado que la capacidad de almacenamiento ha aumentado a un ritmo casi exponencial (véase la ley de Moore ), los dispositivos de almacenamiento más recientes suelen superar los límites de los sistemas de archivos existentes a los pocos años de su lanzamiento.Esto requiere nuevos sistemas de archivos con una capacidad cada vez mayor.

Con una mayor capacidad, también aumenta la necesidad de funcionalidades y, por lo tanto, la complejidad. La complejidad del sistema de archivos suele variar proporcionalmente a la capacidad de almacenamiento disponible. Dejando a un lado los problemas de capacidad, los sistemas de archivos de los ordenadores domésticos de principios de los años 80 , con entre 50  KB y 512  KB de almacenamiento, no serían una opción razonable para los sistemas de almacenamiento modernos con cientos de gigabytes de capacidad. Del mismo modo, los sistemas de archivos modernos no serían una opción razonable para estos sistemas antiguos, ya que la complejidad de las estructuras de los sistemas de archivos modernos consumiría rápidamente la capacidad limitada de los sistemas de almacenamiento primitivos.

Conversión del tipo de un sistema de archivos

Puede resultar ventajoso o necesario tener los archivos en un sistema de archivos diferente al actual. Entre las razones se incluyen la necesidad de aumentar el espacio de almacenamiento más allá de los límites del sistema de archivos actual. Puede ser necesario ampliar la profundidad de la ruta más allá de las restricciones del sistema de archivos. También pueden existir consideraciones de rendimiento o fiabilidad. Otra razón es proporcionar acceso a otro sistema operativo que no sea compatible con el sistema de archivos actual.

Conversión in situ

En algunos casos, la conversión se puede realizar in situ, aunque migrar el sistema de archivos es más conservador, ya que implica crear una copia de los datos y se recomienda. [ 41 ] En Windows, los sistemas de archivos FAT y FAT32 se pueden convertir a NTFS mediante la utilidad convert.exe, pero no al revés. [ 41 ] En Linux, ext2 se puede convertir a ext3 (y viceversa), y ext3 se puede convertir a ext4 (pero no viceversa), [ 42 ] y tanto ext3 como ext4 se pueden convertir a btrfs y volver a convertir hasta que se elimine la información de deshacer. [ 43 ] Estas conversiones son posibles gracias al uso del mismo formato para los datos del archivo y a la reubicación de los metadatos en espacio vacío, en algunos casos mediante la compatibilidad con archivos dispersos . [ 43 ]

Migración a un sistema de archivos diferente

La migración tiene la desventaja de requerir espacio adicional, aunque puede ser más rápida. Lo ideal es que haya espacio sin usar en el medio que contendrá el sistema de archivos final.

Por ejemplo, para migrar un sistema de archivos FAT32 a un sistema de archivos ext2, se crea un nuevo sistema de archivos ext2. A continuación, se copian los datos del sistema de archivos FAT32 al sistema de archivos ext2 y se elimina el sistema de archivos antiguo.

Una alternativa, cuando no hay suficiente espacio para conservar el sistema de archivos original hasta que se cree el nuevo, es utilizar un área de trabajo (como un medio extraíble). Esto lleva más tiempo, pero tiene la ventaja de generar una copia de seguridad.

Rutas de archivo largas y nombres de archivo largos

En los sistemas de archivos jerárquicos , se accede a los archivos mediante una ruta que es una lista ramificada de directorios que contienen el archivo. Los distintos sistemas de archivos tienen diferentes límites en la profundidad de la ruta. Además, los sistemas de archivos tienen un límite en la longitud del nombre de cada archivo.

Copiar archivos con nombres largos o ubicados en rutas de acceso muy profundas de un sistema de archivos a otro puede generar resultados indeseables. Esto depende de cómo la utilidad que realiza la copia gestione la discrepancia.

Véase también

Notas

  1. Una cinta LTO-6 de 2,5 TB requiere más de 4 horas para escribir a 160 MB/seg.

Referencias

  1. "5.10. Sistemas de archivos" . The Linux Document Project . Consultado el 11 de diciembre de 2021. Un sistema de archivos son los métodos y estructuras de datos que un sistema operativo utiliza para realizar un seguimiento de los archivos en un disco o partición; es decir, la forma en que los archivos están organizados en el disco.
  2. Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014), Implementación de sistemas de archivos (PDF) , Libros de Arpaci-Dusseau
  3. "Almacenamiento, tecnología de la información y mercados: estado y evolución" (PDF) . 20 de septiembre de 2018. Los discos duros (HDD) siguen siendo el almacenamiento clave en el futuro previsible; las unidades de estado sólido (SSD) no son rentables para la capacidad.
  4. McGill, Florence E. (1922). Práctica de oficina y procedimiento comercial . Gregg Publishing Company. pág. 197. Recuperado el 1 de agosto de 2016 . 
  5. Waring, RL (1961). Investigaciones técnicas sobre la adición de una salida impresa a los elementos de un sistema de biblioteca mecanizado : informe final, 20 de septiembre de 1961. Cincinnati, OH: Svco Corporation. OCLC 310795767 .  
  6. Aplicaciones de archivos de disco: Informes presentados en el primer simposio nacional sobre archivos de disco . Procesamiento de datos estadounidense. 1964. Consultado el 1 de agosto de 2016 .
  7. 1 2 3 Amir, Yair. "Sistemas operativos 600.418 El sistema de archivos" . Departamento de Ciencias de la Computación, Universidad Johns Hopkins . Recuperado el 31 de julio de 2016 .
  8. 1 2 IBM Corporation. "Estructura de componentes del sistema de archivos lógico" . Centro de conocimiento de IBM . Consultado el 24 de abril de 2024 .
  9. RC Daley; PG Neumann (1965). "Un sistema de archivos de propósito general para almacenamiento secundario" . Actas de la conferencia conjunta de informática de otoño del 30 de noviembre al 1 de diciembre de 1965, Parte I sobre XX - AFIPS '65 (Otoño, parte I) . Conferencia conjunta de informática de otoño. AFIPS . págs. 213–229 . doi : 10.1145/1463891.1463915 . Recuperado el 30 de julio de 2011 . 
  10. Worth, Don (mayo de 1982). Bajo Apple DOS (PDF) . Quality Software.
  11. Carrier 2005 , págs. 187–188.
  12. Valvano, Jonathan W. (2011). Sistemas de microcomputadoras embebidas: Interfaz en tiempo real (Tercera ed.). Cengage Learning . pág. 524. ISBN   978-1-111-42625-5. Consultado el 30 de junio de 2022 .
  13. "KSAM: AB + -tree-based keyed secuencial-access-method" . ResearchGate . Consultado el 29 de abril de 2016 .
  14. Mohan, I. Chandra (2013). Sistemas operativos . Delhi: PHI Learning Pvt. Ltd. pág. 166. ISBN  9788120347267Recuperado el 27/07/2014 . La palabra dentry es la abreviatura de "entrada de directorio". Una dentry no es más que un componente específico en la ruta desde la raíz. Estas (nombre de directorio o nombre de archivo) permiten acceder a archivos o directorios.
  15. "Capítulo 22. El sistema de archivos Z (ZFS)" . Manual de FreeBSD . Almacenamiento agrupado: agregar dispositivos de almacenamiento físico a un grupo y asignar espacio de almacenamiento desde ese grupo compartido. El espacio está disponible para todos los sistemas de archivos y volúmenes, y aumenta al agregar nuevos dispositivos de almacenamiento al grupo.
  16. "Acerca del sistema de archivos de Apple (APFS)" . Guía del usuario de DaisyDisk . APFS introduce el uso compartido de espacio entre volúmenes. En APFS, cada disco físico es un contenedor que puede tener varios volúmenes en su interior, los cuales comparten el mismo grupo de espacio libre.
  17. Douglis, Fred; Cáceres, Ramón; Kaashoek, M. Frans ; Krishnan, P.; Li, Kai; Marsh, Brian ; Tauber, Joshua (1994). "18. Alternativas de almacenamiento para computadoras móviles". Mobile Computing . Vol. 353. USENIX . pp. 473–505 . doi : 10.1007/978-0-585-29603-6_18 . ISBN   978-0-585-29603-6. S2CID 2441760 . 
  18. "Windows on a database – sliced ​​and picado by BeOS vets" . theregister.co.uk. 29-03-2002 . Consultado el 07-02-2014 .
  19. "IBM DB2 para i: Descripción general" . 03.ibm.com. Archivado del original el 2 de agosto de 2013. Consultado el 7 de febrero de 2014 .
  20. "IBM developerWorks : Novedades en IBM i" . Ibm.com. 8 de marzo de 2011. Consultado el 7 de febrero de 2014 . 
  21. "Longhorn, sucesor de XP, adopta SQL y P2P: filtraciones de Microsoft" . theregister.co.uk. 28 de enero de 2002. Consultado el 7 de febrero de 2014 .
  22. "Alternativas al uso de NTFS transaccional (Windows)" . Msdn.microsoft.com. 5 de diciembre de 2013. Consultado el 7 de febrero de 2014 .
  23. Spillane, Richard; Gaikwad, Sachin; Chinni, Manjunath; Zadok, Erez; Wright, Charles P. (2009). Habilitación del acceso transaccional a archivos mediante extensiones ligeras del kernel (PDF) . Séptima Conferencia USENIX sobre Tecnologías de Archivos y Almacenamiento (FAST 2009).
  24. Wright, Charles P.; Spillane, Richard; Sivathanu, Gopalan; Zadok, Erez (2007). "Extending ACID Semantics to the File System" (PDF) . ACM Transactions on Storage . 3 (2): 4. doi : 10.1145/1242520.1242521 . S2CID 8939577 . 
  25. Seltzer, Margo I. (1993). "Soporte para transacciones en un sistema de archivos estructurado en registros" (PDF) . Actas de la Novena Conferencia Internacional sobre Ingeniería de Datos .
  26. Porter, Donald E.; Hofmann, Owen S.; Rossbach, Christopher J.; Benn, Alexander; Witchel, Emmett (octubre de 2009). "Operating System Transactions" (PDF) . Actas del 22.º Simposio ACM sobre Principios de Sistemas Operativos (SOSP '09) . Big Sky, MT.
  27. Gal, Eran; Toledo, Sivan. Un sistema de archivos flash transaccional para microcontroladores (PDF) . USENIX 2005.
  28. Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014), Sistema de archivos de red de Sun (PDF) , Libros de Arpaci-Dusseau
  29. Troppens, Ulf; Erkens, Rainer; Müller, Wolfgang (2004). Storage Networks Explained: Basics and Application of Fibre Channel SAN, NAS, iSCSI and InfiniBand . John Wiley & Sons . pp. 124–125 . ISBN  0-470-86182-7. Consultado el 30 de junio de 2022 .
  30. Sharma, Vivek; Varshney, Manish; Sharma, Shantanu (2010). Diseño e implementación de sistemas operativos . University Science Press. pág. 346. ISBN  9789380386416Consultado el 22 de febrero de 2023 .
  31. Stephens, Mark (6 de junio de 1988). "Netware y LAN Manager compiten en un concurso de software de red" . InfoWorld . Vol. 10, n.º 23. Consultado el 22 de febrero de 2023 .  
  32. "Mac OS X: Acerca del registro de transacciones del sistema de archivos" . Apple . Consultado el 8 de febrero de 2014 .
  33. "Mac OS X 10.5 Leopard: Instalación en un volumen con formato UFS" . apple.com . 19 de octubre de 2007. Archivado del original el 16 de marzo de 2008. Consultado el 29 de abril de 2016 .
  34. OSXDaily (2 de octubre de 2013). "Cómo habilitar la compatibilidad de escritura NTFS en Mac OS X" . Consultado el 6 de febrero de 2014 .
  35. 1 2 Steve Bunting (14 de agosto de 2012). EnCase Computer Forensics - The Official EnCE: EnCase Certified Examiner . Wiley. ISBN 9781118219409. Consultado el 7 de febrero de 2014 .
  36. "Formatos de sistema de archivos disponibles en la Utilidad de Discos en Mac" . Soporte técnico de Apple .
  37. "Especificación del sistema de archivos exFAT" . Microsoft Docs .
  38. Pirkola, GC (junio de 1975). "Un sistema de archivos para un entorno de tiempo compartido de propósito general". Actas del IEEE . 63 (6): 918– 924. Bibcode : 1975IEEEP..63..918P . doi : 10.1109/PROC.1975.9856 . ISSN 0018-9219 . S2CID 12982770 .  
  39. Pirkola, Gary C.; Sanguinetti, John. "La protección de la información en un entorno de tiempo compartido de propósito general" . Actas del Simposio IEEE sobre Tendencias y Aplicaciones de 1977: Seguridad e Integridad Informática . Vol. 10. págs. 106–114 .  
  40. Davis, Terry A. (s.f.). "El sistema operativo del templo" . www.templeos.org . Archivado del original el 31 de marzo de 2017. Recuperado el 30 de marzo de 2017 .
  41. 1 2 "Cómo convertir discos FAT a NTFS" . Microsoft Docs .
  42. "Ext4 Howto" . kernel.org . Consultado el 29 de abril de 2016 .
  43. 1 2 "Conversión desde Ext3" . Wiki de Btrfs .

Fuentes

  • de Boyne Pollard, Jonathan (1996). "Límites de tamaño de disco y volumen" . Respuestas frecuentes . Recuperado el 9 de febrero de 2005 .
  • "Corrección del servicio correctivo de OS/2 JR09427" . IBM ( FTP ) . Consultado el 9 de febrero de 2005 .(Para ver los documentos, consulte Ayuda:FTP )
  • "Atributo - $EA_INFORMATION (0xD0)" . Información NTFS, Proyecto Linux-NTFS . Consultado el 9 de febrero de 2005 .
  • "Atributo - $EA (0xE0)" . Información de NTFS, Proyecto Linux-NTFS . Consultado el 9 de febrero de 2005 .
  • "Atributo - $STANDARD_INFORMATION (0x10)" . Información NTFS, Proyecto Linux-NTFS . Consultado el 21 de febrero de 2005 .
  • "Nota técnica TN1150: Formato de volumen HFS Plus" . Apple Inc. Consultado el 22 de septiembre de 2015 .
  • Brian Carrier (2005). Análisis forense de sistemas de archivos . Addison Wesley.

Lecturas adicionales

Libros

  • Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014). Sistemas operativos: tres piezas fáciles . Libros de Arpaci-Dusseau.
  • Carrier, Brian (2005). Análisis forense de sistemas de archivos . Addison-Wesley . ISBN 0-321-26817-2.
  • Custer, Helen (1994). Dentro del sistema de archivos de Windows NT . Microsoft Press . ISBN 1-55615-660-X.
  • Giampaolo, Dominic (1999). Diseño práctico de sistemas de archivos con el sistema de archivos Be (PDF) . Morgan Kaufmann Publishers. ISBN 1-55860-497-9. Archivado (PDF) del original el 03-09-2018 . Consultado el 15-12-2019 .
  • McCoy, Kirby (1990). VMS File System Internals . VAX - VMS Series. Digital Press . ISBN 1-55558-056-4.
  • Mitchell, Stan (1997). Dentro del sistema de archivos de Windows 95. O'Reilly . ISBN 1-56592-200-X.
  • Nagar, Rajeev (1997). Windows NT File System Internals  : A Developer's Guide . O'Reilly . ISBN 978-1-56592-249-5.
  • Pate, Steve D. (2003). Sistemas de archivos UNIX: Evolución, diseño e implementación . Wiley . ISBN 0-471-16483-6Archivado del original el 24/11/2013 . Consultado el 17/10/2010 .
  • Rosenblum, Mendel (1994). Diseño e implementación de un sistema de archivos estructurado en registros . Serie internacional de ingeniería e informática de Springer. Springer. ISBN 0-7923-9541-7.
  • Russinovich, Mark; Solomon, David A.; Ionescu, Alex (2009). "Sistemas de archivos". Windows Internals (5.ª  ed.). Microsoft Press . ISBN 978-0-7356-2530-3.
  • Prabhakaran, Vijayan (2006). Sistemas de archivos IRON . Tesis doctoral, Universidad de Wisconsin-Madison.
  • Silberschatz, Abraham; Galvin, Peter Baer; Gagne, Greg (2004). «Gestión de almacenamiento». Conceptos de sistemas operativos (7.ª  ed.). Wiley. ISBN 0-471-69466-5.
  • Tanenbaum, Andrew S. (2007). Sistemas operativos modernos (3.ª  ed.). Prentice Hall . ISBN 978-0-13-600663-3.
  • Tanenbaum, Andrew S .; Woodhull, Albert S. (2006). Sistemas operativos: diseño e implementación (3.ª  ed.). Prentice Hall . ISBN 0-13-142938-8.

En línea

  • Evaluación comparativa de sistemas de archivos (obsoleto) por Justin Piszcz, Linux Gazette 102, mayo de 2004
  • Evaluación comparativa de sistemas de archivos, parte II , utilizando el kernel 2.6, por Justin Piszcz, Linux Gazette 122, enero de 2006.
  • Comparación de sistemas de archivos (ext3, ReiserFS, XFS, JFS) en Debian Etch. Archivado el 13 de septiembre de 2008 en Wayback Machine ( 2006 ).
  • Entrevista con los responsables de JFS, ReiserFS y XFS.
  • Rendimiento del sistema de archivos de registro (obsoleto) : ReiserFS, JFS y Ext3FS demuestran sus ventajas en un dispositivo RAID rápido.
  • Pruebas de rendimiento de sistemas de archivos con registro (obsoletas) : una comparación de ReiserFS, XFS, JFS, ext3 y ext2.
  • Lista extensa de resúmenes de sistemas de archivos (última actualización: 19/11/2006)
  • Pruebas de rendimiento del sistema de archivos de Linux v2.6 con kernel sometido a una prueba de estrés en el uso de la CPU.
  • "Pruebas de rendimiento del sistema de archivos de Linux 2.6 (versión anterior)" . Archivado del original el 15 de abril de 2016. Consultado el 16 de diciembre de 2019 .
  • Compatibilidad con archivos grandes en Linux (obsoleta)
  • Sistemas de archivos locales para Windows
  • Descripción general de algunos sistemas de archivos (obsoleto)
  • Compatibilidad con archivos dispersos (obsoleto)
  • Jeremy Reimer (16 de marzo de 2008). "De BFS a ZFS: pasado, presente y futuro de los sistemas de archivos" . arstechnica.com . Consultado el 18 de marzo de 2008 .
  • Especificaciones del sistema de archivos: enlaces y documentos técnicos . Archivado del original el 3 de noviembre de 2015.
  • Proyectos interesantes de sistemas de archivos