stringtranslate.com

Sistema de archivos

En informática , un sistema de archivos o sistema de archivos (a menudo abreviado como fs ) es un método y estructura de datos que el sistema operativo utiliza para controlar cómo se almacenan y recuperan los datos. [1] Sin un sistema de archivos, los datos colocados en un medio de almacenamiento serían un gran conjunto de datos sin forma de saber dónde termina un dato y comienza el siguiente, o dónde se encuentra cada dato cuando llega el momento de recuperarlo. Al separar los datos en partes y darle un nombre a cada parte, los datos se aíslan e identifican fácilmente. Tomando su nombre de la forma en que se denomina un sistema de gestión de datos en papel, cada grupo de datos se denomina " archivo ". La estructura y las reglas lógicas utilizadas para gestionar los grupos de datos y sus nombres se denomina "sistema de archivos".

Hay muchos tipos de sistemas de archivos, cada uno con una estructura y lógica únicas, propiedades de velocidad, flexibilidad, seguridad, tamaño y más. Algunos sistemas de archivos han sido diseñados para usarse en aplicaciones específicas. Por ejemplo, los sistemas de archivos ISO 9660 y UDF están diseñados específicamente para discos ópticos .

Los sistemas de archivos se pueden utilizar en muchos tipos de dispositivos de almacenamiento utilizando diversos medios. Introducidos por IBM en 1956, los HDD ( unidades de disco duro ) a principios de la década de 1960 fueron, y siguen siendo, el dispositivo de almacenamiento secundario dominante para las computadoras de uso general y se prevé que sigan siéndolo en el futuro previsible. [2] Otros tipos de medios que se utilizan incluyen SSD , cintas magnéticas y discos ópticos. En algunos casos, como con tmpfs , la memoria principal de la computadora ( memoria de acceso aleatorio , RAM) se utiliza para crear un sistema de archivos temporal para uso a corto plazo.

Algunos sistemas de archivos se utilizan en dispositivos de almacenamiento de datos locales ; [3] otros proporcionan acceso a archivos a través de un protocolo de red (por ejemplo, NFS , [4] SMB o clientes 9P ). Algunos sistemas de archivos son "virtuales", lo que significa que los "archivos" suministrados (llamados archivos virtuales ) se calculan a pedido (como procfs y sysfs ) o son simplemente una asignación a un sistema de archivos diferente utilizado como almacén de respaldo. El sistema de archivos gestiona el acceso tanto al contenido de los archivos como a los metadatos de esos archivos. Es responsable de disponer el espacio de almacenamiento; La confiabilidad, la eficiencia y el ajuste con respecto al medio de almacenamiento físico son consideraciones de diseño importantes.

Origen del término

Desde C. Desde  1900 y antes de la llegada de las computadoras, los términos sistema de archivos y sistema de archivo se utilizaban para describir un método de almacenamiento y recuperación de documentos en papel. [5] En 1961, el término sistema de archivos se aplicaba al archivo computarizado junto con su significado original. [6] En 1964, ya era de uso general. [7]

Arquitectura

Un sistema de archivos consta de dos o tres capas. A veces, las capas se separan explícitamente y, a veces, las funciones se combinan. [8]

El sistema de archivos lógico es responsable de la interacción con la aplicación del usuario. Proporciona la interfaz del programa de aplicación (API) para operaciones de archivos: OPEN, CLOSE, READ, etc., y pasa la operación solicitada a la capa inferior para su procesamiento. El sistema de archivos lógico "administra las entradas de la tabla de archivos abiertos y los descriptores de archivos por proceso". [9] Esta capa proporciona "acceso a archivos, operaciones de directorio, [y] seguridad y protección". [8]

La segunda capa opcional es el sistema de archivos virtual . "Esta interfaz permite admitir múltiples instancias simultáneas de sistemas de archivos físicos, cada una de las cuales se denomina implementación de sistema de archivos". [9]

La tercera capa es el sistema de archivos físico . Esta capa se ocupa del funcionamiento físico del dispositivo de almacenamiento (por ejemplo, disco). Procesa bloques físicos que se leen o escriben. Maneja el almacenamiento en búfer y la gestión de la memoria y es responsable de la ubicación física de los bloques en ubicaciones específicas del medio de almacenamiento. El sistema de archivos físico interactúa con los controladores del dispositivo o con el canal para controlar el dispositivo de almacenamiento. [8]

Aspectos de los sistemas de archivos.

Administracion del espacio

Nota: esto solo se aplica a los sistemas de archivos utilizados en dispositivos de almacenamiento.

Un ejemplo de espacio disponible, demostrado con clústeres NTFS de 4096 bytes : 100 000 archivos, cada uno de cinco bytes por archivo, lo que equivale a 500 000 bytes de datos reales pero requiere 409 600 000 bytes de espacio en disco para almacenar

Los sistemas de archivos asignan espacio de forma granular, normalmente en varias unidades físicas en el dispositivo. El sistema de archivos es responsable de organizar archivos y directorios , y de realizar un seguimiento de qué áreas del medio pertenecen a qué archivo y cuáles no se están utilizando. 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 pista/sector . [ cita necesaria ]

Esto da como resultado espacio no utilizado cuando un archivo no es un múltiplo exacto de la unidad de asignación, lo que a veces se denomina espacio de inactividad . [10] Para una asignación de 512 bytes, el espacio promedio no utilizado es de 256 bytes. Para clústeres de 64 KB, el espacio medio no utilizado es de 32 KB. El tamaño de la unidad de asignación se elige cuando se crea el sistema de archivos. Elegir el tamaño de asignación en función del tamaño promedio de los archivos que se espera que estén en el sistema de archivos puede minimizar la cantidad de espacio inutilizable. Con frecuencia, la asignación predeterminada puede proporcionar un uso razonable. Elegir un tamaño de asignación demasiado pequeño genera una sobrecarga excesiva si el sistema de archivos contendrá en su mayoría archivos muy grandes.

