Fuente: brunoprog64

Quienes lleven tiempo en esto de la informática, muchas veces se han visto forzados a trabajar con archivos remotos, protocolos de red o grandes archivos que pueden ser .tar.gz o .iso, o hasta imágenes de máquinas virtuales.

En el caso de los FTP, SSH y demás el proceso es bajar los archivos a modificar y volver a subirlos al servidor. En el caso de trabajar mucho con hosting remoto esta solución puede ser desesperante. Hay aplicaciones que intentan paliar esto, pero o funcionan erráticamente o son costosas.

Ni que decir SMB (Protocolo de Red Windows) bajo Linux, usando Samba, hay que bajar los archivos para verlos, mientras que en Windows se pueden ver y hasta modificar “on-line” sin bajar nada al disco duro.

O también poniendo el caso de SSH en el caso de que usemos Sourceforge. Es desesperante estar modificando algo y subirlo a cada rato.

También pensemos en los .iso. No es agradable descomprimirlos para modificar algo (En el caso de querer ISOs propias de ISO ya existentes).

Y finalmente pensemos en si queremos ver un preview de esos inmensos directorios de descargas de distribuciones Linux y demás.

Alguno que me leyera pensará que estoy siendo demasiado sarcástico o burlón. En parte lo esta siendo, pero también hay buenas noticias… ¡Todos esos problemas tienen solución usando FUSE!

FUSE, es un acrónimo para “Filesystem in Userspace” (Sistema de archivos en espacio de usuario), el cual permite crear sistemas de archivos sin necesidad de ser root para montarlos.

¿Cúal es la necesidad de implementar en espacio de usuario algo que se supone que debe estar en el Kernel? se preguntarán algunos… la respuesta es muy simple. Facilita muchas cosas e instalar diferentes programas sin necesidad de cargar módulos o recompilar el Kernel, cosas que sólo puede hacer un usuario root.

Usando esta librería FUSE, muchas personas han hecho “puentes” entre servicios web y demás hacia carpetas, permitiendo que muchos usuarios puedan facilitarse la vida. FUSE es software libre y está disponible para casi todos los derivados de UNIX (Linux, Solaris, MacOS y demás). No he conseguido información sobre una versión libre para Windows. Hay un port propietario aquí.

Sobre las carencias que mencioné al inicio, todas ellas son solucionables con FUSE. Vamos a mencionarlas:

  1. SshFS: Un programa que “monta” un directorio vía SSH como un directorio local. Útil si se trabaja con SourceForge y similares. (http://fuse.sourceforge.net/sshfs.html)
  2. SMB for FUSE: Un programa que “monta” las redes Microsoft como directorios locales usando Samba. Útil si se integrase con las distribuciones o con el propio código de Samba para evitar descargar manualmente archivos. (http://www.ricardis.tudelft.nl/~vincent/fusesmb/)
  3. GmailFS: Un programa que usa una cuenta de Gmail como disco duro. Hay que advertir que ese uso está prohibido por Google en sus reglas de uso, pero sirve para lo que sirve. (http://richard.jones.name/google-hacks/gmail-filesystem/gmail-filesystem.html)
  4. HTTPFS: Un programa que monta un directorio HTTP dando la impresión de descargar “a la velocidad de la luz” cuando realmente descarga si el usuario realiza alguna operación con el archivo o los archivos online. (http://httpfs.sourceforge.net/)
  5. HTTP-FUSE-KNOPPIX: Un proyecto Japonés muy curioso y extravagante. Es una ISO de Knoppix de muy reducido tamaño (Varía entre los 5 MB a los 290 MB) que contiene sólo el sistema base mientras que el resto lo obtiene por Internet, montando lo que descarga en la raíz. Esto es útil para no descargar la ISO completa de 3.9 GB. (http://unit.aist.go.jp/itri/knoppix/http-fuse/index-en.html)
  6. CurlFtpFS: Un programa que monta un directorio FTP como si fuera un directorio local. Muy útil si se descarga de sitios FTP o se trabaja con webs. (http://curlftpfs.sourceforge.net/)
  7. FUSEISO: Un programa que monta una imagen ISO y demás formatos de imágenes de CD como .nrg. (https://sourceforge.net/projects/fuseiso/)
  8. BtSlave: Es un proyecto que permite “bajar más rápido” de BitTorrent al dejar montada como directorio el .torrent, por lo que sube el ratio de Upload y se beneficia la descarga. Está en Alpha. (http://btslave.sourceforge.net/)

Según la propia web de FUSE es relativamente sencillo crear los sistemas de archivos (Un sistema de ejemplo posee menos de 100 líneas) y existen bindings a varios lenguajes como C++, C#, Java, Python, etc).Aclarar que me enteré de la existencia de FUSE através del blog de Necudeco.

FUSE en Wikipedia

FUSE en SouceForge