stringtranslate.com

Sistema de archivos virtual

Un sistema de archivos virtual ( VFS ) o conmutador de sistema de archivos virtual es una capa abstracta sobre un sistema de archivos más concreto . El propósito de un VFS es permitir que las aplicaciones cliente accedan a diferentes tipos de sistemas de archivos concretos de manera uniforme. Un VFS se puede utilizar, por ejemplo, para acceder a dispositivos de almacenamiento locales y de red de forma transparente sin que la aplicación cliente note la diferencia. Se puede utilizar para salvar las diferencias en los sistemas de archivos de Windows , Mac OS / macOS clásico y Unix , de modo que las aplicaciones puedan acceder a archivos en sistemas de archivos locales de esos tipos sin tener que saber a qué tipo de sistema de archivos están accediendo.

Un VFS especifica una interfaz (o un "contrato") entre el núcleo y un sistema de archivos concreto. Por lo tanto, es fácil añadir compatibilidad con nuevos tipos de sistemas de archivos al núcleo simplemente cumpliendo el contrato. Los términos del contrato pueden cambiar de forma incompatible de una versión a otra, lo que requeriría que la compatibilidad con sistemas de archivos concretos se recompilate, y posiblemente se modifique antes de la recompilación, para permitir que funcione con una nueva versión del sistema operativo; o el proveedor del sistema operativo puede realizar únicamente cambios compatibles con versiones anteriores en el contrato, de modo que la compatibilidad con sistemas de archivos concretos creada para una versión determinada del sistema operativo funcione con versiones futuras del sistema operativo.

Implementaciones

La posición de la capa VFS dentro de varias partes de la pila de almacenamiento del kernel de Linux . [1]

Uno de los primeros mecanismos de sistema de archivos virtuales en sistemas tipo Unix fue introducido por Sun Microsystems en SunOS 2.0 en 1985. [2] Permitía que las llamadas al sistema Unix accedieran a sistemas de archivos UFS locales y sistemas de archivos NFS remotos de forma transparente. Por esta razón, los proveedores de Unix que licenciaban el código NFS de Sun a menudo copiaban el diseño del VFS de Sun. También se podían conectar otros sistemas de archivos: había una implementación del sistema de archivos FAT de MS-DOS desarrollado en Sun que se conectaba al VFS de SunOS, aunque no se envió como producto hasta SunOS 4.1. La implementación de SunOS fue la base del mecanismo VFS en System V Release 4 .

John Heidemann desarrolló un VFS de apilamiento bajo SunOS 4.0 para el sistema de archivos experimental Ficus. Este diseño permitió la reutilización de código entre tipos de sistemas de archivos con semánticas diferentes pero similares ( por ejemplo , un sistema de archivos cifrado podría reutilizar todo el código de nombres y administración de almacenamiento de un sistema de archivos no cifrado). Heidemann adaptó este trabajo para su uso en 4.4BSD como parte de su investigación de tesis ; los descendientes de este código sustentan las implementaciones de sistemas de archivos en los derivados de BSD modernos, incluido macOS .

Otros sistemas de archivos virtuales de Unix incluyen el conmutador de sistema de archivos en System V Release 3 , el sistema de archivos genérico en Ultrix y el VFS en Linux . En OS/2 y Microsoft Windows , el mecanismo del sistema de archivos virtual se denomina sistema de archivos instalable .

El mecanismo de sistema de archivos en espacio de usuario (FUSE) permite que el código del espacio de usuario se conecte al mecanismo del sistema de archivos virtual en Linux, NetBSD , FreeBSD , OpenSolaris y macOS.

En Microsoft Windows, los sistemas de archivos virtuales también pueden implementarse a través de extensiones de espacio de nombres de Shell en el espacio de usuario ; sin embargo, no admiten las interfaces de programación de aplicaciones de acceso al sistema de archivos de nivel más bajo en Windows, por lo que no todas las aplicaciones podrán acceder a los sistemas de archivos que se implementan como extensiones de espacio de nombres. KIO y GVfs / GIO proporcionan mecanismos similares en los entornos de escritorio KDE y GNOME (respectivamente), con limitaciones similares, aunque se puede hacer que utilicen técnicas FUSE y, por lo tanto, se integren sin problemas en el sistema.

