Sistema de archivos - File system

En informática , el sistema de archivos o sistema de archivos (a menudo abreviado como fs ) es un método y una estructura de datos que el sistema operativo utiliza para controlar cómo se almacenan y recuperan los datos. Sin un sistema de archivos, los datos colocados en un medio de almacenamiento serían un gran cuerpo de datos sin forma de saber dónde termina un dato y comienza el siguiente. 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 el sistema de gestión de datos en papel, cada grupo de datos se denomina " archivo ". La estructura y las reglas lógicas que se utilizan para administrar los grupos de datos y sus nombres se denomina "sistema de archivos".

Hay muchos tipos diferentes de sistemas de archivos. Cada uno tiene una estructura y lógica diferente, propiedades de velocidad, flexibilidad, seguridad, tamaño y más. Algunos sistemas de archivos se han diseñado para usarse en aplicaciones específicas. Por ejemplo, el sistema de archivos ISO 9660 está diseñado específicamente para discos ópticos .

Los sistemas de archivos se pueden usar en numerosos tipos diferentes de dispositivos de almacenamiento que usan diferentes tipos de medios. A partir de 2019, las unidades de disco duro han sido dispositivos de almacenamiento clave y se prevé que lo sigan siendo en el futuro previsible. 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 usa 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 ; otros proporcionan acceso a archivos a través de un protocolo de red (por ejemplo, clientes NFS , SMB o 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 administra el acceso tanto al contenido de los archivos como a los metadatos sobre esos archivos. Es responsable de organizar 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

Antes de la llegada de las computadoras, el término sistema de archivos se usaba para describir un método de almacenamiento y recuperación de documentos en papel. En 1961, el término se estaba aplicando a la presentación computarizada junto con el significado original. En 1964, era de uso general.

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.

El sistema de archivos lógico es responsable de la interacción con la aplicación del usuario. Proporciona la interfaz de programa de aplicación (API) para las operaciones de archivo - OPEN, CLOSE, READ, etc., y pasa a la operación solicitada a la capa debajo de ella 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". Esta capa proporciona "acceso a archivos, operaciones de directorio, [y] seguridad y protección".

La segunda capa opcional es el sistema de archivos virtual . "Esta interfaz permite el soporte para múltiples instancias concurrentes de sistemas de archivos físicos, cada uno de los cuales se denomina implementación del sistema de archivos".

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.

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 de holgura, demostrado con clústeres NTFS de 4.096 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 manera granular, generalmente 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 usaban un mapa de pistas / sectores .

Esto da como resultado un 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 libre . Para una asignación de 512 bytes, el espacio no utilizado promedio es de 256 bytes. Para los clústeres de 64 KB, el espacio no utilizado promedio es de 32 KB. El tamaño de la unidad de asignación se elige cuando se crea el sistema de archivos. La elección del tamaño de asignación en función del tamaño medio 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. La elección de un tamaño de asignación demasiado pequeño da como resultado una sobrecarga excesiva si el sistema de archivos contendrá principalmente archivos muy grandes.

Los sistemas de archivos pueden fragmentarse

La fragmentación del sistema de archivos se produce 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 crece el archivo. 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 alternas usadas y no usadas 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.

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

Nombres de archivo

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

La mayoría de los sistemas de archivos modernos permiten que los nombres de archivo contengan una amplia gama de caracteres del juego de caracteres Unicode . Sin embargo, pueden tener restricciones sobre el uso de ciertos caracteres especiales, prohibiéndolos dentro de los nombres de archivo; 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 similar a Unix . Las estructuras de directorio pueden ser planas (es decir, lineales) o permitir jerarquías donde los directorios pueden contener subdirectorios. El primer sistema de archivos que admite jerarquías arbitrarias de directorios se utilizó en el sistema operativo Multics . Los sistemas de archivos nativos de Unix sistemas también admiten jerarquías de directorios arbitrarios, al igual que, por ejemplo, de Apple 's Hierarchical File System , y su sucesor HFS + de Mac OS clásico , la FAT sistema de archivos de 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

Normalmente, se asocia otra información contable con cada archivo dentro de un sistema de archivos. La longitud de los datos contenidos en un archivo puede almacenarse 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 (p. Ej. , Bloque , carácter , conector , subdirectorio , etc.), su ID de usuario propietario e ID de grupo , sus permisos de acceso y otros atributos del archivo (p. Ej., 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 lugar, la tabla de directorios para 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. 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 varias revisiones anteriores de un archivo con un solo nombre de archivo; el nombre de archivo por sí mismo 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 cuatro guardada hace.

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

Sistema de archivos como una interfaz de usuario abstracta

En algunos casos, un sistema de archivos puede no hacer uso de un dispositivo de almacenamiento, pero puede usarse para organizar y representar el acceso a cualquier dato, ya sea que esté 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, renombrar y eliminar entradas de directorio , que también se conocen como dentries (singular: dentry ), 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 similares a Unix) y crear enlaces bidireccionales a archivos.

Las utilidades de archivos crean, enumeran, copian, mueven y eliminan archivos y alteran 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 difieren 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 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

Existen varios mecanismos que utilizan 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 asegurarse de que los datos se modifiquen de forma controlada para que el acceso pueda estar restringido a un programa específico. Los ejemplos incluyen contraseñas almacenadas en los metadatos del archivo o en otro lugar y 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 medios para reorganizar las estructuras y proporcionar una copia de seguridad eficiente generalmente significa que estos solo son efectivos para usuarios educados, pero no son efectivos contra intrusos.

Los métodos para cifrar datos de archivos a veces se incluyen en el sistema de archivos. Esto es muy efectivo ya que no es necesario que las utilidades del sistema de archivos conozcan la semilla de cifrado para administrar los datos de manera efectiva. Los riesgos de depender del cifrado incluyen el hecho de que un atacante puede copiar los datos y usar 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 acciones tomadas si un programa que modifica el sistema de archivos termina 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 los datos que se almacenaron en el búfer pero que aún no se actualizaron 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 el caso de una falla del sistema operativo o una falla de energía "suave", 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 las estructuras dañadas. Estos pueden ocurrir como resultado de una falla del sistema operativo por la cual el SO no pudo notificar al sistema de archivos, una falla 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. Una rutina de biblioteca en tiempo de ejecución a veces puede permitir que el programa de usuario defina un registro basado en una llamada de biblioteca que especifica una longitud. Cuando el programa de usuario lee los datos, la biblioteca recupera datos a través del sistema de archivos y devuelve un registro .

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

Una identificación para cada registro, también conocida como clave, lo convierte en un sistema de archivos más sofisticado. El programa de usuario puede leer, escribir y actualizar registros sin importar 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.

Usando un sistema de archivos

Las utilidades, las bibliotecas en tiempo de ejecución específicas del idioma y los programas de usuario utilizan las API del sistema de archivos para realizar solicitudes al sistema de archivos. Estos incluyen transferencia de datos, posicionamiento, actualización de metadatos, administración de directorios, administración de especificaciones de acceso y eliminación.

Varios sistemas de archivos dentro de un solo sistema

Con frecuencia, los sistemas minoristas se configuran 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 usar como caché del navegador o almacenamiento de correo electrónico, puede configurarse con un tamaño de asignación pequeño. Esto mantiene la actividad de crear y eliminar 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 video con un tamaño de bloque relativamente grande. Otro puede configurarse normalmente como de solo lectura y solo se puede configurar de forma periódica para escritura.

Un tercer enfoque, que se utiliza principalmente en los 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 de Linux experimental (utilizando el sistema de archivos ext4 ) en una máquina virtual en 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 del host NTFS.

Tener varios sistemas de archivos en un solo sistema tiene la ventaja adicional de que, en caso de que se dañe una sola partición, los sistemas de archivos restantes con frecuencia seguirán intactos. Esto incluye la destrucción de 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 por partes. Además, la desfragmentación puede ser más eficaz. Varias utilidades de mantenimiento del sistema, como análisis de virus y copias de seguridad, también se pueden procesar en segmentos. Por ejemplo, no es necesario hacer una copia de seguridad del sistema de archivos que contiene los 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 "derivar" 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 para cuestiones de seguridad (como un sistema "desechable"), que se pueden restaurar rápidamente si se destruyen o contaminan con un virus, ya que la imagen anterior 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 almacenamiento de datos dentro de ese sistema . Estos límites funcionales son un esfuerzo de mejor conjetura por parte del diseñador en función del tamaño de los sistemas de almacenamiento en este momento y de la capacidad de los sistemas de almacenamiento en el futuro. El almacenamiento en disco ha seguido aumentando a tasas casi exponenciales (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 se cambien repetidamente a un sistema más nuevo con una capacidad cada vez mayor.

La complejidad del sistema de archivos suele variar 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 superarí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 en disco

Un sistema de archivos en disco aprovecha la capacidad de los medios de almacenamiento en disco para direccionar datos de forma aleatoria en un período corto de tiempo. Las consideraciones adicionales incluyen la velocidad de acceso a los datos después de lo solicitado inicialmente y la anticipación de que también se pueden solicitar los siguientes datos. Esto permite que múltiples usuarios (o procesos) accedan a varios datos en el disco sin tener en cuenta la ubicación secuencial de los datos. Los ejemplos incluyen FAT ( FAT12 , FAT16 , FAT32 ), exFAT , NTFS , HFS y HFS + , HPFS , APFS , UFS , ext2 , ext3 , ext4 , XFS , btrfs , Files-11 , Veritas File System , VMFS , ZFS , ReiserFS y ScoutFS . Algunos sistemas de archivos de disco son sistemas de archivos de registro por diario o sistemas de archivos 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 usar un dispositivo de memoria flash como medio de almacenamiento subyacente, pero es mucho mejor usar un sistema de archivos diseñado específicamente para un dispositivo flash.

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 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 las regiones de datos libres y usadas. Cualquier adición, cambio o eliminación de archivos requiere la actualización del directorio y los mapas usados ​​/ gratuitos. El acceso aleatorio a las regiones de datos se mide en milisegundos, por lo que este sistema funciona bien para discos.

La cinta requiere un movimiento lineal para enrollar y desenrollar bobinas de material potencialmente muy largas. 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 resultar extremadamente lentos e ineficaces con la cinta. Escribir 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.

En cambio, los sistemas de archivos de cinta generalmente permiten que el directorio de archivos se extienda por 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 del directorio dispersas. La mayoría de los programas de archivo de datos que funcionan con almacenamiento en cinta almacenan una copia local del catálogo de cintas en un sistema de archivos de disco, de modo que la adición de archivos a una cinta se puede realizar rápidamente sin tener que volver a escanear los medios 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 que la cinta debe volver a escanearse 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 las entradas del directorio en toda la cinta.

Formateo de cinta

Escribir datos en una cinta, borrar o formatear una cinta es a menudo un proceso que requiere mucho tiempo y puede llevar varias horas en cintas grandes. Con muchas tecnologías de cintas de datos, no es necesario formatear la cinta antes de sobrescribir nuevos datos en la cinta. 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 de la cinta no tenga que dedicar tiempo a preparar cada cinta nueva para su uso. Por lo general, todo lo que se necesita es escribir una etiqueta de medio de identificación en la cinta antes de su uso, e incluso esto puede ser escrito automáticamente por software cuando se usa una nueva cinta 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, la administración estructurada jerárquica, los archivos se identifican por sus características, como tipo de archivo, tema, autor o metadatos enriquecidos similares .

IBM DB2 para i (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 basado en objetos (anteriormente conocido como OS / 400 e i5 / OS), que incorpora un solo nivel almacenar y ejecutar 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 han diseñado y aplicado con éxito tecnologías como el sistema de archivos de base de datos, donde otros como Microsoft fracasaron posteriormente. Estas tecnologías se conocen informalmente como 'Fortress Rochester' y en algunos aspectos básicos se extendieron desde las primeras tecnologías de mainframe, pero en muchos aspectos más avanzadas desde una perspectiva tecnológica.

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:

  • Muchos sistemas de gestión de contenido web utilizan un DBMS relacional para almacenar y recuperar archivos. Por ejemplo, los archivos XHTML se almacenan como XML o campos de texto, mientras que los archivos de imagen se almacenan como campos blob; Las sentencias SQL SELECT (con XPath opcional ) recuperan los archivos y permiten el uso de una lógica sofisticada y asociaciones de información más ricas que los "sistemas de archivos habituales". Muchos CMS también tienen la opción de almacenar solo metadatos dentro de la base de datos, con el sistema de archivos estándar utilizado para almacenar el contenido de los archivos.
  • Los sistemas de archivos muy grandes, incorporados por aplicaciones como Apache Hadoop y Google File System , utilizan algunos conceptos de sistemas 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 los cambios. Por ejemplo, un programa que está instalando o actualizando software puede escribir ejecutables, bibliotecas y / o archivos de configuración. Si algo de la escritura falla y el software se deja parcialmente instalado o actualizado, el software puede estar roto 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 las operaciones dentro de una transacción estén todas confirmadas o la transacción se puede abortar y el sistema descarta todos sus resultados parciales. Esto significa que si hay un bloqueo o un corte de energía, después de la recuperación, el estado almacenado será consistente. El software se instalará por completo o la instalación fallida se revertirá por completo, pero no se dejará una instalación parcial inutilizable en el sistema. Las transacciones también proporcionan la garantía de aislamiento , 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 correctamente con la transacción.

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

Garantizar la coherencia en las operaciones de múltiples sistemas de archivos es difícil, si no imposible, sin las transacciones del sistema de archivos. El bloqueo de archivos se puede utilizar como un mecanismo de control de simultaneidad para archivos individuales, pero normalmente no protege la estructura del directorio o 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 que se utiliza para introducir la 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 SO; solo se utilizan 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 los 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 toma nota de los archivos que 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 producen un archivo de estado archivado que contiene todos los datos hasta ese momento, y el software de respaldo solo lo respalda y no interactúa directamente con las bases de datos transaccionales activas en absoluto. La recuperación requiere una 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 de un protocolo de acceso a archivos remoto, proporcionando acceso a los archivos en un servidor. Los programas que utilizan interfaces locales pueden crear, administrar y acceder de manera transparente a directorios y archivos jerárquicos en computadoras remotas conectadas a la red. Los ejemplos de sistemas de archivos de red incluyen clientes para NFS , AFS , protocolos SMB y clientes similares a sistemas de archivos para FTP y WebDAV .

Sistemas de archivos de disco compartido

Un sistema de archivos de disco compartido es aquel en el que varias máquinas (generalmente servidores) tienen acceso al mismo subsistema de disco externo (generalmente una SAN). El sistema de archivos arbitra el acceso a ese subsistema, evitando colisiones de escritura. 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 los 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 similares a Unix, pero los dispositivos también reciben nombres de archivo en algunos sistemas operativos no similares a Unix.

Sistemas de archivos de dispositivos

Un sistema de archivos de dispositivo representa los dispositivos de E / S y los pseudodispositivos como archivos, llamados archivos de dispositivo . Los ejemplos en sistemas similares a 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 él, donde el nombre de archivo completo o la ruta de un archivo puede incluir un prefijo de dispositivo, los dispositivos que no contienen sistemas de archivos se denominan mediante un prefijo de dispositivo. especificando el dispositivo, sin nada que lo siga.

Otros sistemas de archivos especiales

  • En el kernel de Linux, configfs y sysfs proporcionan archivos que se pueden usar para consultar información del kernel y configurar entidades en el kernel.
  • procfs mapea procesos y, en Linux, otras estructuras del sistema operativo en un espacio de archivos.

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

En la década de 1970, los dispositivos de cinta digital y de disco 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 debía presionar "GRABAR" en la grabadora de casetes y luego presionar "RETURN" en el teclado para notificar al sistema que la grabadora de casetes estaba grabando. El sistema escribió un sonido para proporcionar sincronización de tiempo, luego moduló los sonidos que codificaron un prefijo, los datos, una suma de comprobación y un sufijo. Cuando el sistema necesitaba leer datos, se le indicó al usuario que presionara "REPRODUCIR" en la grabadora de casetes. El sistema escucharía los sonidos en la cinta esperando hasta que una ráfaga de sonido pudiera reconocerse como sincronización. A continuación, el sistema interpretaría los sonidos posteriores como datos. Cuando se completa la lectura de datos, el sistema notifica al usuario que presione "DETENER" en la grabadora de casetes. Era primitivo, pero (en su mayoría) funcionó. Los datos se almacenaban secuencialmente, generalmente en un formato sin nombre, aunque algunos sistemas (como la serie de computadoras Commodore PET ) permitían que los archivos fueran nombrados. Se pueden escribir y localizar múltiples conjuntos de datos adelantando rápidamente la cinta y observando en el contador de la cinta para encontrar el comienzo 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 de directorio para todos los archivos se almacenan en un solo directorio.

Cuando los medios de disquete 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 plano, donde los archivos podían asignarse a una de las 16 áreas de usuario y las operaciones de archivos genéricos se reducían para trabajar en una en lugar de trabajar en todas ellas de forma predeterminada. 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 los archivos se podían agregar a los grupos mientras hubiera espacio de almacenamiento libre en el disco. El primer Apple Macintosh también presentaba un sistema de archivos plano, el Macintosh File System . Era inusual que el programa de administración de archivos ( Macintosh Finder ) creara la ilusión de un sistema de archivo 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 entradas para todos los archivos de un paquete de disco ( volumen ) en un directorio del paquete denominado Tabla de contenido de volumen (VTOC).

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

Una adició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 capacidad de personalizar cómo se almacenan sus datos. Las únicas construcciones son cubos (imagina una unidad de disco de tamaño ilimitado) y objetos (similares, pero no idénticos al concepto estándar de un 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 es difícil separar las funciones del sistema de archivos.

Es necesario que el software del sistema operativo proporcione una interfaz 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 de Unix u OpenVMS DCL ) o gráfica (como la proporcionada por una interfaz gráfica de usuario , como los navegadores de archivos ). Si es gráfico, a menudo se utiliza la metáfora de la carpeta , que contiene documentos, otros archivos y carpetas anidadas (consulte también: directorio y carpeta).

Sistemas operativos Unix y similares a Unix

Los sistemas operativos similares a Unix crean un sistema de archivos virtual, lo que hace que todos los archivos de todos los dispositivos parezcan existir en una sola 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 similares a Unix pueden usar un disco RAM o un recurso compartido de red como directorio raíz.

Los sistemas similares a 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 en 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 en un CD-ROM , uno debe decirle al sistema operativo "Tome el sistema de archivos de este CD-ROM y hágalo aparecer en tal o cual directorio". El directorio proporcionado al sistema operativo se llama punto de montaje  ; podría, por ejemplo, ser / 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 un 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 similares a Unix a menudo incluyen software y herramientas que ayudan en el proceso de montaje y le brindan una nueva funcionalidad. Algunas de estas estrategias se han acuñado como "auto-montaje" como un reflejo de su propósito.

  • En muchas situaciones, los sistemas de archivos distintos de la raíz deben estar disponibles tan pronto como se inicie el sistema operativo . Por lo tanto, todos los sistemas similares a Unix proporcionan una función para montar sistemas de archivos en el momento del arranque. Los administradores del sistema definen estos sistemas de archivos en el archivo de configuración fstab ( vfstab en Solaris ), que también indica opciones y puntos de montaje.
  • En algunas situaciones, no es necesario montar determinados sistemas de archivos en el momento del arranque , aunque es posible que desee utilizarlos posteriormente. Existen algunas utilidades para sistemas similares a Unix que permiten el montaje de sistemas de archivos predefinidos bajo demanda.
  • Los medios extraíbles permiten transferir programas y datos entre máquinas sin una conexión física. Los ejemplos comunes incluyen unidades flash USB , CD-ROM y DVD . Por lo tanto, se han desarrollado utilidades para detectar la presencia y disponibilidad de un medio y luego montar ese medio sin la intervención del usuario.
  • Los sistemas progresivos similares a Unix también han introducido un concepto llamado supermontaje ; vea, por ejemplo, el proyecto Linux supermount-ng . Por ejemplo, un disquete que se ha supermontado se puede quitar físicamente del sistema. En circunstancias normales, el disco debería haberse sincronizado y luego desmontado antes de su extracción. Siempre que se haya producido la sincronización, se puede insertar un disco diferente en la unidad. El sistema detecta automáticamente que el disco ha cambiado y actualiza el contenido del punto de montaje para reflejar el nuevo medio.
  • Un montador automático montará automáticamente un sistema de archivos cuando se haga una referencia al directorio sobre el que debería montarse. Esto generalmente se usa para sistemas de archivos en servidores de red, en lugar de depender de eventos como la inserción de medios, como sería apropiado para medios extraíbles.

Linux

Linux admite numerosos sistemas de archivos, pero las opciones 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 de solo lectura comprimido común.

Solaris

Solaris en versiones anteriores utilizaba de forma predeterminada UFS (sin registro o sin registro) para sistemas de archivos de arranque y suplementarios. Solaris adoptó de forma predeterminada, admitió y extendió UFS.

Soporte para otros sistemas de archivos y se agregaron mejoras significativas con el tiempo, incluyendo Veritas Software Corp. (registro en diario) VxFS , Sun Microsystems (agrupamiento) QFS , Sun Microsystems (registro en diario) UFS y Sun Microsystems (código abierto, agrupable, compresible 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 diario se añadió a UFS en Sun Solaris 7 . 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 administración de volumen lógico permite expandir 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 (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 mediante el aprovechamiento de las agrupaciones de almacenamiento virtual en ZFS .

Mac OS

macOS (anteriormente Mac OS X) usa 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 usa el término "Mac OS Extended" para HFS +. HFS Plus es un sistema de archivos rico en metadatos y que conserva mayúsculas y minúsculas, pero (generalmente) no distingue entre mayúsculas y minúsculas . Debido a las raíces Unix de macOS, se agregaron permisos Unix a HFS Plus. Las versiones posteriores de HFS Plus agregaron el registro 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 los archivos automáticamente sin requerir un desfragmentador externo.

Los nombres de archivo 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 de estilo Unix , enlaces simbólicos de 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 admitió 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 un sistema anterior a Leopard instalado en un volumen UFS se podía actualizar a Leopard. A partir de Mac OS X Lion, la compatibilidad con UFS se eliminó por completo.

Las versiones más recientes 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 , es necesario un software de terceros Snow Leopard . Mac OS X 10.6 (Snow Leopard) y versiones posteriores permiten escribir en sistemas de archivos NTFS, pero solo después de un cambio de configuración del sistema no trivial (existe software de terceros que automatiza esto).

Por último, 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.

OS / 2

OS / 2 1.2 introdujo el Sistema de archivos de alto rendimiento (HPFS). HPFS admite nombres de archivo de casos mixtos en diferentes páginas de códigos , nombres de archivo 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 extensiones 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 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 agrupaciones ZFS y RAID-Z y cifrado de disco usando Geli desde el principio de una manera fácil y conveniente ( GUI ). El PC-BSD 9.0+ actual 'Isotope Edition' tiene el sistema de archivos ZFS versión 5 y el grupo de almacenamiento ZFS versión 28.

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 o mmap ): se accede a redes, gráficos, depuración, autenticación, capacidades, cifrado y otros servicios a través de I / O operaciones en descriptores de archivos . El protocolo 9P elimina la diferencia entre archivos locales y remotos. Los sistemas de archivos en 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 hace uso de los sistemas de archivos FAT , NTFS , exFAT , Live File System y ReFS (el último de estos 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. Unidad C: se usa más comúnmente para la partición de la unidad de disco duro primaria , en la que Windows se instala normalmente y desde donde arranca. 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 usar "C" como letra de unidad para la partición primaria de la unidad de disco duro se remonta a MS-DOS , donde las letras A y B estaban reservadas para hasta dos unidades de disquete. Esto a su vez derivó de CP / M en la década de 1970 y, en última instancia, del CP / CMS de IBM de 1967.

GRASA

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 SCP 's 86-DOS . DR-DOS se basó en Digital Research ' s concurrente DOS , un sucesor del CP / M-86 .) La 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 .

A lo largo de los años, el sistema de archivos se ha ampliado de FAT12 a FAT16 y FAT32 . Se han agregado varias características al sistema de archivos, incluidos subdirectorios , compatibilidad con páginas de códigos , atributos extendidos y nombres de archivo largos . Los terceros, como Digital Research, han incorporado soporte opcional para el seguimiento de eliminación y esquemas de seguridad multiusuario basados ​​en volumen / directorio / archivo 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 el número de entradas en el directorio raíz del sistema de archivos y tenían restricciones en el tamaño máximo de los discos o particiones con formato FAT .

FAT32 aborda las limitaciones en FAT12 y FAT16, excepto por 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 del 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 de FAT12, FAT16 y FAT32, introducida en Windows 95 y Windows NT 3.5 , permitía que los nombres de archivo largos ( LFN ) se almacenaran en el sistema de archivos FAT de una manera compatible con versiones anteriores.

NTFS

NTFS , introducido con el sistema operativo Windows NT en 1993, permitió el control de permisos basado en ACL . Otras características que también son compatibles con NTFS incluyen enlaces físicos, 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 .

exFAT no es compatible con versiones anteriores de 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 y Windows 10.

exFAT es compatible con macOS a partir de la versión 10.6.5 (Snow Leopard). 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 con macOS y Windows que puede contener archivos de más de 4 GB.

OpenVMS

MVS

Antes de la introducción de VSAM , los sistemas OS / 360 implementaron 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 terminología de IBM) se almacena en ese disco en un archivo de sistema plano llamado Tabla de contenido de volumen (VTOC). El VTOC almacena todos los metadatos del archivo. Más tarde, 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 los conjuntos de datos catalogados y no catalogados utilizando la información en el VTOC, sin pasar por el catálogo, si se proporciona el ID de volumen requerido a la solicitud OPEN. Más tarde, el 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 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 direccionamiento indirecto , donde la entrada del directorio del archivo (denominada 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 consisten en 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

  • Prospero File System es un sistema de archivos basado en el modelo de sistema virtual. El sistema fue creado por el Dr. B. Clifford Neuman del Instituto de Ciencias de la Información de la Universidad del Sur de California.
  • Sistema de archivos RSRE FLEX - escrito en ALGOL 68
  • El sistema de archivos del Michigan Terminal System (MTS) es interesante porque: (i) proporciona "archivos de línea" donde las longitudes de registro y los números de línea se asocian como metadatos con cada registro en el archivo, las líneas se pueden agregar, reemplazar, actualizar con registros de igual o diferente longitud, y eliminados en cualquier parte del archivo sin la necesidad de leer y reescribir todo el archivo; (ii) el uso de claves de programa, los archivos pueden ser compartidos o permitidos a comandos y programas además de usuarios y grupos; y (iii) existe un mecanismo integral de bloqueo de archivos que protege tanto los datos del archivo como sus metadatos.

Limitaciones

Conversión del tipo de sistema de archivos

Puede ser ventajoso o necesario tener archivos en un sistema de archivos diferente al que existen 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. Proporcionar acceso a otro sistema operativo que no sea compatible con el sistema de archivos existente es otra razón.

Conversión in situ

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

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. Primero cree un nuevo sistema de archivos ext2, luego copie los datos al sistema de archivos y luego elimine el sistema de archivos FAT32.

Una alternativa, cuando no hay suficiente espacio para retener el sistema de archivos original hasta que se crea uno nuevo, es usar un área de trabajo (como un medio extraíble). Esto lleva más tiempo, pero una copia de seguridad de los datos es un buen efecto secundario.

Rutas de archivo largas y nombres de archivo largos

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

La copia de 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.

Ver también

Notas

Referencias

Fuentes

Otras lecturas

Libros

En línea

enlaces externos