Unionfs es un servicio de sistema de archivos para Linux , FreeBSD y NetBSD que implementa un montaje de unión para otros sistemas de archivos . Permite que los archivos y directorios de sistemas de archivos separados, conocidos como ramas, se superpongan de forma transparente, formando un único sistema de archivos coherente. Los contenidos de los directorios que tienen la misma ruta dentro de las ramas fusionadas se verán juntos en un solo directorio fusionado, dentro del nuevo sistema de archivos virtual.
Desarrollador (es) | Comunidad de código abierto |
---|---|
Nombre completo | Sistema de archivos de unificación |
Características | |
Permisos del sistema de archivos | POSIX |
Compresión transparente | No |
Cifrado transparente | No (pero se puede proporcionar a nivel de dispositivo de bloque) |
Otro | |
Apoyados sistemas operativos | Linux , FreeBSD y NetBSD |
Al montar ramas, se especifica la prioridad de una rama sobre la otra. Entonces, cuando ambas ramas contienen un archivo con el mismo nombre, una tiene prioridad sobre la otra.
Las diferentes ramas pueden ser sistemas de archivos de solo lectura o de lectura / escritura , de modo que las escrituras en la copia virtual fusionada se dirijan a un sistema de archivos real específico. Esto permite que un sistema de archivos parezca escribible, pero sin permitir que las escrituras cambien el sistema de archivos, también conocido como copia en escritura . Esto puede ser deseable cuando el medio es físicamente de solo lectura, como en el caso de los Live CD .
Unionfs fue desarrollado originalmente por el profesor Erez Zadok y su equipo en la Universidad de Stony Brook . [1] [2] [3]
Usos
En Knoppix , una unión entre el sistema de archivos del CD-ROM o DVD de un sistema de archivos contenidos en un archivo de imagen llamado y knoppix.img (knoppix-data.img de Knoppix 7) en una unidad de grabación (como un lápiz de memoria USB ), donde la unidad de escritura tiene prioridad sobre el sistema de archivos de solo lectura. Esto permite al usuario cambiar cualquiera de los archivos en el sistema, con el nuevo archivo almacenado en la imagen y utilizado de forma transparente en lugar del que está en el CD. [4]
Unionfs también se puede utilizar para crear una única plantilla común para varios sistemas de archivos o por motivos de seguridad. A veces se utiliza como un sistema de instantáneas ad hoc .
Docker utiliza sistemas de archivos inspirados en Unionfs, como Aufs , para superponer imágenes de Docker. A medida que se realizan acciones en una imagen base, se crean y documentan capas, de modo que cada capa describe completamente cómo recrear una acción. Esta estrategia habilita las imágenes ligeras de Docker, ya que solo es necesario propagar las actualizaciones de capa (en comparación con las máquinas virtuales completas, por ejemplo). [5]
UbuntuLTSP , la implementación de Linux Terminal Server Project para Ubuntu, usa Unionfs cuando PXE arranca clientes ligeros o pesados. [6]
Otras implementaciones
Unionfs para Linux tiene dos versiones. La versión 1.x es independiente que se puede construir como un módulo. La versión 2.x es una más nueva, rediseñada y reimplementada.
aufs es una versión alternativa de unionfs. [7]
overlayfs escrito por Miklos Szeredi ha sido utilizado en OpenWRT y considerado por Ubuntu y se ha fusionado en el kernel principal de Linux el 26 de octubre de 2014 [8] después de muchos años de desarrollo y discusión [9] para la versión 3.18 del kernel.
unionfs-fuse es un proyecto independiente, implementado como un programa de sistema de archivos de espacio de usuario , en lugar de un módulo o parche del núcleo. Al igual que Unionfs, admite ramas de copia en escritura y de solo lectura o lectura y escritura. [10]
El sistema operativo Plan 9 de Bell Labs utiliza montajes de unión ampliamente para crear espacios de nombres personalizados por usuario o procesos.
Los soportes de unión también están disponibles en BSD desde al menos 1995. [11]
El GNU Hurd tiene una implementación de Unionfs. [12] A partir de enero de 2008, funciona, pero da como resultado un punto de montaje de solo lectura.
mhddfs funciona como Unionfs pero permite equilibrar archivos en unidades con la mayor cantidad de espacio libre disponible. Se implementa como un sistema de archivos de espacio de usuario.
mergerfs es un sistema de archivos de unión basado en FUSE que ofrece múltiples políticas para acceder y escribir archivos, así como otras funciones avanzadas (xattrs, gestión de unidades RO y RW mixtas, enlace CoW, etc.). [13]
Sun Microsystems introdujo la primera implementación de un sistema de archivos apilado y en capas con copia sobre escritura, borrones (ocultar archivos en capas inferiores de capas superiores), etc. como Translucent File Service en SunOS 3, alrededor de 1986. [14]
JailbreakMe 3.0, una herramienta para hacer jailbreak a dispositivos iOS lanzada en julio de 2011, utiliza técnicas unionfs para acelerar el proceso de instalación de la modificación del sistema operativo. [15]
Ver también
- OverlayFS
- Aufs
Referencias
- ^ Wright, Charles P .; Zadok, Erez (diciembre de 2004). "Kernel Korner: Unionfs: uniendo sistemas de archivos" . Diario de Linux . 2004 (128): 8. ISSN 1075-3583 .
- ^ "Servidor Git de Sistemas de archivos y Laboratorio de almacenamiento" . Universidad de Stony Brook . Archivado desde el original el 17 de junio de 2016 . Consultado el 17 de julio de 2017 .
Proyecto: unionfs-3.9.y.git; Propietario: Erez Zadok
- ^ "Laboratorio de Sistemas de Archivo y Almacenamiento: Departamento de CS" . Universidad de Stony Brook .
Coordinador de laboratorio e investigador principal: Prof. Erez Zadok
- ^ Schulz, Werner P. (15 de diciembre de 2016). "Instalación de disco duro: UNIONFS" . Knoppix . Consultado el 17 de julio de 2017 .
- ^ "Descripción general de Docker: sistemas de archivos de unión" . Docker, Inc. 13 de julio de 2017 . Consultado el 17 de julio de 2017 .
- ^ Georgopoulos, Alkis (24 de diciembre de 2010). "UbuntuLTSP / LTSPWithoutNFS" . Consultado el 17 de julio de 2017 .
- ^ "Página de inicio de aufs" . 2 de julio de 2017 . Consultado el 17 de julio de 2017 .
- ^ Torvalds, Linus (26 de octubre de 2014). "fusión de overlayfs + corrección de fugas para salidas de falla de d_splice_alias ()" . Consultado el 17 de julio de 2017 .
- ^ Corbet, Jonathan (15 de junio de 2011). "Debatiendo overlayfs" . Consultado el 17 de julio de 2017 .
- ^ Podgorny, Radek (21 de noviembre de 2016). "unionfs-fuse - Una implementación de unionfs de espacio de usuario" . Consultado el 17 de julio de 2017 .
- ^ Pendry, Jan-Simon; McKusick, Marshall Kirk (enero de 1995). "Union Mounts en 4.4BSD-Lite" . Actas de la Conferencia Técnica de USENIX 1995 . Consultado el 17 de julio de 2017 .
- ^ Schwinge, Thomas (26 de febrero de 2014). "unionfs" . GNU Hurd . Consultado el 17 de julio de 2017 .
- ^ "trapexit / mergerfs" . GitHub . Consultado el 21 de octubre de 2018 .
- ^ Sun / Versión 3.0 . vol. 1. Publicaciones técnicas intercaladas. 1988. págs. 15‑1–18, 16‑1–19.
|volume=
tiene texto extra ( ayuda ) - ^ Imran, Awais (19 de junio de 2011). "Comex trabaja en un proceso de jailbreak más rápido para JailbreakMe 3.0; ¡Próximamente Jailbreak para iPad 2!" . Pastel de Redmond . Consultado el 17 de julio de 2017 .
enlaces externos
- Página web oficial
- Charles P. Wright, Jay Dave, Puja Gupta, Harikesavan Krishnan, Erez Zadok y Mohammad Nayyer Zubair (2004). "Versatilidad y semántica de Unix en un sistema de archivos de unificación en abanico" (PDF) . Informe técnico FSL-04-01b . Universidad de Stony Brook .Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- unionfs-fuse en GitHub : una implementación alternativa de Unionfs basada en FUSE
- FunionFS : otra implementación de Unionfs basada en FUSE
- La nueva implementación de unionfs para FreeBSD y el estado de la fusión (2007-10-23)
- Sobre el desarrollo de sistemas de archivos incrementales
- Unionfs basado en LUFS para Linux (basado en LUFS )
- Guía de DENX U-Boot y Linux: sistemas de archivos superpuestos