El sistema de archivos en espacio de usuario ( FUSE ) es una interfaz de software para sistemas operativos Unix y similares que permite a los usuarios sin privilegios crear sus propios sistemas de archivos sin necesidad de editar el código del núcleo . Esto se logra ejecutando el código del sistema de archivos en el espacio de usuario , mientras que el módulo FUSE solo proporciona un puente hacia las interfaces del núcleo.
FUSE está disponible para Linux , FreeBSD , OpenBSD , NetBSD (como puffs ), OpenSolaris , Minix 3 , macOS , [ 2 ] MorphOS (como filesysbox.library) y Windows . [ 3 ]
FUSE es un software libre publicado originalmente bajo los términos de la Licencia Pública General de GNU y la Licencia Pública General Reducida de GNU .
Historia
Los usuarios de Plan 9 disponen del comando ftpfs , que se conecta a un servidor FTP, almacena los archivos remotos en su espacio de nombres y traduce las operaciones de Plan 9 a operaciones FTP. Esto permite que las utilidades estándar (grep, sed, etc.) trabajen directamente con los archivos remotos. Desde entonces, han surgido diversas implementaciones de ftpfs y sshfs .
El sistema FUSE fue originalmente parte de AVFS ( A Virtual Filesystem ), una implementación de sistema de archivos fuertemente influenciada por el concepto de traductor de GNU Hurd . [ 4 ] Reemplazó a Linux Userland Filesystem y proporcionó una interfaz de traducción usando lufislibfuse1.
FUSE se publicó originalmente bajo los términos de la Licencia Pública General de GNU y la Licencia Pública General Reducida de GNU , y posteriormente se reimplementó como parte del sistema base de FreeBSD [ 5 ] y se publicó bajo los términos de la licencia BSD simplificada . Una reimplementación con licencia ISC realizada por Sylvestre Gallon se publicó en marzo de 2013 [ 6 ] y se incorporó a OpenBSD en junio de 2013 [ 7 ] .
FUSE se fusionó con el árbol principal del kernel de Linux en la versión del kernel 2.6.14.(2005) [ 8 ].
La parte de espacio de usuario de FUSE, la biblioteca libfuse , generalmente siguió el ritmo del desarrollo del kernel de Linux mientras mantenía la compatibilidad "en el mejor esfuerzo" con los descendientes de BSD. Esto es posible porque el kernel FUSE informa sus propios "niveles de características" o versiones. La excepción es la bifurcación de FUSE para macOS, OSXFUSE, que tiene demasiadas diferencias como para compartir una biblioteca. [ 9 ] Un punto de inflexión en la historia de libfuse es libfuse3, que incluye algunas mejoras incompatibles en la interfaz y el rendimiento, en comparación con la versión anterior libfuse2, ahora en modo de mantenimiento. [ 10 ]
Dado que el protocolo FUSE para el espacio de usuario del kernel está versionado y es público, un programador puede optar por usar otro fragmento de código en lugar de libfuse y aun así comunicarse con las funcionalidades FUSE del kernel. Por otro lado, libfuse y sus múltiples puertos proporcionan una interfaz de alto nivel portátil que puede implementarse en un sistema que no disponga de la funcionalidad FUSE.
Puertos, bifurcaciones y reimplementaciones
La versión de FUSE para Mac OS X tiene demasiadas diferencias como para compartir la misma biblioteca que los sistemas libfuse estándar . Se inició como MacFUSE de Google en 2009 y Benjamin Fleischer la bifurcó como OSXFUSE en 2011. OSXFUSE pasó a llamarse macFUSE en 2020 tras el cambio de nombre de Mac OS X a macOS. [ 11 ] El macFUSE moderno consta de una extensión de kernel de código cerrado y tres bibliotecas de espacio de usuario de código abierto: una bifurcación de libfuse2, una bifurcación de libfuse3 y un marco Objective-C para acceder a la funcionalidad específica de macFUSE. La última versión completamente de código abierto fue OSXFUSE 3.8.3 de 2018. [ 12 ]
WinFsp es una interfaz de controlador de sistema de archivos en espacio de usuario para Windows, publicada bajo la licencia GPLv3. Implementa las API de C libfuse2 y libfuse3, además de sus propias API para C y .NET. [ 13 ]
OpenHarmony utiliza una bifurcación de libfuse3 como un "componente de terceros" con modificaciones mínimas. No está claro si esta inclusión es solo para las ramas de OpenHarmony basadas en el kernel de Linux (lo cual sería trivial) o también para sus kernels personalizados LiteOS y UniProton. [ 14 ] [ 15 ]
Funcionamiento y uso