Los sistemas de archivos pueden fragmentarse

La fragmentación del sistema de archivos ocurre cuando el espacio no utilizado o los archivos individuales no son contiguos. A medida que se utiliza un sistema de archivos, los archivos se crean, modifican y eliminan. Cuando se crea un archivo, el sistema de archivos 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. A medida que se eliminan los archivos, el espacio que se les asignó finalmente se considera disponible para que lo utilicen otros archivos. Esto crea áreas alternadas usadas y no utilizadas de varios tamaños. Esta es la fragmentación del espacio libre. Cuando se crea un archivo y no hay un área de espacio contiguo disponible para su asignación inicial, el espacio debe asignarse en fragmentos. Cuando un archivo se modifica de tal manera que se hace más grande, puede exceder el espacio que se le asignó inicialmente, se debe asignar otra asignación en otro lugar y el archivo se fragmenta. [11]

En algunos sistemas operativos, un administrador del sistema puede utilizar cuotas de disco para limitar la asignación de espacio en disco.

Nombres de archivos

Un nombre de archivo (o nombre de archivo ) se utiliza para identificar una ubicación de almacenamiento en el sistema de archivos. La mayoría de los sistemas de archivos tienen restricciones en la longitud de los nombres de archivos. En algunos sistemas de archivos, los nombres de archivos no distinguen entre mayúsculas y minúsculas (es decir, los nombres MYFILEhacen myfilereferencia al mismo archivo en un directorio); en otros, los nombres de archivos distinguen entre mayúsculas y minúsculas (es decir, los nombres MYFILE, MyFiley myfilese refieren a tres archivos separados que se encuentran en el mismo directorio).

La mayoría de los sistemas de archivos modernos permiten que los nombres de archivos contengan una amplia gama de caracteres del conjunto de caracteres Unicode . Sin embargo, pueden tener restricciones en el uso de ciertos caracteres especiales, no permitiéndolos dentro de los nombres de archivos; esos caracteres pueden usarse para indicar un dispositivo, tipo de dispositivo, prefijo de directorio, separador de ruta de archivo o tipo de archivo.

Directorios

Los sistemas de archivos suelen tener directorios (también llamados carpetas ) que permiten al usuario agrupar archivos en colecciones separadas. Esto se puede implementar asociando el nombre del archivo con un índice en una tabla de contenido o un inodo en un sistema de archivos tipo Unix . Las estructuras de directorios pueden ser planas (es decir, lineales) o permitir jerarquías donde los directorios pueden contener subdirectorios. El primer sistema de archivos que admitía jerarquías arbitrarias de directorios se utilizó en el sistema operativo Multics . [12] Los sistemas de archivos nativos de los sistemas tipo Unix también admiten jerarquías de directorios arbitrarias, como lo hacen, por ejemplo, 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 posteriores. versiones 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

Otra información contable suele estar asociada con cada archivo dentro de un sistema de archivos. La longitud de los datos contenidos en un archivo se puede almacenar como el número de bloques asignados para el archivo o como un recuento de bytes . La hora en que se modificó el archivo por última vez se puede almacenar como marca de tiempo del archivo. Los sistemas de archivos pueden almacenar la hora de creación del archivo, la hora en que se accedió por última vez, la hora en que se cambiaron los metadatos del archivo o la hora en que se realizó la última copia de seguridad del archivo. Otra información puede incluir el tipo de dispositivo del archivo (por ejemplo , bloque , carácter , socket , subdirectorio , etc.), su ID de usuario propietario e ID de grupo , sus permisos de acceso y otros atributos del archivo (por ejemplo, si el archivo es de solo lectura, ejecutable , etc.). .).

Un sistema de archivos almacena todos los metadatos asociados con el archivo (incluido el nombre del archivo, la longitud del contenido de un archivo y la ubicación del archivo en la jerarquía de carpetas) separados del contenido del archivo.

La mayoría de los sistemas de archivos almacenan los nombres de todos los archivos en 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 del directorio 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 con ningún archivo en particular. Dichos 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 en sistemas de archivos, como NTFS , XFS , ext2 , ext3 , algunas versiones de UFS y HFS+ , utilizando 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 separadas pueden denominarse corrientes o bifurcaciones . Apple ha utilizado durante mucho tiempo un sistema de archivos bifurcado en Macintosh y Microsoft admite transmisiones en NTFS. Algunos sistemas de archivos mantienen múltiples revisiones anteriores de un archivo con un único nombre de archivo; el nombre del archivo por sí solo recupera la versión más reciente, mientras que se puede acceder a la versión guardada anterior usando una convención de nomenclatura especial como "nombre de archivo;4" o "nombre de archivo (-4)" para acceder a la versión guardada hace cuatro.

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

Sistema de archivos como interfaz de usuario abstracta

En algunos casos, es posible que un sistema de archivos no utilice un dispositivo de almacenamiento, pero puede usarse para organizar y representar el acceso a cualquier dato, ya sea almacenado o generado dinámicamente (por ejemplo, procfs ).

Utilidades

Los sistemas de archivos incluyen utilidades para inicializar, modificar parámetros y eliminar una instancia del sistema de archivos. Algunos incluyen la capacidad de ampliar o truncar el espacio asignado al sistema de archivos.