Sistemas de archivos virtuales de un solo archivo

En ocasiones, el término Sistema de archivos virtual hace referencia a un archivo o grupo de archivos (no necesariamente dentro de un sistema de archivos concreto) que actúa como un contenedor manejable que debería proporcionar la funcionalidad de un sistema de archivos concreto mediante el uso de software. Algunos ejemplos de estos contenedores son CBFS Storage o un sistema de archivos virtual de un solo archivo en un emulador como PCTask o el llamado WinUAE , VirtualBox de Oracle , Virtual PC de Microsoft o VMware .

El principal beneficio de este tipo de sistema de archivos es que está centralizado y es fácil de eliminar. Un sistema de archivos virtual de un solo archivo puede incluir todas las características básicas que se esperan de cualquier sistema de archivos (virtual o de otro tipo), pero el acceso a la estructura interna de estos sistemas de archivos suele estar limitado a programas escritos específicamente para hacer uso del sistema de archivos virtual de un solo archivo (en lugar de implementarse a través de un controlador que permita el acceso universal). Otro inconveniente importante es que el rendimiento es relativamente bajo en comparación con otros sistemas de archivos virtuales. El bajo rendimiento se debe principalmente al costo de mezclar archivos virtuales cuando se escriben o eliminan datos del sistema de archivos virtual.

Implementación de sistemas de archivos virtuales de un solo archivo

Entre los ejemplos directos de sistemas de archivos virtuales de un solo archivo se incluyen los emuladores, como PCTask y WinUAE, que encapsulan no solo los datos del sistema de archivos, sino también el diseño del disco emulado. Esto facilita el tratamiento de una instalación de SO como cualquier otro software, transfiriéndolo con medios extraíbles o a través de la red.

Tarea de PC

El emulador de Amiga PCTask emulaba una máquina basada en un Intel PC 8088 con una frecuencia de reloj de 4,77 MHz (y más tarde un 80486 SX con una frecuencia de reloj de 25 MHz). Los usuarios de PCTask podían crear un archivo de gran tamaño en el sistema de archivos de Amiga, y se podía acceder a este archivo virtualmente desde el emulador como si fuera un disco duro de PC real. El archivo podía formatearse con el sistema de archivos FAT16 para almacenar archivos normales de MS-DOS o Windows. [1] [2]

WinUAE

El sistema operativo Windows UAE , WinUAE , permite que los archivos individuales de gran tamaño en Windows se traten como sistemas de archivos de Amiga. En WinUAE, este archivo se denomina archivo duro . [3]

Los Emiratos Árabes Unidos también podrían tratar un directorio en el sistema de archivos del host ( Windows , Linux , macOS , AmigaOS ) como un sistema de archivos Amiga. [4]

Véase también

Notas

  1. ^ Emulación en Amiga Comparación entre PCX y PCTask, emuladores de PC Amiga.
  2. ^ Ver también este artículo que explica cómo funciona PCTask.
  3. ^ Ayuda acerca de WinUAE (Ver sección Hardfile).
  4. ^ Ayuda sobre WinUAE (Ver la sección Agregar directorio)

Referencias

  1. ^ Werner Fischer; Georg Schönberger (1 de junio de 2015). "Diagrama de pila de almacenamiento de Linux". Thomas-Krenn.AG . Consultado el 8 de junio de 2015 .
  2. ^ Kleiman, Steve R. (junio de 1986). "Vnodes: una arquitectura para varios tipos de sistemas de archivos en Sun UNIX" (PDF) . USENIX Summer . 86 : 238–247. Archivado desde el original (PDF) el 29 de junio de 2014. Consultado el 31 de diciembre de 2016 .

Enlaces externos