libfusePara implementar un nuevo sistema de archivos, es necesario escribir un programa controlador vinculado a la biblioteca proporcionada . El objetivo principal de este programa es especificar cómo debe responder el sistema de archivos a las solicitudes de lectura, escritura y estado. El programa también se utiliza para montar el nuevo sistema de archivos. Al montar el sistema de archivos, el controlador se registra en el núcleo. Si un usuario realiza solicitudes de lectura, escritura y estado para este sistema de archivos recién montado, el núcleo reenvía estas solicitudes de E/S al controlador y, posteriormente, envía la respuesta del controlador al usuario.

fusermountcomandoFUSE es especialmente útil para escribir sistemas de archivos virtuales . A diferencia de los sistemas de archivos tradicionales, que básicamente trabajan con datos en almacenamiento masivo, los sistemas de archivos virtuales no almacenan datos por sí mismos. Actúan como una representación o traducción de un sistema de archivos o dispositivo de almacenamiento existente.
En principio, cualquier recurso disponible para una implementación de FUSE puede exportarse como un sistema de archivos.
La versión de FUSE en el kernel de Linux incluye varias características opcionales que se pueden habilitar para mejorar el rendimiento, como el almacenamiento en caché de escritura diferida (en contraposición a la escritura directa) y el paso directo de E/S.
Aplicaciones
Sistemas de archivos en disco
Los sistemas de archivos convencionales en disco pueden implementarse en el espacio de usuario con FUSE, por ejemplo, por motivos de compatibilidad o de licencia.
- Sistema de archivos de cinta lineal : Permite acceder a los archivos almacenados en cinta magnética de forma similar a como se accede a los archivos almacenados en discos o unidades flash extraíbles.
- NTFS-3G y NTFS cautivo , que permiten el acceso a sistemas de archivos NTFS .
- retro-fuse : retro-fuse es un sistema de archivos en espacio de usuario que permite montar sistemas de archivos creados por sistemas Unix antiguos en sistemas operativos modernos. La versión actual de retro-fuse admite el montaje de sistemas de archivos creados por la Quinta, Sexta y Séptima Edición de Research Unix de Bell Labs , así como sistemas basados en 2.9BSD y 2.11BSD.
Sistemas de archivos por capas
Los sistemas de archivos FUSE pueden crear una vista del sistema de archivos subyacente, transformando los archivos de alguna manera.
- EncFS : Sistema de archivos virtual cifrado
- FuseCompress, gzipfs, Fuse-ZIP, CompFUSEd: Sistemas de archivos virtuales comprimidos
- Los sistemas de archivos de archivo también pueden realizar esta tarea.
Sistemas de archivos de archivo y copia de seguridad
Los sistemas de archivos FUSE pueden exponer el contenido de archivos comprimidos o conjuntos de copias de seguridad sin necesidad de extraerlos previamente.
- montaje de archivo
- Atlas (software de copia de seguridad de Rubrik) : Sistema de archivos distribuido e inmutable utilizado por las aplicaciones de protección de datos de Rubrik Cloud Data Management.
- Borg (software de copia de seguridad) : Programa de copia de seguridad con deduplicación que permite montar los archivos de copia de seguridad como sistemas de archivos FUSE.
- Restic : Software de copia de seguridad gratuito, rápido, eficiente y seguro que utiliza FUSE para poder explorar todas sus instantáneas de copia de seguridad como un sistema de archivos normal.
- SPFS es un sistema de archivos para Spectrum Protect, diseñado para montar el espacio de archivos del servidor de copias de seguridad en cualquier lugar del servidor y utilizar las funciones incluidas en dicho servidor (cifrado, deduplicación, compresión, filtrado, etc.). Se trata de un sistema de archivos WORM .
Clientes de sistemas de archivos remotos/distribuidos
- CernVM-FS : Un sistema de distribución de software distribuido de solo lectura, implementado como un sistema de archivos POSIX en el espacio de usuario (FUSE) mediante el protocolo HTTP, para distribuir software de forma rápida y fiable a escala global.
- CloudStore (anteriormente, sistema de archivos Kosmos): Al montar mediante FUSE, las utilidades de Linux existentes pueden interactuar con CloudStore.
- ExpanDrive : Un sistema de archivos comercial que implementa SFTP/FTP/S3/Swift utilizando FUSE.
- FTPFS
- GlusterFS : Sistema de archivos distribuido en clúster con capacidad de escalar hasta varios petabytes.
- goofys : Un sistema de archivos FUSE que permite el acceso al almacenamiento de Amazon S3/Microsoft Azure, con especial énfasis en el rendimiento.
- google-drive-ocamlfuse es un sistema de archivos FUSE para Google Drive, escrito en OCaml . Permite montar Google Drive en Linux.
- IPFS : Un sistema de archivos distribuido punto a punto que busca conectar todos los dispositivos informáticos con el mismo sistema de archivos.
- JuiceFS : Un sistema de archivos POSIX distribuido construido sobre Redis y S3.
- KBFS : Un sistema de archivos distribuido con cifrado de extremo a extremo y un espacio de nombres global basado en el servicio Keybase.io que utiliza FUSE para crear puntos de montaje de archivos criptográficamente seguros.
- El sistema de archivos Lustre Cluster utilizará FUSE para permitir su ejecución en el espacio de usuario, de modo que sea posible una adaptación a FreeBSD. [ 16 ] Sin embargo, la adaptación de Lustre a ZFS para Linux ejecutará la DMU (Unidad de Gestión de Datos) de ZFS en el espacio de usuario. [ 17 ]
- MinFS : MinFS es un controlador fuse para servidores de almacenamiento de objetos compatibles con Amazon S3. MinFS [ 18 ] permite montar un bucket remoto (desde un almacenamiento de objetos compatible con S3) como si fuera un directorio local.
- MooseFS : Un sistema de archivos distribuido de código abierto y tolerante a fallos, disponible en todos los sistemas operativos con implementación FUSE (Linux, FreeBSD, NetBSD, OpenSolaris, OS X), capaz de almacenar petabytes de datos distribuidos en varios servidores visibles como un único recurso.
- Nexfs : Un sistema de archivos Linux comercial que combina almacenamiento en la nube y de objetos compatible con bloques, archivos y S3 en un único conjunto de almacenamiento compatible con POSIX.
- ObjectiveFS : Sistema de archivos distribuido con almacenamiento de objetos (Amazon S3, Google Cloud Storage o almacenamiento de objetos compatible con S3) que utiliza FUSE.
- Rclone puede montar una variedad de sistemas de almacenamiento remoto/en la nube con FUSE.
- s3fs : Permite montar un bucket de S3 como si fuera un sistema de archivos local.
- Sistema de archivos Sector : Sector es un sistema de archivos distribuido diseñado para una gran cantidad de ordenadores de uso general. Sector utiliza FUSE para proporcionar una interfaz de sistema de archivos local montable.
- SSHFS : Proporciona acceso a un sistema de archivos remoto a través de SSH .
- Transmit: Un cliente FTP comercial que también permite montar servidores WebDAV, SFTP, FTP y Amazon S3 como discos en Finder, a través de MacFUSE.
- WebDrive : Un sistema de archivos comercial que implementa WebDAV , SFTP, FTP, FTPS y Amazon S3.
- WikipediaFS : Visualiza y edita artículos de Wikipedia como si fueran archivos reales.
- Wuala : Era un sistema de archivos distribuido multiplataforma, basado en Java e integrado en el sistema operativo. Utilizaba FUSE, MacFUSE y CBFS Connect respectivamente para la integración del sistema de archivos, además de una aplicación basada en Java accesible desde cualquier navegador web compatible con Java (el servicio se interrumpió en 2015).
- IndexFS : Un sistema de archivos de agregación remota con acceso CURL transparente a archivos distribuidos.
Otro
- GVfs : El sistema de archivos virtual para el escritorio GNOME.
- rvault : Un almacén seguro y autenticado para secretos y documentos pequeños que utiliza cifrado de sobre con autenticación mediante contraseña de un solo uso (OTP). Utiliza FUSE para exponer la bóveda como un sistema de archivos.
- EaseFilter-Cloud-File-System : Un sistema de archivos en la nube para Windows, destinado a desarrolladores en el espacio de usuario, para implementar el equilibrio de carga y la recuperación ante desastres basada en la nube.
Véase también
- PUFFS , un marco similar con compatibilidad con FUSE.
- 9P (protocolo)
- Sistema de archivos instalable
- Compatibilidad de Dokan Library FUSE con Windows
- Sistema de archivos proyectado de Windows (ProjFS)
Referencias
- ↑ https://github.com/libfuse/libfuse/releases/tag/fuse-3.18.1 .
{{cite web}}: Falta o está vacío|title=( ayuda ) - ↑ "Inicio - FUSE para OS X" .
- ↑ Zissimopoulos, Bill (14 de febrero de 2021), billziss-gh/winfsp , consultado el 16 de febrero de 2021
- ↑ "Algunas ventajas técnicas del Hurd" . 15 de mayo de 2011. Consultado el 28 de marzo de 2016 .
- ↑ "Novedades/FreeBSD10 - Wiki de FreeBSD" .
- ↑ "openbsd dev - tech - Soporte para Fuse (y sshfs) en OpenBSD" . Archivado del original el 26/10/2020 . Consultado el 14/07/2013 .
- ↑ "'CVS: cvs.openbsd.org: src' - MARC" .
- ↑ "file-systems.fuse.devel - ¡FUSE se fusionó con la versión 2.6.14! - msg#00021 - Discusión reciente OSDir.com" . Archivado del original el 20 de abril de 2016.
- ↑ "libfuse/libfuse, la implementación de referencia de la interfaz Linux FUSE (Filesystem in Userspace)" . libfuse. 9 de enero de 2020. Consultado el 9 de enero de 2020 .
- ↑ "Libfuse3 ChangeLog" . GitHub . Consultado el 9 de enero de 2020 .
- ↑ "macFUSE (anteriormente osxfuse)" . GitHub .
- ↑ "macfuse/macfuse" . macFUSE. 11 de septiembre de 2025.
- ↑ "winfsp/winfsp" . WinFsp.
- ↑ "OpenHarmony/third_party_libfuse/README_OpenHarmony.md" . GitCode . OpenAtom . Consultado el 8 de noviembre de 2025 .(Véase también: metadatos de seguimiento ascendente en README.OpenSource )
- ↑ "Introducción a los componentes de terceros de OpenHarmony" . GitHub . OpenAtom . Consultado el 8 de noviembre de 2025 .
- ↑ "Lustre FreeBSD" . Archivado del original el 12 de marzo de 2008. Consultado el 2 de marzo de 2008 .
- ↑ "Arquitectura ZFS para Lustre" . Sun Microsystems. Archivado del original el 22 de enero de 2009. Consultado el 2 de marzo de 2008 .
- ↑ "minio/minfs" . GitHub . Consultado el 12 de abril de 2018 .
Enlaces externos
- Sitio web oficial
- Desarrolla tu propio sistema de archivos con FUSE por Sumit Singh
- Lista de sistemas de archivos FUSE
- Documentación del kernel de Linux
- WinFSP , un sistema similar a FUSE para Windows (se proporciona una capa de compatibilidad con FUSE para Cygwin).
- Crossmeta FUSE , adaptación de FUSE para Windows (software comercial)
- Software libre programado en C
- Sistemas de archivos gratuitos de propósito especial
- Características del kernel de Linux
- Software que utiliza Meson
- Software relacionado con el sistema de archivos Unix
- Sistemas de archivos de espacio de usuario
- Software que utiliza la Licencia Pública General de GNU.