1 points par GN⁺ 2024-10-13 | 1 commentaires | Partager sur WhatsApp
  • Début d’un guide pour écrire un système de fichiers FUSE en Python

    • Après une discussion avec Eeveelweezel à la DebConf22, l’auteur a été invité à préparer une présentation pour le Chicago Python User Group.
    • Même s’il n’utilise pas souvent Python, il l’enseigne comme un langage facile à comprendre pour les étudiants.
    • Il utilise un système de fichiers simple appelé FIUnamFS comme projet de cours et encourage les étudiants à fournir une interface transparente à l’aide de FUSE.
  • Les difficultés de l’implémentation d’un système de fichiers FUSE

    • Construire un système de fichiers basé sur FUSE en Python n’est pas simple.
    • Il existe de nombreux exemples et pages web, mais la plupart sont anciens et difficiles à suivre.
    • En Python, il existe diverses interfaces comme python-fuse, Pyfuse et Fusepy.
  • Lancement du projet GitLab

    • L’auteur a créé un projet GitLab pour proposer un guide sur l’écriture d’un système de fichiers basé sur FUSE en Python.
    • Il y ajoute progressivement plusieurs tâches, notamment l’implémentation de systèmes de fichiers en RAM et en mode pass-through.
    • Pour aider les étudiants à apprendre avec des exemples à la fois amusants et utiles, il a ajouté des idées comme un système de fichiers DNS, un système de fichiers de compilation Markdown en temps réel, un système de fichiers de décompression et un système de fichiers supprimant les commentaires.
  • Présentations et plan de formation

    • Une présentation est prévue à ChiPy, ainsi qu’aux Jornadas Regionales de Software Libre à Santa Fe, en Argentine, et à nerdear.la à Mexico.
    • L’auteur prévoit de partager ce projet avec ses étudiants et de susciter leur intérêt pour l’implémentation de FUSE en Python.
  • Résumé de GN⁺

    • Cet article fournit des informations utiles à celles et ceux qui s’intéressent à l’implémentation de systèmes de fichiers FUSE en Python.
    • Grâce à divers exemples et à un guide étape par étape, il aide les étudiants à apprendre facilement.
    • L’effort pour surmonter les difficultés de l’implémentation de FUSE est remarquable, et l’intention de contribuer à la communauté Python est évaluée positivement.
    • Parmi les projets offrant des fonctions similaires figurent Dokan et WinFsp.

1 commentaires

 
GN⁺ 2024-10-13
Commentaire Hacker News
  • Le GitHub de libfuse contient de bons exemples qui montrent la complexité croissante du C/C++

    • passthrough.c reflète un système de fichiers existant, mais les performances sont médiocres
    • passthrough_fh.c offre des performances légèrement meilleures
    • passthrough_ll.c est implémenté avec l’API bas niveau et constitue le meilleur des trois
    • passthrough_hp.cc est une version haute performance écrite en C++
    • Parmi les projets FUSE intéressants, on trouve le découpage de gros fichiers en segments, l’exposition de snapshots incrémentaux ZFS sous forme de fichiers, ou encore la compression transparente du système de fichiers
  • En plus de FUSE, il est aussi possible d’implémenter un système de fichiers virtuel via le protocole 9p

    • L’expérience en Python avec py9p a été meilleure qu’avec fuse-python
    • Il est possible de monter un service 9p via FUSE, et diod 9p server a été utilisé
    • Dans l’ensemble, c’est un écosystème agréable à explorer
  • Un projet a été lancé pour transformer Jira en système de fichiers avec FUSE

    • L’utilisation des ID d’issues comme noms de répertoires facilitait l’automatisation, mais rendait la navigation difficile pour les humains
    • Le problème a été résolu en ajoutant un type de répertoire issue-type-with-summary
  • Les personnes intéressées par FUSE pourraient aussi s’intéresser au projet CUSE

    • CUSE est un projet visant à émuler du matériel en espace utilisateur
    • Un périphérique matériel prenant en charge IOCTL a été écrit en Python
    • CUSE a été initialement implémenté pour créer des périphériques audio en espace utilisateur
  • Il existe diverses options de montage FUSE, et JuiceFS est intéressant pour monter du stockage objet comme système de fichiers POSIX

  • Récemment, de plus en plus de personnes implémentent des systèmes de fichiers basés sur NFS

    • Sur Mac, rclone le prend en charge
  • azuline/rosé est un gestionnaire de musique avec système de fichiers virtuel, qui offre une bonne base de code pour apprendre

  • FUSE permet à un Makefile de spécifier un DAG pour des ressources arbitraires

    • Il existe par exemple un système de fichiers FUSE qui expose l’état d’un cluster Kubernetes
  • Un système de fichiers FUSE en Python a été créé pour interagir avec dokuwiki

    • Un wrapper appelé easyfuse a été créé pour implémenter l’API bas niveau sans lien avec dokuwiki
  • Un petit projet a été écrit pour exposer un dépôt git avec FUSE

    • Le dossier .git expose tous les commits et toutes les branches comme leurs propres dossiers
    • Tout est en lecture seule