Las utilidades de directorio se pueden utilizar para crear, cambiar el nombre y eliminar entradas de directorio , que también se conocen como dentries (singular: dentry ), [13] y para alterar los metadatos asociados con un directorio. Las utilidades de directorio también pueden incluir capacidades para crear enlaces adicionales a un directorio ( enlaces físicos en Unix ), cambiar el nombre de los enlaces principales (".." en sistemas operativos tipo Unix ), [ se necesita aclaración ] y crear enlaces bidireccionales a archivos.

Las utilidades de archivos crean, enumeran, copian, mueven y eliminan archivos, y modifican metadatos. Es posible que puedan truncar datos, truncar o ampliar la asignación de espacio, agregar, mover y modificar archivos in situ. Dependiendo de 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 posponen 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 actividad mínima. Un ejemplo son las utilidades de desfragmentación del sistema de archivos .

Algunas de las características 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. Estos incluyen respaldo 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.

Restringir y permitir el acceso

Hay varios mecanismos utilizados por los sistemas de archivos para controlar el acceso a los datos. Por lo general, la intención es evitar que un usuario o grupo de usuarios lea o modifique archivos. Otra razón es garantizar que los datos se modifiquen de forma controlada para que el acceso pueda restringirse a un programa específico. Los ejemplos incluyen contraseñas almacenadas en los metadatos del archivo o en otro lugar y permisos de archivos 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 medios para reorganizar las estructuras y proporcionar una copia de seguridad eficiente generalmente significa que sólo son efectivas para usuarios educados, pero no contra intrusos.

A veces se incluyen métodos para cifrar datos de archivos en el sistema de archivos. Esto es 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 depender del 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.

Mantener la integridad

Una responsabilidad importante de un sistema de archivos es garantizar que las estructuras del sistema de archivos en el almacenamiento secundario permanezcan consistentes, independientemente de las acciones de los programas que acceden al sistema de archivos. Esto incluye las acciones tomadas si un programa que modifica el sistema de archivos finaliza de manera anormal o no informa al sistema de archivos que ha completado sus actividades. Esto puede incluir la actualización de los metadatos, la entrada del directorio y el manejo de cualquier dato que se haya almacenado en el búfer pero que aún no se haya actualizado en el medio de almacenamiento físico.

Otras fallas con las que debe lidiar el sistema de archivos incluyen fallas de medios o pérdida de conexión a sistemas remotos.

En caso de una falla del sistema operativo o una falla "suave" de energía, se deben invocar rutinas especiales en el sistema de archivos de manera similar a cuando falla un programa individual.

El sistema de archivos también debe poder corregir estructuras dañadas. Estos pueden ocurrir como resultado de una falla del sistema operativo por la cual el sistema operativo no pudo notificar al sistema de archivos, un corte de energía o un reinicio.

El sistema de archivos también debe registrar eventos para permitir el análisis de problemas sistémicos, así como problemas con archivos o directorios específicos.

Datos del usuario

El propósito más importante de un sistema de archivos es administrar los datos del usuario. Esto incluye almacenar, recuperar y actualizar datos.

Algunos sistemas de archivos aceptan datos para su almacenamiento como un flujo de bytes que se recopilan y almacenan de manera eficiente para los medios. Cuando un programa recupera los datos, especifica el tamaño de un búfer de memoria y el sistema de archivos transfiere datos del medio al búfer. En ocasiones, una rutina de biblioteca en tiempo de ejecución puede permitir que el programa de usuario defina un registro basándose en una llamada a la biblioteca que especifica una longitud. Cuando el programa de usuario lee los datos, la biblioteca recupera los datos a través del sistema de archivos y devuelve un registro .

Algunos sistemas de archivos permiten especificar una longitud de registro fija que se utiliza para todas las escrituras y lecturas. Esto facilita la localización del enésimo registro así como la actualización de registros.

Una identificación para cada registro, también conocida como clave, crea un sistema de archivos más sofisticado. El programa de usuario puede leer, escribir y actualizar registros independientemente de su ubicación. Esto requiere una gestión complicada de bloques de medios que normalmente separan bloques de claves y bloques de datos. Se pueden desarrollar algoritmos muy eficientes con estructuras piramidales para localizar registros. [14]

Usando un sistema de archivos

Las utilidades, las bibliotecas de tiempo de ejecución específicas del idioma y los programas de usuario utilizan las API del sistema de archivos para realizar solicitudes del sistema de archivos. Estos incluyen 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 están configurados con un único sistema de archivos que ocupa todo el dispositivo de almacenamiento .

Otro enfoque consiste en particionar el disco para que se puedan utilizar varios sistemas de archivos con diferentes atributos. Un sistema de archivos, para uso como caché del navegador o almacenamiento de correo electrónico, se puede configurar 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 almacenar archivos de audio o vídeo con un tamaño de bloque relativamente grande. Otro más puede normalmente configurarse como de sólo lectura y sólo periódicamente configurarse como escribible.

Un tercer enfoque, que se utiliza principalmente en sistemas en la nube, es utilizar " 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 experimental de Linux (usando el sistema de archivos ext4 ) en una máquina virtual bajo su entorno de producción Windows (usando 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 del host NTFS.

