stringtranslate.com

Sistema de archivos

En informática , un sistema de archivos o filesystem (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 da 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 en red .

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

Hay muchos 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 , incluidas unidades de disco duro (HDD), unidades de estado sólido (SSD), cintas magnéticas y discos ópticos . [3]

Una parte de la memoria principal de la computadora se puede configurar 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 la memoria virtual .

Un sistema de archivos virtual proporciona acceso a archivos que se calculan a pedido, llamados archivos virtuales (ver procfs y sysfs ), o que se asignan a otro almacenamiento de respaldo.

Etimología

Desde alrededor de  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 estaba aplicando al archivo computarizado junto con el significado original. [5] Para 1964, era de uso general. [6]

Arquitectura

La arquitectura de un sistema de archivos local se puede describir como capas de abstracción , aunque un diseño particular de sistema de archivos puede no separar los conceptos. [7]

La capa del sistema de archivos lógicos proporciona acceso de nivel relativamente alto a través de una interfaz de programación de aplicaciones (API) para operaciones de archivos, incluidas apertura, cierre, lectura y escritura, delegando operaciones a capas inferiores. Esta capa administra 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 simultáneas de sistemas de archivos físicos, cada uno de los cuales se denomina implementación del sistema de archivos. [8]

La capa del sistema de archivos físicos proporciona un 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 colocación de bloques en ubicaciones específicas en el medio de almacenamiento. Esta capa utiliza controladores de dispositivos o E/S de canal para controlar el dispositivo de almacenamiento. [7]

Atributos

Nombres de archivos

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, de modo que una aplicación puede hacer referencia a exactamente un archivo para un nombre en particular. Si el sistema de archivos admite directorios, generalmente se aplica la unicidad del nombre de archivo dentro del contexto de cada directorio. En otras palabras, un almacenamiento puede contener varios archivos con el mismo nombre, pero no en el mismo directorio.

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

Algunos sistemas de archivos distinguen entre mayúsculas y minúsculas en los nombres de los archivos, mientras que otros lo hacen sin distinción entre mayúsculas y minúsculas. Por ejemplo, los nombres MYFILEy myfilecoinciden con el mismo archivo en el caso de que no distingan entre mayúsculas y minúsculas, pero con archivos diferentes en el caso de que distingan entre mayúsculas y minúsculas.

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 un tipo de archivo.

Directorios

Los sistemas de archivos generalmente permiten organizar los archivos en directorios , también llamados carpetas , que separan los archivos en grupos.

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

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

El primer sistema de archivos que admitió jerarquías arbitrarias de directorios se utilizó en el sistema operativo Multics . [9] Los sistemas de archivos nativos de sistemas tipo Unix también admiten jerarquías arbitrarias de directorios, 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 y el contenido del archivo, un sistema de archivos también administra metadatos asociados que pueden incluir, entre otros:

Un sistema de archivos almacena metadatos asociados separados 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 que no están asociados con 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, dicha información sobre un grupo de asignación se almacena dentro del propio grupo de asignación.

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 proporcionan atributos definidos por el usuario, como el autor del documento, la codificación de caracteres de un documento o el tamaño de una imagen.

Algunos sistemas de archivos permiten asociar diferentes colecciones de datos con un nombre de archivo. Estas colecciones independientes pueden denominarse secuencias o bifurcaciones . Apple ha utilizado durante mucho tiempo un sistema de archivos bifurcado en Macintosh, y Microsoft admite secuencias en NTFS. Algunos sistemas de archivos mantienen múltiples revisiones anteriores de un archivo bajo un único nombre de archivo; el nombre de archivo por sí solo recupera la versión más reciente, mientras que se puede acceder a la versión guardada anterior utilizando una convención de nomenclatura especial como "nombre de archivo;4" o "nombre de archivo(-4)" para acceder a la versión guardada cuatro veces antes.

Consulte la comparación de sistemas de archivos#Metadatos para obtener detalles sobre qué sistemas de archivos admiten qué tipos de metadatos.

Organización del espacio de almacenamiento

Un sistema de archivos local rastrea 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 exigen que se especifique 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 del archivo está libre; disponible para ser utilizado por otro archivo.

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

Un sistema de archivos local administra el espacio de almacenamiento para proporcionar un nivel de confiabilidad y eficiencia. Generalmente, asigna espacio del dispositivo de almacenamiento de manera granular, normalmente en múltiples 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 usaban un mapa de pistas/sectores . [ cita requerida ]

La naturaleza granular da como resultado espacio no utilizado, a veces llamado espacio de holgura , para cada archivo, excepto para aquellos que tienen el tamaño poco común que es un múltiplo de la asignación granular. [10] 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.

Generalmente, el tamaño de la unidad de asignación se establece cuando se configura el almacenamiento. Elegir un tamaño relativamente pequeño en comparación con los archivos almacenados da como resultado una sobrecarga de acceso excesiva. Elegir un tamaño relativamente grande da como resultado un espacio no utilizado excesivo. Elegir un tamaño de asignación basado en el tamaño promedio de los archivos que se espera que estén en el almacenamiento tiende a minimizar el espacio no utilizable.

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 no se puede asignar el espacio necesario para almacenar su contenido en bloques contiguos. El espacio libre se fragmenta cuando se eliminan archivos. [11]

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

Control de acceso

Un sistema de archivos a menudo admite el control de acceso a los datos que administra.

La intención del control de acceso es a menudo evitar que ciertos 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 son las contraseñas almacenadas en los metadatos del archivo o en otro lugar y los permisos de archivo en forma de bits de permiso, listas de control de acceso o capacidades . La necesidad de que las utilidades del sistema de archivos puedan acceder a los datos a nivel de los medios para reorganizar las estructuras y proporcionar una copia de seguridad eficiente suele significar que estas solo son eficaces para usuarios educados, pero no son eficaces contra intrusos.

A veces, el sistema de archivos incluye métodos para cifrar los datos de los archivos. Esto resulta muy eficaz, ya que no es necesario que las utilidades del sistema de archivos conozcan la semilla de cifrado para gestionar los datos de forma eficaz. Los riesgos de confiar en el cifrado incluyen el hecho de que un atacante puede copiar los datos y utilizar la fuerza bruta para descifrarlos. Además, perder la semilla significa perder los datos.

Cuota de almacenamiento

Algunos sistemas operativos permiten que un administrador del sistema habilite cuotas de disco para limitar el uso del espacio de almacenamiento por parte de un 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:

La recuperación de 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 el medio de almacenamiento.

Grabación

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

Acceso a datos

Acceso al flujo de bytes

Muchos sistemas de archivos acceden a los datos como un flujo de bytes . Normalmente, para leer los 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 proporcione un búfer de bytes que el sistema de archivos lee y luego almacena en el medio.

Acceso a registros

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

Si se utiliza una definición de registro de longitud fija , la ubicación del registro n se puede calcular matemáticamente, lo que es relativamente rápido en comparación con el análisis de los datos en busca de separadores de registros.

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

Utilidades

Normalmente, el usuario puede gestionar un sistema de archivos a través de varios programas de utilidad.

Algunas utilidades permiten al usuario crear, configurar y eliminar una instancia de un sistema de archivos. Pueden permitir ampliar o truncar el espacio asignado al sistema de archivos.

Las utilidades de directorio se pueden utilizar para crear, renombrar y eliminar entradas de directorio , que también se conocen como dentries (singular: dentry ), [13] y para modificar los metadatos asociados con 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 ), [ aclaración necesaria ] y para crear enlaces bidireccionales a archivos.

