1 puntos por GN⁺ 2024-10-13 | 1 comentarios | Compartir por WhatsApp
  • Inicio de una guía para escribir sistemas de archivos FUSE con Python

    • Después de una conversación con Eeveelweezel en DebConf22, recibió una invitación para preparar una charla en el Chicago Python User Group.
    • No usa Python con tanta frecuencia, pero lo enseña en un lenguaje que los estudiantes pueden entender fácilmente.
    • Está usando un sistema de archivos sencillo llamado FIUnamFS como proyecto de clase, y anima a los estudiantes a usar FUSE para ofrecer una interfaz transparente.
  • Dificultades de implementar un sistema de archivos FUSE

    • Construir un sistema de archivos basado en FUSE en Python no es sencillo.
    • Hay varios ejemplos y páginas web, pero la mayoría son antiguos y difíciles de seguir.
    • En Python existen varias interfaces, como python-fuse, Pyfuse y Fusepy.
  • Inicio del proyecto en GitLab

    • Registró un proyecto en GitLab para ofrecer una guía sobre cómo escribir un sistema de archivos basado en FUSE con Python.
    • Añadió varias tareas paso a paso, incluyendo implementaciones de sistemas de archivos basados en RAM y de tipo pass-through.
    • También agregó ideas como un sistema de archivos DNS, un sistema de archivos que compila Markdown en tiempo real, un sistema de archivos de descompresión y un sistema de archivos que elimina comentarios, para que los estudiantes aprendan con ejemplos divertidos y útiles.
  • Planes de presentaciones y enseñanza

    • Tiene previsto presentar en ChiPy, así como en las Jornadas Regionales de Software Libre en Santa Fe, Argentina, y en nerdear.la en Ciudad de México.
    • Planea compartir este proyecto con sus estudiantes y motivarlos a interesarse por la implementación de FUSE en Python.
  • Resumen de GN⁺

    • Este artículo ofrece información útil para quienes estén interesados en implementar sistemas de archivos FUSE con Python.
    • Ayuda a que los estudiantes aprendan fácilmente mediante varios ejemplos y una guía paso a paso.
    • Destaca el esfuerzo por resolver las dificultades de la implementación de FUSE y se valora positivamente la intención de contribuir a la comunidad de Python.
    • Proyectos con funciones similares incluyen Dokan y WinFsp.

1 comentarios

 
GN⁺ 2024-10-13
Comentarios de Hacker News
  • En el GitHub de libfuse hay buenos ejemplos que incrementan la complejidad de C/C++

    • passthrough.c refleja un sistema de archivos existente, pero no tiene buen rendimiento
    • passthrough_fh.c tiene un rendimiento un poco mejor
    • passthrough_ll.c está implementado con la API de bajo nivel y es el mejor de los tres
    • passthrough_hp.cc es una versión de alto rendimiento escrita en C++
    • Entre los proyectos interesantes con FUSE están dividir archivos grandes en segmentos, mostrar snapshots incrementales de ZFS como archivos y la compresión transparente del sistema de archivos
  • Además de FUSE, también es posible implementar un sistema de archivos virtual mediante el protocolo 9p

    • La experiencia con Python usando py9p fue mejor que con fuse-python
    • Se puede montar un servicio 9p a través de FUSE, y se usó el servidor diod 9p
    • En general, es un ecosistema interesante para explorar
  • Se inició un proyecto para convertir Jira en un sistema de archivos usando FUSE

    • Usar el ID del issue como nombre de directorio facilitó la automatización, pero hacía difícil la exploración para humanos
    • El problema se resolvió agregando el tipo de directorio issue-type-with-summary
  • A quienes les interese FUSE también podría interesarles el proyecto CUSE

    • CUSE es un proyecto para emular hardware en espacio de usuario
    • Se escribió un dispositivo de hardware con soporte para IOCTL usando Python
    • CUSE se implementó originalmente para crear dispositivos de sonido en espacio de usuario
  • Existen varias opciones de montaje de FUSE, y JuiceFS resulta interesante para montar almacenamiento de objetos como un sistema de archivos POSIX

  • Recientemente está aumentando la cantidad de personas que implementan sistemas de archivos basados en NFS

    • En Mac, rclone soporta esto
  • azuline/rosé es un gestor de música con un sistema de archivos virtual, y ofrece una buena base de código para aprender

  • Se usó FUSE para permitir que un Makefile especifique un DAG sobre recursos arbitrarios

    • Por ejemplo, existe un sistema de archivos FUSE que expone el estado de un clúster de Kubernetes
  • Se creó un sistema de archivos FUSE en Python para interactuar con dokuwiki

    • Se hizo un wrapper llamado easyfuse para implementar la API de bajo nivel no relacionada con dokuwiki
  • Se escribió un pequeño proyecto que expone un repositorio git usando FUSE

    • A través de la carpeta .git, expone todos los commits y ramas como sus propias carpetas
    • Todo es de solo lectura