Tener varios sistemas de archivos en un solo sistema tiene el beneficio adicional de que, en caso de que se dañe una sola partición, los sistemas de archivos restantes frecuentemente seguirán intactos. Esto incluye la destrucción por virus de la partición del sistema o incluso un sistema que no arranca. Las utilidades del sistema de archivos que requieren acceso dedicado se pueden completar de manera efectiva poco a poco. Además, la desfragmentación puede resultar más eficaz. También se pueden procesar en segmentos varias utilidades de mantenimiento del sistema, como análisis de virus y copias de seguridad. Por ejemplo, no es necesario hacer una copia de seguridad del sistema de archivos que contiene videos junto con todos los demás archivos si no se ha agregado ninguno desde la última copia de seguridad. En cuanto a los archivos de imagen, se pueden "generar" fácilmente imágenes diferenciales que contienen sólo datos "nuevos" escritos en la imagen maestra (original). Las imágenes diferenciales se pueden utilizar tanto por razones de seguridad (como sistema "desechable" - se puede restaurar rápidamente si se destruye o contamina por un virus, como la imagen antigua se puede eliminar y se puede crear una nueva en cuestión de segundos, incluso sin procedimientos automatizados) e implementación rápida de máquinas virtuales (ya que las imágenes diferenciales se pueden generar rápidamente usando un script en lotes).

Limitaciones de diseño

Todos los sistemas de archivos tienen algún límite funcional que define la capacidad máxima de datos almacenables dentro de ese sistema . Estos límites funcionales son una mejor estimación del diseñador en función del tamaño actual de los sistemas de almacenamiento y del tamaño que probablemente alcanzarán en el futuro. El almacenamiento en disco ha seguido aumentando a un ritmo casi exponencial (consulte la ley de Moore ), por lo que después de unos años, los sistemas de archivos han seguido alcanzando limitaciones de diseño que requieren que los usuarios de computadoras migren repetidamente a un sistema más nuevo con una capacidad cada vez mayor.

La complejidad del sistema de archivos normalmente varía proporcionalmente con la capacidad de almacenamiento disponible. Los sistemas de archivos de las computadoras domésticas de principios de la década de 1980 con 50 KB a 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 o incluso excedería la capacidad muy limitada de los primeros sistemas de almacenamiento.

Tipos de sistemas de archivos

Los tipos de sistemas de archivos se pueden clasificar en sistemas de archivos de disco/cinta, sistemas de archivos de red y sistemas de archivos de propósito especial.

Sistemas de archivos de disco

Un sistema de archivos de disco aprovecha la capacidad de los medios de almacenamiento en disco para direccionar datos aleatoriamente en un corto período de tiempo. Las consideraciones adicionales incluyen la velocidad de acceso a los datos después de los solicitados inicialmente y la anticipación de que también se puedan solicitar los siguientes datos. Esto permite que múltiples usuarios (o procesos) accedan a diversos datos en el disco sin tener en cuenta la ubicación secuencial de los datos. Los 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 de registro en diario o sistemas de archivos de control de versiones .

Discos ópticos

ISO 9660 y el formato de disco universal (UDF) son dos formatos comunes destinados a 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 considera las capacidades especiales, el rendimiento y las restricciones 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. [15]

Sistemas de archivos de cinta

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

En un sistema de archivos de disco suele haber un directorio de archivos maestro y un mapa de regiones de datos libres y usadas. Cualquier adición, cambio o eliminación de archivos requiere actualizar el directorio y los mapas usados/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 carretes de material potencialmente muy largos. Este movimiento de la cinta puede tardar de varios segundos a 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 ineficaces con la cinta. Por lo general, escribir 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 hacer 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.

En cambio, los sistemas de archivos de cinta generalmente permiten que el directorio de archivos se distribuya a lo largo de la cinta entremezclado con los datos, lo que se conoce como transmisión , de modo que no se requieren movimientos repetidos y que consumen mucho tiempo para escribir nuevos datos.

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 dispersas del directorio. La mayoría del software de archivo de datos que funciona con almacenamiento en cinta almacenará una copia local del catálogo de cintas 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 cinta. La copia del catálogo de cintas local generalmente se descarta si no se usa durante un período de tiempo específico, momento en el cual la cinta se debe volver a escanear si se va a usar en el futuro.

IBM ha desarrollado un sistema de archivos para cinta llamado Linear Tape File System . La implementación de IBM de este sistema de archivos se ha lanzado como el producto IBM Linear Tape File System — Single Drive Edition (LTFS-SDE) de código abierto . El sistema de archivos de cinta lineal 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 por toda la cinta.

Formateo de cinta

Escribir datos en una cinta, borrar o formatear una cinta suele ser un proceso que requiere 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 están preformateadas para que el usuario de la cinta no necesite dedicar tiempo a preparar cada cinta nueva para su uso. Por lo general, todo lo que es necesario es escribir una etiqueta de identificación del medio en la cinta antes de usarla, e incluso esto puede escribirse automáticamente mediante software cuando se usa una cinta nueva por primera vez.

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, una gestión estructurada jerárquica, los archivos se identifican por sus características, como tipo de archivo, tema, autor o metadatos enriquecidos similares . [dieciséis]

IBM DB2 para i [17] (anteriormente conocido como DB2/400 y DB2 para i5/OS) es un sistema de archivos de base de datos como parte del sistema operativo IBM i [18] basado en objetos (anteriormente conocido como OS/400 e i5/OS). ), que incorpora un almacén de un solo nivel 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 i. Entre 1978 y 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 bases de datos, algo que otros como Microsoft no lograron posteriormente. [19] Estas tecnologías se conocen informalmente como 'Fortaleza Rochester' [ cita necesaria ] y en algunos aspectos básicos se extendieron desde las primeras tecnologías Mainframe, pero en muchos sentidos fueron más avanzadas desde una perspectiva tecnológica [ cita necesaria ] .