Las utilidades de archivos crean, enumeran, copian, mueven y eliminan archivos, y modifican metadatos. Pueden truncar datos, truncar o ampliar la asignación de espacio, agregar, mover y modificar archivos en el lugar. Según la estructura subyacente del sistema de archivos, pueden proporcionar un mecanismo para anteponer o truncar desde el principio de un archivo, insertar entradas en el medio de un archivo o eliminar entradas de un archivo. Las utilidades para liberar espacio para archivos eliminados, si el sistema de archivos proporciona una función de recuperación, también pertenecen a esta categoría.

Algunos sistemas de archivos postergan operaciones como la reorganización del espacio libre, el borrado seguro del espacio libre y la reconstrucción de estructuras jerárquicas al proporcionar utilidades para realizar estas funciones en momentos de actividad mínima. 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 varias estructuras de datos y tablas de asignación dentro del sistema de archivos.

API del sistema de archivos

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

Múltiples sistemas de archivos dentro de un solo sistema

Con frecuencia, los sistemas minoristas se configuran con un solo sistema de archivos que ocupa todo el dispositivo de almacenamiento .

Otro enfoque es particionar el disco de modo que se puedan utilizar varios sistemas de archivos con diferentes atributos. Un sistema de archivos, para su uso 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 estrecha del disco donde no interferirá con otras asignaciones de archivos. Se podría crear otra partición para el almacenamiento de archivos de audio o vídeo con un tamaño de bloque relativamente grande. Otra puede configurarse normalmente como de solo lectura y solo periódicamente como escribible. Algunos sistemas de archivos, como ZFS y APFS , admiten varios sistemas de archivos que comparten un grupo común de bloques libres, lo que admite varios sistemas de archivos con diferentes atributos sin tener que reservar una cantidad fija de espacio para cada sistema de archivos. [14] [15]

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

El hecho de tener varios sistemas de archivos en un único sistema tiene la ventaja adicional de que, en caso de que se dañe un único sistema de archivos, los demás sistemas de archivos seguirán intactos. Esto incluye la destrucción del sistema de archivos del sistema por un virus o incluso un sistema que no arranca. Las utilidades del sistema de archivos que requieren acceso dedicado se pueden completar de forma eficaz por partes. Además, la desfragmentación puede ser más eficaz. Varias utilidades de mantenimiento del sistema, como los análisis de virus y las copias de seguridad, también se pueden procesar en segmentos. Por ejemplo, no es necesario realizar 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 "separar" fácilmente imágenes diferenciales que contengan solo datos "nuevos" escritos en la imagen maestra (original). Las imágenes diferenciales se pueden utilizar tanto por cuestiones 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 una rápida implementación de máquinas virtuales (ya que las imágenes diferenciales se pueden generar rápidamente usando un script en lotes).

