stringtranslate.com

sistema de archivos virtuales

Un sistema de archivos virtual ( VFS ) o un conmutador de sistema de archivos virtual es una capa abstracta encima de 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 Windows , Mac OS / macOS y Unix clásicos , 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 kernel y un sistema de archivos concreto. Por lo tanto, es fácil agregar soporte para nuevos tipos de sistemas de archivos al kernel simplemente cumpliendo el contrato. Los términos del contrato podrían cambiar de manera incompatible de una versión a otra, lo que requeriría que el soporte concreto del sistema de archivos fuera recompilado, y posiblemente modificado antes de la recompilación, para permitir que funcione con una nueva versión del sistema operativo; o el proveedor del sistema operativo podría realizar sólo cambios compatibles con versiones anteriores del contrato, de modo que el soporte concreto del sistema de archivos creado 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 sistemas de archivos virtuales en sistemas similares a Unix fue introducido por Sun Microsystems en SunOS 2.0 en 1985. [2] Permitió que las llamadas al sistema Unix accedieran a sistemas de archivos locales UFS y sistemas de archivos remotos NFS de forma transparente. Por esta razón, los proveedores de Unix que obtuvieron licencias del código NFS de Sun a menudo copiaron 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 MS-DOS FAT desarrollado en Sun que se conectaba al SunOS VFS, 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 apilable bajo SunOS 4.0 para el sistema de archivos experimental Ficus. Este diseño preveía 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 gestión de almacenamiento y nombres de un sistema de archivos no cifrado). Heidemann adaptó este trabajo para usarlo en 4.4BSD como parte de su investigación de tesis ; Los descendientes de este código sustentan las implementaciones del sistema de archivos en los derivados BSD modernos, incluido macOS .

Otros sistemas de archivos virtuales Unix incluyen el File System Switch en System V Release 3 , el Generic File System 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 del sistema de archivos en el 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 se pueden implementar a través de extensiones de espacio de nombres 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 pueden hacer que utilicen técnicas FUSE y, por tanto, se integren sin problemas en el sistema.

Sistemas de archivos virtuales de un solo archivo

A veces, el sistema de archivos virtual se refiere a un archivo o grupo de archivos (no necesariamente dentro de un sistema de archivos concreto) que actúa como un contenedor manejable que debe proporcionar la funcionalidad de un sistema de archivos concreto mediante el uso de software. Ejemplos de tales 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 , 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 no), pero el acceso a la estructura interna de estos sistemas de archivos a menudo se limita a programas escritos específicamente para hacer uso del sistema de archivos virtual de un solo archivo. sistema de archivos (en lugar de implementarlo 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.

Los ejemplos directos de sistemas de archivos virtuales de un solo archivo incluyen 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 tratar la instalación de un sistema operativo como cualquier otro software: transfiriéndola con medios extraíbles o a través de la red.

PCTarea

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

WinUAE

El UAE para Windows , WinUAE , permite que archivos individuales grandes en Windows sean tratados como sistemas de archivos Amiga. En WinUAE, este archivo se denomina archivo físico . [3]

UAE también podría tratar un directorio en el sistema de archivos host ( Windows , Linux , macOS , AmigaOS ) como un sistema de archivos Amiga. [4]

Ver también

Notas

  1. ^ Emulación en Amiga Comparación entre PCX y PCTask, emuladores de Amiga PC.
  2. ^ Consulte también este artículo que explica cómo funciona PCTask.
  3. ^ Ayuda sobre WinUAE (consulte la sección Hardfile).
  4. ^ Ayuda sobre WinUAE (consulte 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 múltiples tipos de sistemas de archivos en Sun UNIX" (PDF) . USENIX Verano . 86 : 238–247. Archivado desde el original (PDF) el 29 de junio de 2014 . Consultado el 31 de diciembre de 2016 .

enlaces externos