Algunos otros proyectos que no son sistemas de archivos de bases de datos "puros" pero que utilizan algunos aspectos de un sistema de archivos de bases 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 de ellos. Por ejemplo, un programa que instala o actualiza software puede escribir ejecutables, bibliotecas y/o archivos de configuración. Si parte de la escritura falla y el software se deja parcialmente instalado o actualizado, es posible que el software esté 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 , lo que garantiza que todas las operaciones dentro de una transacción se confirmen o que la transacción pueda abortarse y el sistema descarte todos sus resultados parciales. Esto significa que si hay un fallo o un corte de energía, después de la recuperación, el estado almacenado será consistente. O el software se instalará por completo 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 [ se necesita aclaración ] , 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 interfieren en el sistema se serializarán adecuadamente con la transacción.

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

Garantizar la coherencia entre múltiples operaciones del sistema de archivos es difícil, si no imposible, sin las transacciones del sistema de archivos. El bloqueo de archivos se puede utilizar como mecanismo de control de concurrencia para archivos individuales, pero normalmente no protege la estructura del directorio ni los metadatos del archivo. Por ejemplo, el bloqueo de archivos no puede evitar las condiciones de carrera de 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.

Los sistemas de archivos de diario es una técnica utilizada para introducir coherencia a nivel de transacción en las estructuras del sistema de archivos. Las transacciones de diario no están expuestas a programas como parte de la API del sistema operativo; solo se usan internamente para garantizar la coherencia en la granularidad de una única llamada al sistema.