Tipos

Sistemas de archivos de disco

Un sistema de archivos de disco aprovecha la capacidad de los medios de almacenamiento en disco para acceder aleatoriamente a los datos en un corto período de tiempo. Otras consideraciones incluyen la velocidad de acceso a los datos después de la solicitud inicial y la anticipación de que también se puedan solicitar los datos siguientes. Esto permite que varios usuarios (o procesos) accedan a varios datos en el disco sin tener en cuenta la ubicación secuencial de los datos. Algunos 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 en diario o sistemas de archivos con control de versiones .

Discos ópticos

ISO 9660 y Universal Disk Format (UDF) son dos formatos comunes que se utilizan en discos compactos , DVD y discos Blu-ray . Mount Rainier es una extensión de UDF compatible desde la serie 2.6 del kernel de Linux y desde Windows Vista que facilita la reescritura en DVD.

Sistemas de archivos Flash

Un sistema de archivos flash tiene en cuenta las capacidades, el rendimiento y las restricciones especiales de los dispositivos de memoria flash . Con frecuencia, un sistema de archivos de disco puede utilizar un dispositivo de memoria flash como medio de almacenamiento subyacente, pero es mucho mejor utilizar un sistema de archivos diseñado específicamente para un dispositivo flash. [16]

Sistemas de archivos en cinta

Un sistema de archivos en cinta es un sistema de archivos y un formato de cinta diseñados para almacenar archivos en cinta. Las cintas magnéticas son medios de almacenamiento secuencial con tiempos de acceso aleatorio a los 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 uso general.

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

La cinta requiere un movimiento lineal para enrollar y desenrollar rollos de material que pueden ser muy largos. Este movimiento de la cinta puede tardar varios segundos o varios minutos en mover el cabezal de lectura/escritura de un extremo de la cinta al otro.

En consecuencia, un directorio de archivos maestro y un mapa de uso pueden ser extremadamente lentos e ineficientes con cinta. 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 el lugar correcto. Cada escritura de archivo adicional requiere actualizar el mapa y el directorio y escribir los datos, lo que puede tardar varios segundos en ocurrir para cada archivo.

Los sistemas de archivos en cinta, en cambio, suelen permitir que el directorio de archivos se distribuya por toda la cinta entremezclado con los datos, lo que se conoce como streaming , de modo que no se requieren movimientos de cinta repetidos y que consumen mucho tiempo para escribir datos nuevos.

Sin embargo, un efecto secundario de este diseño es que leer el directorio de archivos de una cinta generalmente requiere escanear toda la cinta para leer todas las entradas de directorio dispersas. La mayoría del software de archivado de datos que funciona con almacenamiento en cinta almacenará una copia local del catálogo de cinta en un sistema de archivos de disco, de modo que se puedan agregar archivos a una cinta rápidamente sin tener que volver a escanear el medio de la cinta. La copia del catálogo de cinta local generalmente se descarta si no se usa durante un período de tiempo específico, momento en el cual la cinta debe volver a escanearse si se va a usar en el futuro.

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

Formato de cinta

Escribir datos en una cinta, borrarlos o formatearlos suele ser un proceso que consume mucho tiempo y puede llevar 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 en ella. Esto se debe a la naturaleza inherentemente destructiva de sobrescribir datos en medios secuenciales.

Debido al tiempo que puede llevar formatear una cinta, normalmente las cintas se formatean previamente para que el usuario no tenga que dedicar tiempo a preparar cada cinta nueva para su uso. Normalmente, todo lo que se necesita es escribir una etiqueta de identificación del medio en la cinta antes de usarla, e incluso esto se puede escribir automáticamente mediante software cuando se utiliza una cinta nueva por primera vez.

Sistemas de archivos de bases de datos

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

