stringtranslate.com

montaje de unión

En los sistemas operativos de computadora , el montaje de unión es una forma de combinar varios directorios en uno que parece contener sus contenidos combinados. [1] El montaje de unión es compatible con Linux , BSD y varios de sus sucesores, y Plan 9 , con un comportamiento similar pero sutilmente diferente.

Como ejemplo de aplicación de montaje de unión, consideremos la necesidad de actualizar la información contenida en un CD-ROM o DVD . Si bien no se puede escribir en un CD-ROM, se puede superponer el punto de montaje del CD con un directorio grabable en un montaje de unión. Luego, actualizar los archivos en el directorio de unión hará que terminen en el directorio grabable, dando la ilusión de que el contenido del CD-ROM se ha actualizado. [1] [2]

Implementaciones

plano 9

En el sistema operativo Plan 9 de Bell Labs (mediados de la década de 1980 en adelante), el montaje de sindicatos es un concepto central, que reemplaza varias convenciones antiguas de Unix con directorios sindicales; por ejemplo, varios directorios que contienen ejecutables , unidos en un único directorio /bin , reemplazan la variable PATH para la búsqueda de comandos en el shell. [3]

La semántica de unión del Plan 9 está muy simplificada en comparación con las implementaciones para sistemas operativos de estilo POSIX : la unión de dos directorios es simplemente la concatenación de sus contenidos, por lo que una lista de directorio de la unión puede mostrar nombres duplicados. Además, no se hace ningún esfuerzo por fusionar subdirectorios de forma recursiva, lo que lleva a una implementación extremadamente simple. [4] Los directorios están unidos en un orden controlable; u/nombre , donde u es un directorio de unión, denota el archivo llamado nombre en el primer directorio constituyente que contiene dicho archivo. [4]

Unix y BSD

Las implementaciones de uniones Unix/POSIX tienen requisitos diferentes de la implementación del Plan 9 debido a restricciones en el comportamiento tradicional del sistema de archivos Unix, lo que complica enormemente su implementación y, a menudo, conduce a compromisos. [5] Los problemas que encuentra el montaje sindical en sistemas operativos tipo Unix incluyen:

Los primeros intentos de agregar unión a los sistemas de archivos Unix incluyeron el sistema de archivos 3-D ( Bell Labs ) y el Translucent File Service en SunOS ( Sun Microsystems , 1988 [2] ). Se agregó una implementación de montaje de unión a la versión BSD de Unix en la versión 4.4 (1994), inspirándose en estos intentos anteriores, Plan 9 y los sistemas de archivos apilables en Spring (Sun, 1994). [1] 4.4BSD implementa el enfoque de pila de directorios descrito anteriormente. Como en el Plan 9, las operaciones atraviesan esta pila de arriba hacia abajo para resolver nombres, pero a diferencia del Plan 9, los montajes de unión BSD son recursivos, de modo que el contenido de los subdirectorios aparece fusionado en el directorio de unión. Además, a diferencia de la versión Plan 9, todas las capas excepto la superior son de solo lectura: la modificación de archivos en la unión hace que su contenido se copie primero en la capa superior de la pila, donde luego se aplican las modificaciones. La eliminación de archivos se implementa escribiendo un tipo especial de archivo llamado whiteout en el directorio superior, que tiene el efecto de marcar el nombre del archivo como inexistente y ocultar archivos con el mismo nombre en las capas inferiores de la pila. [1] Los apagones requieren soporte del sistema de archivos subyacente. [4]

linux

El montaje de unión se implementó para Linux 0.99 en 1993; Esta implementación inicial se llamó Sistema de archivos heredado, pero su desarrollador la abandonó debido a su complejidad. [2] La siguiente implementación importante fue UnionFS , que surgió del proyecto FiST en la Universidad Stony Brook . [6] [5] En 2006 se lanzó un intento de reemplazar UnionFS, aufs , seguido en 2009 por OverlayFS . [2] En 2014, se agregó la implementación de montaje de unión OverlayFS al código fuente estándar del kernel de Linux . [7]

De manera similar, GlusterFS ofrece la posibilidad de montar diferentes sistemas de archivos distribuidos en una red, en lugar de estar ubicados en la misma máquina. [8]

MergerFS, lanzado originalmente en 2014, es un complemento FUSE de código abierto desarrollado activamente , que permite agrupar directorios arbitrarios. [9]

Referencias

  1. ^ abcd Pendry , Jan-Simon; Marshall Kirk McKusick (diciembre de 1995). "Unión monta en 4.4BSD-Lite". Actas de la conferencia técnica de USENIX sobre UNIX y sistemas informáticos avanzados : 25–33 . Consultado el 25 de noviembre de 2007 .
  2. ^ abcdef Aurora, Valerie; Henson (marzo de 2009). "Unión de sistemas de archivos: arquitectura, características y opciones de diseño". LWN.net . Consultado el 21 de diciembre de 2009 .
  3. ^ Pike, R .; Presotto, D.; Thompson, K.; Trickey, H.; Winterbottom, P. "El uso de espacios de nombres en el Plan 9". Sitio web de la Organización Insurgente Contraria Aleatoria cat-v.org . Laboratorios Bell . Consultado el 27 de octubre de 2016 .
  4. ^ abc Aurora, Valerie; Henson (marzo de 2009). "Sistemas de archivos de la Unión: Implementaciones, parte I". LWN.net . Consultado el 21 de diciembre de 2009 .
  5. ^ abcde Wright, Charles P.; Jay Dave; Puya Gupta; Harikesavan Krishnan; Erez Sadoc; Mohammad Nayyer Zubair. "Versatilidad y semántica de Unix en un sistema de archivos de unificación en abanico". Informe técnico de la Universidad de Stony Brook FSL-04-01b . Consultado el 25 de noviembre de 2007 .
  6. ^ Aurora, Valeria; Henson (abril de 2009). "Unión de sistemas de archivos: implementaciones, parte 2". LWN.net . Consultado el 21 de diciembre de 2009 .
  7. ^ Larabel, Michael (29 de septiembre de 2014). "OverlayFS propuesto para el kernel Linux 3.18". Phoronix.com . Consultado el 12 de octubre de 2015 .
  8. ^ "Acerca de". Noticias de Gluster. 14 de noviembre de 2009. Archivado desde el original el 7 de abril de 2013 . Consultado el 4 de marzo de 2013 . GlusterFS es un sistema de archivos distribuido de código abierto capaz de escalar a varios petabytes (en realidad, ¡72 brontobytes!) y manejar miles de clientes. GlusterFS agrupa bloques de almacenamiento a través de Infiniband RDMA o interconexión TCP/IP, agregando recursos de disco y memoria y administrando datos en un único espacio de nombres global. GlusterFS se basa en un diseño de espacio de usuario apilable y puede ofrecer un rendimiento excepcional para diversas cargas de trabajo.
  9. ^ "Proyecto MergerFS en GitHub". github.com . Consultado el 15 de septiembre de 2021 .