Los sistemas de respaldo de datos generalmente no brindan soporte para el respaldo directo de datos almacenados de manera transaccional, lo que dificulta la recuperación de conjuntos de datos confiables y consistentes. La mayoría del software de respaldo simplemente registra qué archivos han cambiado desde un momento determinado, independientemente del estado de la transacción compartida entre varios archivos en el conjunto de datos general. Como solución alternativa, algunos sistemas de bases de datos simplemente producen un archivo de estado archivado que contiene todos los datos hasta ese momento, y el software de respaldo solo realiza una copia de seguridad de eso y no interactúa directamente con las bases de datos transaccionales activas. La recuperación requiere la recreación separada de la base de datos del archivo de estado después de que el software de respaldo 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 los 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. Ejemplos de sistemas de archivos de red incluyen clientes para los protocolos NFS , 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 (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. [26] Los ejemplos incluyen 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

Un sistema de archivos especial presenta elementos que no son archivos de un sistema operativo como archivos para que se pueda actuar sobre ellos utilizando las API del sistema de archivos. Esto se hace más comúnmente en sistemas operativos tipo Unix , pero los dispositivos también reciben nombres de archivos en algunos sistemas operativos que no son tipo Unix.

Sistemas de archivos de dispositivos

Un sistema de archivos de dispositivo representa dispositivos de E/S y pseudodispositivos como archivos, llamados archivos de dispositivo . Los ejemplos en sistemas tipo Unix incluyen devfs y, en sistemas Linux 2.6, udev . En sistemas que no son similares a Unix, como TOPS-10 y otros sistemas operativos influenciados por este, donde el nombre de archivo completo o la ruta de acceso de un archivo pueden incluir un prefijo de dispositivo, los dispositivos distintos de los que contienen sistemas de archivos se denominan mediante un prefijo de dispositivo. especificando el dispositivo, sin nada a continuación.

Otros sistemas de archivos especiales

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 una cinta de casete de audio común .

Cuando el sistema necesitaba escribir datos, se le notificaba al usuario que presionara "GRABAR" en la grabadora de casetes y luego presionara "RETORNO" en el teclado para notificar al sistema que la grabadora de casetes estaba grabando. El sistema escribía un sonido para proporcionar sincronización horaria, luego 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 presionara "PLAY" en la grabadora de casetes. El sistema escucharía los sonidos de la cinta esperando hasta que se pudiera reconocer una ráfaga de sonido como sincronización. Luego, el sistema interpretaría los sonidos posteriores como datos. Cuando se completa la lectura de datos, el sistema notificará al usuario que presione "STOP" en la grabadora de casetes. Era primitivo, pero (en su mayor parte) funcionó. 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 podrían escribir y localizar múltiples conjuntos de datos haciendo avanzar rápidamente la cinta y observando en el contador de la cinta para encontrar el inicio aproximado de la siguiente región de datos en la cinta. Es posible que el usuario tenga que escuchar los sonidos para encontrar el lugar correcto para comenzar a reproducir la siguiente región de datos. Algunas implementaciones incluso incluyeron sonidos audibles intercalados con los datos.

Sistemas de archivos planos

En un sistema de archivos plano, no hay subdirectorios ; Las entradas del directorio para todos los archivos se almacenan en un único directorio.

Cuando los disquetes estuvieron disponibles por primera vez, este tipo de sistema de archivos era adecuado debido a la cantidad relativamente pequeña de espacio de datos disponible. Las máquinas CP/M presentaban un sistema de archivos planos, donde los archivos podían asignarse a una de las 16 áreas de usuario y las operaciones genéricas de archivos se reducían a funcionar en una en lugar de trabajar de forma predeterminada en todas ellas. Estas áreas de usuario no eran más que atributos especiales asociados con los archivos; es decir, no era necesario definir una cuota específica para cada una de estas áreas y se podían agregar archivos a grupos mientras todavía hubiera espacio de almacenamiento libre en el disco. Los primeros Apple Macintosh también presentaban un sistema de archivos planos, el Macintosh File System . Lo inusual era que el programa de gestió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 de un paquete de discos ( volumen ) en un directorio del paquete llamado Tabla de contenido de volumen (VTOC).

Si bien los sistemas de archivos planos son simples, se vuelven incómodos a medida que aumenta la cantidad de archivos y 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 el S3 de Amazon , un servicio de almacenamiento remoto, que es intencionalmente simplista para permitir a los usuarios la posibilidad de personalizar cómo se almacenan sus datos. Las únicas construcciones son depósitos (imagínese una unidad de disco de tamaño ilimitado) y objetos (similares, pero no idénticos, al concepto estándar de archivo). Se permite la administración avanzada de archivos al poder usar casi cualquier carácter (incluido '/') en el nombre del objeto y la capacidad de seleccionar subconjuntos del contenido del depósito en función de prefijos idénticos.

Sistemas de archivos y sistemas operativos.

Muchos sistemas operativos incluyen soporte para más de un sistema de archivos. A veces, el sistema operativo y el sistema de archivos están tan estrechamente entrelazados que resulta difícil separar las funciones del sistema de archivos.

Es necesario que exista una interfaz proporcionada por el software del sistema operativo entre el usuario y el sistema de archivos. Esta interfaz puede ser textual (como la proporcionada por una interfaz de línea de comandos , como el shell Unix u OpenVMS DCL ) o gráfica (como la proporcionada por una interfaz gráfica de usuario , como los exploradores de archivos ). Si es gráfica, a menudo se utiliza la metáfora de la carpeta , que contiene documentos, otros archivos y carpetas anidadas (ver también: directorio y carpeta).

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 de todos los dispositivos parezcan existir en una única jerarquía. Esto significa que, en esos sistemas, hay un directorio raíz y cada archivo existente en el sistema se encuentra debajo de él en algún lugar. 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 archivos en otro dispositivo, primero se debe informar al sistema operativo en qué parte del árbol de directorios deben aparecer esos archivos. Este proceso se llama montar un sistema de archivos. Por ejemplo, para acceder a los archivos de un CD-ROM , hay que decirle al sistema operativo "Tome el sistema de archivos de este CD-ROM y haga que aparezca en tal o cual directorio". El directorio proporcionado al sistema operativo se llama 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 del sistema 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 puede contener subdirectorios para montar dispositivos individuales. Generalmente, sólo el administrador (es decir, el usuario root ) puede autorizar el montaje de sistemas de archivos.

Los sistemas operativos tipo Unix a menudo incluyen software y herramientas que ayudan en el proceso de montaje y le brindan nuevas funcionalidades. Algunas de estas estrategias han sido denominadas "automontaje" como reflejo de su propósito.

linux

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

Solaris

En versiones anteriores, Solaris utilizaba de forma predeterminada UFS (sin registro ni registro) para sistemas de archivos de arranque y suplementarios. Solaris utiliza de forma predeterminada, compatible y extendido UFS.

Con el tiempo se agregaron compatibilidad con otros sistemas de archivos y se agregaron mejoras significativas, incluidos Veritas Software Corp. (diario) VxFS , Sun Microsystems (agrupación) QFS , Sun Microsystems (diario) UFS y Sun Microsystems (código abierto, agrupable, comprimible de 128 bits, y corrección de errores) ZFS .

Se agregaron extensiones de kernel a Solaris para permitir la operación de arranque de Veritas VxFS . El registro o el registro en diario se agregó 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 abarcar un sistema de archivos en varios dispositivos con el fin de agregar redundancia, capacidad y/o rendimiento. Los entornos heredados en Solaris pueden utilizar Solaris Volume Manager (anteriormente 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 aprovechando los grupos de almacenamiento virtual en ZFS .

Mac OS

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+. [27] HFS Plus es un sistema de archivos rico en metadatos que conserva mayúsculas de minúsculas pero (normalmente) 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 registro en diario 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 archivos pueden tener hasta 255 caracteres. HFS Plus usa Unicode para almacenar nombres de archivos. 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 del archivo .

HFS Plus tiene tres tipos de enlaces: enlaces duros estilo Unix , enlaces simbólicos estilo Unix y alias . Los alias están diseñados para mantener un vínculo 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 área 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 puede instalar en un volumen UFS, ni se puede actualizar a Leopard un sistema anterior a Leopard instalado en un volumen UFS. [28] A partir de Mac OS X Lion, la compatibilidad con UFS se eliminó por completo.

Las versiones más nuevas de macOS son capaces de leer y escribir en los sistemas de archivos FAT heredados (16 y 32) comunes en Windows. También son capaces de 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 sólo después de un cambio no trivial en la configuración del sistema (existe software de terceros que automatiza esto). [29]

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

OS/2

OS/2 1.2 introdujo el sistema de archivos de alto rendimiento (HPFS). HPFS admite nombres de archivos de casos mixtos 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, menos fragmentación de datos, espacio basado en extensión asignació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 envió un sistema de archivos con registro diario (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 disco usando Geli desde el principio de una manera fácil y conveniente ( GUI ). La actual PC-BSD 9.0+ 'Isotope Edition' tiene el sistema de archivos ZFS versión 5 y el grupo de almacenamiento ZFS versión 28.

plano 9

El 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 o mmap ): se accede a redes, gráficos, depuración, autenticación, capacidades, cifrado y otros servicios a través de I. Operaciones /O en descriptores de archivos . El protocolo 9P elimina la diferencia entre archivos locales y remotos. Los sistemas de archivos en el Plan 9 están organizados 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 ellos solo es compatible y utilizable en Windows Server 2012 , Windows Server 2016 , Windows 8 , Windows 8.1 y Windows 10 ; Windows no puede arrancar de eso).

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 usa 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 cual se inicia. Esta "tradición" se ha arraigado tan firmemente que existen errores en muchas aplicaciones que suponen 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 remonta a MS-DOS , donde las letras A y B estaban reservadas para hasta dos unidades de disquete. Esto a su vez derivó del CP/M en la década de 1970 y, en última instancia, del 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 formato de intercambio universal entre computadoras y dispositivos de casi cualquier tipo y antigüedad.

El sistema de archivos FAT tiene sus raíces en un precursor FAT de 8 bits (incompatible) en Standalone Disk BASIC y el proyecto MDOS/MIDAS de corta duración . [ cita necesaria ]

Con el paso de los años, el sistema de archivos se ha ampliado de FAT12 a FAT16 y FAT32 . Se han agregado varias funciones al sistema de archivos, incluidos subdirectorios , compatibilidad con páginas de códigos , atributos extendidos y nombres de archivos largos . Terceros, como Digital Research, han incorporado soporte opcional para el seguimiento de eliminaciones y esquemas de seguridad multiusuario basados ​​en volúmenes/directorios/archivos para admitir contraseñas y permisos de archivos y directorios como derechos de acceso de lectura/escritura/ejecución/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 discos o particiones formateados en FAT .

FAT32 soluciona las limitaciones de FAT12 y FAT16, excepto el límite de tamaño de archivo cercano a 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 del archivo y tres caracteres para la extensión (como .exe ). Esto se conoce comúnmente como límite de nombre de archivo 8.3 . VFAT , una extensión opcional de FAT12, FAT16 y FAT32, introducida en Windows 95 y Windows NT 3.5 , permitía almacenar nombres de archivos largos ( LFN ) en el sistema de archivos FAT de forma compatible con versiones anteriores.

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 admite NTFS incluyen enlaces duros, múltiples flujos 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 necesaria ]