IBM DB2 para i [18] (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 [19] (anteriormente conocido como OS/400 e i5/OS), que incorpora un almacenamiento de nivel único y se ejecuta en IBM Power Systems (anteriormente conocido como AS/400 e iSeries), diseñado por Frank G. Soltis, ex 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 no pudieron lograrlo más tarde. [20] Estas tecnologías se conocen informalmente como 'Fortress Rochester' [ cita requerida ] y en algunos aspectos básicos se extendieron de las primeras tecnologías de Mainframe, pero en muchos sentidos eran más avanzadas desde una perspectiva tecnológica [ cita requerida ] .

Algunos 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:

Sistemas de archivos transaccionales

Algunos programas necesitan realizar varios cambios en el sistema de archivos o, si uno o más de los cambios fallan por algún motivo, no realizar ninguno. Por ejemplo, un programa que está instalando o actualizando software puede escribir archivos ejecutables, bibliotecas o archivos de configuración. Si falla parte de la escritura y el software se deja parcialmente instalado o actualizado, el software puede quedar dañado o inutilizable. Una actualización incompleta de una utilidad clave del sistema, como el shell de comandos , puede dejar todo el sistema en un estado inutilizable.

El procesamiento de transacciones introduce la garantía de atomicidad , asegurando que las operaciones dentro de una transacción estén todas confirmadas o la transacción puede ser abortada y el sistema descarta todos sus resultados parciales. Esto significa que si hay una falla o falla de energía, después de la recuperación, el estado almacenado será consistente. El software se instalará completamente o la instalación fallida se revertirá por completo, pero no quedará una instalación parcial inutilizable en el sistema. Las transacciones también proporcionan la garantía de aislamiento [ aclaración necesaria ] , lo que significa que las operaciones dentro de una transacción están ocultas de otros subprocesos en el sistema hasta que la transacción se confirma, y ​​que las operaciones que interfieran en el sistema se serializarán correctamente con la transacción.

Windows, comenzando con Vista, agregó soporte transaccional a NTFS , en una característica llamada NTFS transaccional , pero ahora se desaconseja su uso. [21] Hay varios prototipos de investigación de sistemas de archivos transaccionales para sistemas UNIX, incluido el sistema de archivos Valor, [22] Amino, [23] LFS, [24] y un sistema de archivos ext3 transaccional en el núcleo TxOS, [25] así como sistemas de archivos transaccionales dirigidos a sistemas integrados, como TFFS. [26]

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 se puede utilizar como un mecanismo de control de concurrencia para archivos individuales, pero normalmente no protege la estructura de directorios ni los metadatos del archivo. Por ejemplo, el bloqueo de archivos no puede evitar las condiciones de carrera TOCTTOU en los 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 en diario de los sistemas de archivos es una técnica que se utiliza para introducir coherencia a nivel de transacción en las estructuras de los sistemas de archivos. Las transacciones en diario no se exponen a los programas como parte de la API del sistema operativo; solo se utilizan internamente para garantizar la coherencia en la granularidad de una única llamada del sistema.

Los sistemas de copia de seguridad de datos normalmente no admiten la copia de seguridad directa de los 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 anota qué archivos han cambiado desde un momento determinado, independientemente del estado transaccional compartido entre varios archivos en el conjunto de datos general. Como solución alternativa, algunos sistemas de bases de datos simplemente 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 ese archivo y no interactúa directamente con las bases de datos transaccionales activas en absoluto. La recuperación requiere la recreación por separado de la base de datos a partir del archivo de estado después de que el software de copia de seguridad haya restaurado el archivo.

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 computadoras remotas conectadas a la red. Entre los ejemplos de sistemas de archivos de red se incluyen clientes para los protocolos NFS , [27] AFS y 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 (normalmente servidores) tienen acceso al mismo subsistema de disco externo (normalmente una red de área de almacenamiento ). El sistema de archivos arbitra el acceso a ese subsistema, evitando colisiones de escritura. [28] 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 actuar sobre 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 incluyen:

Sistema de archivos mínimo / almacenamiento en 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 de almacenamiento de datos básico y económico 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 casetes y luego "RETURN" en el teclado para notificar al sistema que la grabadora de casetes estaba grabando. El sistema escribía un sonido para proporcionar sincronización de tiempo, luego modulaba sonidos que codificaban un prefijo, los datos, una suma de comprobación y un sufijo. Cuando el sistema necesitaba leer datos, se indicaba al usuario que pulsara "PLAY" en la grabadora de casetes. El sistema escuchaba los sonidos en la cinta esperando hasta que una ráfaga de sonido pudiera reconocerse como la sincronización. Luego, el sistema interpretaba los sonidos posteriores como datos. Cuando se completaba la lectura de datos, el sistema notificaba al usuario que pulsara "STOP" en la grabadora de casetes. Era primitivo, pero funcionaba (en su mayoría). Los datos se almacenaban secuencialmente, generalmente en un formato sin nombre, aunque algunos sistemas (como la serie de computadoras Commodore PET ) permitían nombrar los archivos. Se podían escribir y localizar varios conjuntos de datos haciendo avanzar 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 correcto para comenzar a reproducir la siguiente región de datos. Algunas implementaciones incluso incluían sonidos audibles intercalados con los datos.

Sistemas de archivos planos

En un sistema de archivos plano, no hay subdirectorios ; las entradas de directorio de todos los archivos se almacenan en un solo directorio.

Cuando los disquetes estuvieron disponibles por primera vez, este tipo de sistema de archivos era adecuado debido a la relativamente pequeña cantidad de espacio de datos disponible. Las máquinas CP/M presentaban un sistema de archivos plano, donde los archivos se podían asignar a una de las 16 áreas de usuario y las operaciones de archivo genéricas se limitaban a funcionar en una en lugar de funcionar por defecto en todas. Estas áreas de usuario no eran más que atributos especiales asociados a los archivos; es decir, no era necesario definir una cuota específica para cada una de estas áreas y los archivos se podían agregar a grupos mientras aún hubiera espacio de almacenamiento libre en el disco. Los primeros Apple Macintosh también presentaban un sistema de archivos plano, el Macintosh File System . Era inusual porque el programa de administración de archivos ( Macintosh Finder ) creaba la ilusión de un sistema de archivos parcialmente jerárquico sobre EMFS. Esta estructura requería que cada archivo tuviera un nombre único, incluso si parecía estar en una carpeta separada. IBM DOS/360 y OS/360 almacenan las entradas de todos los archivos en un paquete de discos ( volumen ) en un directorio en el paquete llamado Tabla de contenido de volumen (VTOC).

Si bien los sistemas de archivos simples y planos se vuelven complicados a medida que aumenta el número de archivos, dificultan la organización de los datos en grupos de archivos relacionados.

Una incorporación reciente a la familia de sistemas de archivos planos es S3 de Amazon , un servicio de almacenamiento remoto que es intencionalmente simplista para permitir a los usuarios la capacidad de personalizar cómo se almacenan sus datos. Las únicas construcciones son los contenedores (imagínese una unidad de disco de tamaño ilimitado) y los objetos (similares, pero no idénticos al concepto estándar de un archivo). La administración avanzada de archivos se permite al poder usar casi cualquier carácter (incluido '/') en el nombre del objeto y la capacidad de seleccionar subconjuntos del contenido del contenedor en función de prefijos idénticos.

Implementaciones

Un sistema operativo (OS) generalmente admite uno o más sistemas de archivos. A veces, un SO y su sistema de archivos están tan estrechamente entrelazados 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 Unix Shell , Windows Command Prompt y PowerShell y OpenVMS DCL . Un sistema operativo también suele proporcionar exploradores de archivos de interfaz gráfica de usuario , como MacOS Finder y Windows File Explorer .

Sistemas operativos Unix y similares

Los sistemas operativos tipo Unix crean un sistema de archivos virtual, que hace que todos los archivos de todos los dispositivos parezcan existir en una única jerarquía. Esto significa que, en esos sistemas, hay un directorio raíz y todos los archivos existentes en el sistema se encuentran debajo de él. Los sistemas tipo Unix pueden utilizar un disco RAM o un recurso compartido de red como directorio raíz.

Los sistemas tipo Unix asignan un nombre de dispositivo a cada dispositivo, pero no es así como se accede a los archivos de ese dispositivo. En cambio, para obtener acceso a los archivos de otro dispositivo, primero se debe informar al sistema operativo en qué parte del árbol de directorios deben aparecer esos archivos. Este proceso se denomina montar un sistema de archivos. Por ejemplo, para acceder a los archivos de un CD-ROM , se debe indicar al sistema operativo "Toma el sistema de archivos de este CD-ROM y haz que aparezca en tal y tal directorio". El directorio proporcionado al sistema operativo se denomina punto de montaje  ; podría ser, por ejemplo, /media . El directorio /media existe en muchos sistemas Unix (como se especifica en el Estándar de jerarquía de sistemas de archivos ) y está destinado específicamente para su uso como punto de montaje para medios extraíbles como CD, DVD, unidades USB o disquetes. Puede estar vacío o puede 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 ayudan en el proceso de montaje y le aportan nuevas funciones. Algunas de estas estrategias se han denominado "montaje automático" como reflejo de su finalidad.

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 flash sin formato sin una capa de traducción flash (FTL) o un dispositivo de tecnología de memoria (MTD), existen UBIFS , JFFS2 y YAFFS , entre otros. SquashFS es un sistema de archivos de solo lectura comprimido común.

Solaris

En versiones anteriores, Solaris tenía como opción predeterminada el sistema UFS (sin registro ni registro) para los sistemas de archivos de arranque y complementarios. Solaris tenía como opción predeterminada el sistema UFS, que era compatible y ampliado.

Con el tiempo se agregó soporte para otros sistemas de archivos y se realizaron mejoras significativas, entre ellos Veritas Software Corp. (registro) VxFS , Sun Microsystems (agrupamiento) QFS , Sun Microsystems (registro) UFS y Sun Microsystems (código abierto, agrupable, comprimible a 128 bits y con corrección de errores) ZFS .

Se agregaron extensiones de kernel a Solaris para permitir el funcionamiento de Veritas VxFS arrancable . Se agregó registro o registro en diario 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 luego admitieron ZFS arrancable .

La gestión de volúmenes lógicos permite distribuir un sistema de archivos en varios dispositivos con el fin de agregar redundancia, capacidad y/o rendimiento. Los entornos heredados de Solaris pueden utilizar Solaris Volume Manager (antes conocido como Solstice DiskSuite ). Varios sistemas operativos (incluido Solaris) pueden utilizar Veritas Volume Manager . Los sistemas operativos modernos basados ​​en Solaris eclipsan la necesidad de gestión de volúmenes mediante el aprovechamiento de grupos de almacenamiento virtuales en ZFS .

macOS

macOS (anteriormente Mac OS X) utiliza el sistema de archivos Apple File System (APFS), que en 2017 reemplazó a 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+. [29] HFS Plus es un sistema de archivos rico en metadatos y que conserva las mayúsculas y minúsculas, pero (por lo general) no las 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 registro para evitar la corrupción de la estructura del sistema de archivos e introdujeron una serie de optimizaciones a los algoritmos de asignación en un intento de desfragmentar archivos automáticamente sin requerir 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 de estilo Unix , enlaces simbólicos de estilo Unix y alias . Los alias están diseñados para mantener un enlace a su archivo original incluso si se mueven o se les cambia el nombre; no son interpretados por el sistema de archivos en sí, 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 BSD Unix Fast File System 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 tampoco se podía actualizar a Leopard un sistema anterior a Leopard instalado en un volumen UFS. [30] A partir de Mac OS X Lion, la compatibilidad con UFS se abandonó por completo.

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

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. [32]

Sistema operativo/2

OS/2 1.2 introdujo el sistema de archivos de alto rendimiento (HPFS). HPFS admite nombres de archivos con mayúsculas y minúsculas en diferentes páginas de códigos , nombres de archivos largos (255 caracteres), 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 extensión , 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 (JFS).

PC BSD

PC-BSD es una versión de escritorio de FreeBSD, que hereda el soporte ZFS de FreeBSD , de manera similar a FreeNAS . El nuevo instalador gráfico de PC-BSD puede manejar / ( root ) en instalaciones de grupos ZFS y RAID-Z y cifrado de discos usando Geli desde el principio de una manera fácil y conveniente ( GUI ). La actual PC-BSD 9.0+ 'Isotope Edition' tiene la versión 5 del sistema de archivos ZFS y la versión 28 del grupo de almacenamiento ZFS.

Plan 9

Plan 9 de Bell Labs trata todo como un archivo y accede a todos los objetos como se accedería a un archivo (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 archivos . El protocolo 9P elimina la diferencia entre archivos locales y remotos. Los sistemas de archivos en 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 muchos 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 un shell de comandos de Windows

Windows utiliza los sistemas de archivos FAT , NTFS , exFAT , Live File System y ReFS (el último de estos solo es compatible y se puede utilizar 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 letras 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 utiliza más comúnmente para la partición de la unidad de disco duro principal , en la que normalmente se instala Windows y desde la que se inicia. Esta "tradición" se ha arraigado tanto que existen errores en muchas aplicaciones que dan por sentado que la unidad en la que está instalado el sistema operativo es C. El uso de letras de unidad y la tradición de utilizar "C" como letra de unidad para la partición de la unidad de disco duro principal se remontan a MS-DOS , donde las letras A y B se reservaban para hasta dos unidades de disquete. Esto, a su vez, derivó de CP/M en la década de 1970 y, en última instancia, de CP/CMS de IBM de 1967.

GORDO

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

El sistema de archivos FAT tiene sus raíces en un precursor FAT de 8 bits (incompatible) en Standalone Disk BASIC y el efímero proyecto MDOS/MIDAS . [ cita requerida ]

Con el paso de los años, el sistema de archivos se ha ampliado de FAT12 a FAT16 y FAT32 . Se han añadido varias funciones al sistema de archivos, entre ellas subdirectorios , compatibilidad con páginas de códigos , atributos extendidos y nombres de archivo largos . Otros fabricantes, como Digital Research, han incorporado compatibilidad opcional con el seguimiento de eliminaciones y esquemas de seguridad multiusuario basados ​​en volúmenes, directorios y archivos para admitir 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 la cantidad 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 con formato FAT .

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

FAT12, FAT16 y FAT32 también tienen un límite de ocho caracteres para el nombre de archivo y tres caracteres para la extensión (como .exe ). Esto se conoce comúnmente como el límite de nombre de archivo 8.3 . VFAT , una extensión opcional para FAT12, FAT16 y FAT32, introducida en Windows 95 y Windows NT 3.5 , permitió que los nombres de archivo largos ( LFN ) se almacenaran en el sistema de archivos FAT de manera compatible con versiones anteriores.

Sistema operativo NTFS

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

exFAT

exFAT tiene ciertas ventajas sobre NTFS con respecto a la sobrecarga del sistema de archivos . [ cita requerida ]

exFAT no es compatible con versiones anteriores de sistemas de archivos FAT como FAT12, FAT16 o FAT32. El sistema de archivos es compatible con sistemas Windows más recientes, 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). [32] El soporte en otros sistemas operativos es escaso, ya que la implementación del soporte para exFAT requiere una licencia. exFAT es el único sistema de archivos que es totalmente compatible tanto con macOS como con Windows y que puede contener archivos de más de 4 GB. [33] [34]

OpenVMS

M.V.S.

Antes de la introducción de VSAM , los sistemas OS/360 implementaron un sistema de archivos híbrido. El sistema fue diseñado para soportar fácilmente paquetes de discos extraíbles , por lo que la información relacionada con 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 contenido de volumen (VTOC). La VTOC almacena todos los metadatos del archivo. Más tarde se impuso una estructura de directorio jerárquica con la introducción del Catálogo del sistema , que opcionalmente puede catalogar 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 fuera de línea y tiene los privilegios adecuados, el sistema intentará montar el volumen requerido. Aún se puede acceder a los conjuntos de datos catalogados y no catalogados utilizando la información en la VTOC, sin pasar por el catálogo, si se proporciona el identificador de volumen requerido a la solicitud OPEN. Aún más tarde, la VTOC se indexó para acelerar el acceso.

Sistema de monitorización conversacional

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 archivo y la información de control están dispersos y entremezclados. El ancla es un registro llamado Directorio de archivos maestro (MFD), siempre ubicado en el cuarto bloque del disco. Originalmente, CMS usaba bloques de 800 bytes de longitud fija, pero versiones posteriores usaban bloques de mayor tamaño, de hasta 4K. El acceso a un registro de datos requiere dos niveles de indirección , donde la entrada del directorio del archivo (llamada entrada de la Tabla de estado de archivo (FST)) apunta a bloques que contienen una lista de direcciones de los registros individuales.

Sistema de archivos AS/400

Los datos del AS/400 y sus sucesores consisten en objetos del sistema asignados al espacio de direcciones virtuales del sistema en un almacenamiento 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, forman la base del soporte del AS/400 para una base de datos relacional integrada .

Otros sistemas de archivos

Limitaciones

Limitaciones de diseño

Los sistemas de archivos limitan la capacidad de almacenamiento de datos , generalmente determinada por el tamaño típico de los dispositivos de almacenamiento en el momento en que se diseña el sistema de archivos y se anticipa que se producirá en el futuro previsible.

Dado que los tamaños de almacenamiento han aumentado a un ritmo casi exponencial (véase la ley de Moore ), los dispositivos de almacenamiento más nuevos a menudo superan los límites de los sistemas de archivos existentes en tan solo unos pocos años desde su introducción. Esto requiere nuevos sistemas de archivos con una capacidad cada vez mayor.

A mayor capacidad, mayor es la necesidad de capacidades y, por lo tanto, mayor es la complejidad. La complejidad del sistema de archivos varía generalmente de manera proporcional a la capacidad de almacenamiento disponible. Dejando de lado los problemas de capacidad, los sistemas de archivos de los ordenadores domésticos de principios de los años 80 , con entre 50 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 primeros sistemas, ya que la complejidad de las estructuras de los sistemas de archivos modernos consumiría rápidamente la capacidad limitada de los primeros sistemas de almacenamiento.

Convertir el tipo de un sistema de archivos

Puede resultar ventajoso o necesario tener los archivos en un sistema de archivos diferente al que tienen actualmente. Entre las razones se incluyen la necesidad de aumentar los requisitos de espacio más allá de los límites del sistema de archivos actual. Es posible que sea necesario aumentar la profundidad de la ruta más allá de las restricciones del sistema de archivos. Puede haber consideraciones de rendimiento o confiabilidad. Otra razón es proporcionar acceso a otro sistema operativo que no admita el sistema de archivos existente.

Conversión in situ

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

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. El mejor caso es si hay espacio sin utilizar 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 ext2 y se elimina el sistema de archivos anterior.

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 archivos largas y nombres de archivos 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 distintos límites en cuanto a la profundidad de la ruta. Los sistemas de archivos también tienen un límite en cuanto a la longitud de un nombre de archivo individual.

Copiar archivos con nombres largos o ubicados en rutas de gran profundidad de un sistema de archivos a otro puede generar resultados no deseados. Esto depende de cómo la utilidad que realiza la copia maneja 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 las estructuras de datos que utiliza un sistema operativo para realizar un seguimiento de los archivos en un disco o partición; es decir, la forma en que se organizan los archivos en el disco.
  2. ^ Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014), Implementación del sistema de archivos (PDF) , Libros de Arpaci-Dusseau
  3. ^ "Almacenamiento, tecnología informática y mercados, estado y evolución" (PDF) . 20 de septiembre de 2018. Los discos duros siguen siendo el almacenamiento clave en el futuro cercano, los SSD no son rentables en términos de capacidad
  4. ^ McGill, Florence E. (1922). Office Practice and Business Procedure. Gregg Publishing Company. pág. 197. Consultado el 1 de agosto de 2016 .
  5. ^ Waring, RL (1961). Investigaciones técnicas sobre la incorporación de una copia 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 de archivos de disco del país. Procesamiento de datos estadounidense. 1964. Consultado el 1 de agosto de 2016 .
  7. ^ abc Amir, Yair. "Sistemas operativos 600.418 El sistema de archivos". Departamento de Ciencias de la Computación de la Universidad Johns Hopkins . Consultado el 31 de julio de 2016 .
  8. ^ ab IBM Corporation. "Estructura de componentes del sistema de archivos lógico". IBM Knowledge Center . 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 informática conjunta de otoño del 30 de noviembre al 1 de diciembre de 1965, Parte I en XX - AFIPS '65 (Otoño, parte I) . Conferencia informática conjunta de otoño. AFIPS . págs. 213–229. doi : 10.1145/1463891.1463915 . Consultado el 30 de julio de 2011 .
  10. ^ Carrier 2005, págs. 187–188.
  11. ^ Valvano, Jonathan W. (2011). Sistemas de microcomputadoras integradas: interfaz en tiempo real (tercera edición). Cengage Learning . p. 524. ISBN 978-1-111-42625-5. Consultado el 30 de junio de 2022 .
  12. ^ "KSAM: método de acceso secuencial con clave basado en árboles AB+". ResearchGate . Consultado el 29 de abril de 2016 .
  13. ^ Mohan, I. Chandra (2013). Sistemas operativos. Delhi: PHI Learning Pvt. Ltd. pág. 166. ISBN 9788120347267. Recuperado el 27 de julio de 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. Permiten acceder a archivos o directorios.
  14. ^ "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.
  15. ^ "Acerca de Apple File System (APFS)". Guía del usuario de DaisyDisk . APFS permite compartir espacio entre volúmenes. En APFS, cada disco físico es un contenedor que puede tener varios volúmenes en su interior, que comparten el mismo grupo de espacio libre.
  16. ^ Douglis, Fred; Cáceres, Ramón; Kaashoek, M. Frans ; Krishnan, P.; Li, Kai; Marsh, Brian ; Tauber, Joshua (1994). "18. Alternativas de almacenamiento para computadoras portátiles". Computación móvil . Vol. 353. USENIX . págs. 473–505. doi :10.1007/978-0-585-29603-6_18. ISBN. 978-0-585-29603-6. Número de identificación del sujeto  2441760.
  17. ^ "Windows en una base de datos: rebanado y troceado por los veteranos de BeOS". theregister.co.uk. 2002-03-29 . Consultado el 2014-02-07 .
  18. ^ "IBM DB2 para i: Descripción general". 03.ibm.com. Archivado desde el original el 2013-08-02 . Consultado el 2014-02-07 .
  19. ^ "IBM developerWorks: novedades en IBM i". Ibm.com. 8 de marzo de 2011. Consultado el 7 de febrero de 2014 .
  20. ^ "El sucesor de XP, Longhorn, pasa a SQL y P2P: filtraciones de Microsoft". theregister.co.uk. 28 de enero de 2002. Consultado el 7 de febrero de 2014 .
  21. ^ "Alternativas al uso de NTFS transaccional (Windows)". Msdn.microsoft.com. 2013-12-05 . Consultado el 2014-02-07 .
  22. ^ Spillane, Richard; Gaikwad, Sachin; Chinni, Manjunath; Zadok, Erez; Wright, Charles P. (2009). Habilitación del acceso transaccional a archivos mediante extensiones de kernel livianas (PDF) . Séptima Conferencia USENIX sobre Tecnologías de Archivos y Almacenamiento (FAST 2009).
  23. ^ Wright, Charles P.; Spillane, Richard; Sivathanu, Gopalan; Zadok, Erez (2007). "Extensión de la semántica ACID al sistema de archivos" (PDF) . Transacciones ACM en almacenamiento . 3 (2): 4. doi :10.1145/1242520.1242521. S2CID  8939577.
  24. ^ Seltzer, Margo I. (1993). "Soporte de transacciones en un sistema de archivos estructurado en registros" (PDF) . Actas de la Novena Conferencia Internacional sobre Ingeniería de Datos .
  25. ^ Porter, Donald E.; Hofmann, Owen S.; Rossbach, Christopher J.; Benn, Alexander; Witchel, Emmett (octubre de 2009). "Operating System Transactions" (PDF) . Actas del 22.º Simposio de la ACM sobre principios de sistemas operativos (SOSP '09) . Big Sky, MT.
  26. ^ Gal, Eran; Toledo, Sivan. Un sistema de archivos Flash transaccional para microcontroladores (PDF) . USENIX 2005.
  27. ^ Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014), Sistema de archivos de red de Sun (PDF) , Libros de Arpaci-Dusseau
  28. ^ Troppens, Ulf; Erkens, Rainer; Müller, Wolfgang (2004). Explicación de las redes de almacenamiento: conceptos básicos y aplicaciones de SAN, NAS, iSCSI e InfiniBand de canal de fibra. John Wiley & Sons . págs. 124–125. ISBN 0-470-86182-7. Consultado el 30 de junio de 2022 .
  29. ^ "Mac OS X: Acerca del registro del sistema de archivos". Apple . Consultado el 8 de febrero de 2014 .
  30. ^ "Mac OS X 10.5 Leopard: Instalación en un volumen con formato UFS". apple.com . 19 de octubre de 2007. Archivado desde el original el 16 de marzo de 2008 . Consultado el 29 de abril de 2016 .
  31. ^ OSXDaily (2013-10-02). "Cómo habilitar la compatibilidad con escritura NTFS en Mac OS X" . Consultado el 6 de febrero de 2014 .
  32. ^ por Steve Bunting (14 de agosto de 2012). EnCase Computer Forensics: el examinador certificado oficial de EnCE: EnCase. ISBN 9781118219409. Recuperado el 7 de febrero de 2014 .
  33. ^ "Formatos de sistemas de archivos disponibles en la Utilidad de Discos en Mac". Soporte técnico de Apple .
  34. ^ "Especificación del sistema de archivos exFAT". Microsoft Docs .
  35. ^ El sistema de archivos Prospero: un sistema de archivos global basado en el modelo de sistema virtual. 1992.
  36. ^ 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. doi :10.1109/PROC.1975.9856. ISSN  0018-9219. S2CID  12982770.
  37. ^ Pirkola, Gary C.; Sanguinetti, John. "La protección de la información en un entorno de uso compartido de tiempo 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.
  38. ^ Davis, Terry A. (sin fecha). "El sistema operativo del Templo". www.templeos.org . Archivado desde el original el 31 de marzo de 2017 . Consultado el 30 de marzo de 2017 .
  39. ^ ab "Cómo convertir discos FAT a NTFS". Microsoft Docs .
  40. ^ "Ext4 Howto". kernel.org . Consultado el 29 de abril de 2016 .
  41. ^ ab "Conversión desde Ext3". Wiki de Btrfs .

Fuentes

Lectura adicional

Libros

En línea

Enlaces externos