exFAT no es compatible con sistemas de archivos FAT como FAT12, FAT16 o FAT32. El sistema de archivos es compatible con los sistemas Windows más nuevos, 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). [30] 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 totalmente compatible tanto con macOS como con Windows que puede contener archivos de más de 4 GB. [31] [32]

AbiertoVMS

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 relacionada con todos los archivos en un disco ( volumen en la terminología de IBM) se almacena en ese disco en un archivo plano del sistema llamado Tabla de contenido de 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 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 conjuntos de datos catalogados y no catalogados utilizando la información del VTOC, sin pasar por el catálogo, si se proporciona la identificación del volumen requerida en la solicitud OPEN. Más tarde se indexó el VTOC para acelerar el acceso.

Sistema de monitorización conversacional

El componente IBM Conversational Monitor System (CMS) de VM/370 utiliza un sistema de archivos planos independiente para cada disco virtual ( minidisco ). Los datos de archivos y la información de control están dispersos y entremezclados. El ancla es un registro llamado Master File Directory (MFD), siempre ubicado en el cuarto bloque del disco. Originalmente, CMS usaba bloques de 800 bytes de longitud fija, pero las versiones posteriores usaban bloques de mayor tamaño, 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 del 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 constan de objetos del sistema asignados al 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, forman la base del soporte del AS/400 para una base de datos relacional integrada .

Otros sistemas de archivos

Limitaciones

Convertir el tipo de un sistema de archivos

Puede resultar ventajoso o necesario tener archivos en un sistema de archivos diferente al que existe actualmente. Las razones 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 sea compatible con el sistema de archivos existente.

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. [36] En Windows, los sistemas de archivos FAT y FAT32 se pueden convertir a NTFS mediante la utilidad convert.exe, pero no al revés. [36] En Linux, ext2 se puede convertir a ext3 (y volver a convertirse), y ext3 se puede convertir a ext4 (pero no volver), [37] y tanto ext3 como ext4 se pueden convertir a btrfs y volver a convertir hasta que La información de deshacer se elimina. [38] Estas conversiones son posibles debido al uso del mismo formato para los datos del archivo y a la reubicación de los metadatos en un espacio vacío, en algunos casos utilizando soporte de archivos dispersos . [38]

Migrar 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 no utilizado 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. Luego, los datos del sistema de archivos FAT32 se copian al 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 uno nuevo, es utilizar un área de trabajo (como un medio extraíble). Esto lleva más tiempo pero tiene la ventaja de producir 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 diferentes sistemas de archivos tienen diferentes límites en cuanto a la profundidad de la ruta. Los sistemas de archivos también tienen un límite en 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 provocar resultados no deseados. Esto depende de cómo la utilidad que realiza la copia maneja la discrepancia.

Ver también

Notas

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

Referencias

  1. ^ "5.10. Sistemas de archivos". El proyecto de documento de Linux . Consultado el 11 de diciembre de 2021 . Un sistema de archivos son los métodos y 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. ^ "Almacenamiento, tecnologías y mercados de TI, estado y evolución" (PDF) . 20 de septiembre de 2018. Los discos duros seguirán siendo clave para el almacenamiento en el futuro previsible; los SSD no son rentables en términos de capacidad
  3. ^ Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014), Implementación del sistema de archivos (PDF) , Libros Arpaci-Dusseau
  4. ^ Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014), Sistema de archivos de red de Sun (PDF) , Libros Arpaci-Dusseau
  5. ^ McGill, Florencia E. (1922). Práctica de Oficina y Procedimiento Comercial. Compañía editorial Gregg. pag. 197 . Consultado el 1 de agosto de 2016 .
  6. ^ Waring, RL (1961). Investigaciones técnicas sobre la adición de una copia impresa a los elementos de un sistema bibliotecario mecanizado: informe final, 20 de septiembre de 1961 . Cincinnati, Ohio: Svco Corporation. OCLC  310795767.
  7. ^ 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 .
  8. ^ abc Amir, Yair. "Sistemas operativos 600.418 El sistema de archivos". Departamento de Ciencias de la Computación Universidad Johns Hopkins . Consultado el 31 de julio de 2016 .
  9. ^ ab Corporación IBM. "Estructura de componentes del sistema de archivos lógico". Centro de conocimiento de IBM . Consultado el 31 de julio de 2016 .
  10. ^ Transportista 2005, págs. 187-188.
  11. ^ Valvano, Jonathan W. (2011). Sistemas de microcomputadoras integradas: interfaz en tiempo real (tercera ed.). Aprendizaje Cengage . pag. 524.ISBN _ 978-1-111-42625-5. Consultado el 30 de junio de 2022 .
  12. ^ RC Daley; PG Neumann (1965). "Un sistema de archivos de uso 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 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 . Consultado el 30 de julio de 2011 .
  13. ^ Mohan, I. Chandra (2013). Sistemas operativos. Delhi: PHI Learning Pvt. Limitado. Ltd. pág. 166.ISBN _ 9788120347267. Consultado el 27 de julio de 2014 . La palabra dentry es la abreviatura de "entrada de directorio". Un dentry no es más que un componente específico en la ruta desde la raíz. Ellos (nombre del directorio o nombre del archivo) permiten acceder a archivos o directorios[.]
  14. ^ "KSAM: método de acceso secuencial con clave basado en árbol AB +". Puerta de la investigación . Consultado el 29 de abril de 2016 .
  15. ^ Douglas, Fred; Cáceres, Ramón; Kaashoek, M. Frans ; Krishnan, P.; Li, Kai; Pantano, Brian ; Tauber, Josué (1994). "18. Alternativas de almacenamiento para computadoras móviles". Informática móvil . vol. 353. USENIX . págs. 473–505. doi :10.1007/978-0-585-29603-6_18. ISBN 978-0-585-29603-6. S2CID  2441760.
  16. ^ "Windows en una base de datos: cortado en cubitos por veteranos de BeOS". theregister.co.uk. 29 de marzo de 2002 . Consultado el 7 de febrero de 2014 .
  17. ^ "IBM DB2 para i: descripción general". 03.ibm.com. Archivado desde el original el 2 de agosto de 2013 . Consultado el 7 de febrero de 2014 .
  18. ^ "IBM developmentWorks: nuevo en IBM i". IBM.com. 2011-03-08 . Consultado el 7 de febrero de 2014 .
  19. ^ "El sucesor de XP, Longhorn, pasa a SQL, P2P: filtraciones de Microsoft". theregister.co.uk. 2002-01-28 . Consultado el 7 de febrero de 2014 .
  20. ^ "Alternativas al uso de NTFS transaccional (Windows)". msdn.microsoft.com. 05/12/2013 . Consultado el 7 de febrero de 2014 .
  21. ^ Spillane, Richard; Gaikwad, Sachin; Chinni, Manjunath; Sadoc, Erez; Wright, Charles P. (2009). Habilitación del acceso a archivos transaccionales a través de extensiones de kernel ligeras (PDF) . Séptima Conferencia USENIX sobre tecnologías de almacenamiento y archivos (FAST 2009).
  22. ^ Wright, Charles P.; Spillane, Richard; Sivathanu, Gopalan; Sadoc, Erez (2007). "Ampliació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.
  23. ^ Seltzer, Margo I. (1993). "Soporte de transacciones en un sistema de archivos estructurado por registros" (PDF) . Actas de la Novena Conferencia Internacional sobre Ingeniería de Datos .
  24. ^ Portero, Donald E.; Hofmann, Owen S.; Rossbach, Christopher J.; Benn, Alejandro; Witchel, Emmett (octubre de 2009). "Transacciones del sistema operativo" (PDF) . Actas del 22º Simposio ACM sobre principios de sistemas operativos (SOSP '09) . Gran cielo, MT.
  25. ^ Gal, Eran; Toledo, Siván. Un sistema de archivos Flash transaccional para microcontroladores (PDF) . USENIX 2005.
  26. ^ Troppens, Ulf; Erkens, Rainer; Müller, Wolfgang (2004). Explicación de las redes de almacenamiento: conceptos básicos y aplicaciones de Fibre Channel SAN, NAS, iSCSI e InfiniBand. John Wiley e hijos . págs. 124-125. ISBN 0-470-86182-7. Consultado el 30 de junio de 2022 .
  27. ^ "Mac OS X: acerca del registro en diario del sistema de archivos". Manzana . Consultado el 8 de febrero de 2014 .
  28. ^ "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 .
  29. ^ OSXDaily (2 de octubre de 2013). "Cómo habilitar la compatibilidad con escritura NTFS en Mac OS X" . Consultado el 6 de febrero de 2014 .
  30. ^ ab Steve Bunting (14 de agosto de 2012). EnCase Computer Forensics: el EnCE oficial: examinador certificado de EnCase. ISBN 9781118219409. Consultado el 7 de febrero de 2014 .
  31. ^ "Formatos del sistema de archivos disponibles en la Utilidad de Discos en Mac". Soporte de Apple .
  32. ^ "especificación del sistema de archivos exFAT". Documentos de Microsoft .
  33. ^ El sistema de archivos Prospero: un sistema de archivos global basado en el modelo de sistema virtual. 1992.
  34. ^ Pirkola, GC (junio de 1975). "Un sistema de archivos para un entorno de tiempo compartido de uso general". Actas del IEEE . 63 (6): 918–924. doi :10.1109/PROC.1975.9856. ISSN  0018-9219. S2CID  12982770.
  35. ^ Pirkola, Gary C.; Sanguinetti, Juan. "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.
  36. ^ ab "Cómo convertir discos FAT a NTFS". Documentos de Microsoft .
  37. ^ "Cómo hacer Ext4". kernel.org . Consultado el 29 de abril de 2016 .
  38. ^ ab "Conversión de Ext3". Wiki Btrfs .

Fuentes

Otras lecturas

Libros

En línea

enlaces externos