1 poin oleh GN⁺ 2024-10-13 | 1 komentar | Bagikan ke WhatsApp
  • Memulai Panduan Menulis Sistem Berkas FUSE dengan Python

    • Setelah percakapan dengan Eeveelweezel di DebConf22, ia diundang untuk menyiapkan presentasi di Chicago Python User Group.
    • Ia tidak terlalu sering menggunakan Python, tetapi mengajarkannya sebagai bahasa yang mudah dipahami mahasiswa.
    • Ia menggunakan FIUnamFS, sebuah sistem berkas sederhana, sebagai proyek kelas dan mendorong mahasiswa untuk menyediakan antarmuka transparan menggunakan FUSE.
  • Kesulitan Implementasi Sistem Berkas FUSE

    • Membangun sistem berkas berbasis FUSE di Python bukan hal yang mudah.
    • Ada berbagai contoh dan halaman web, tetapi kebanyakannya sudah usang dan sulit diikuti.
    • Di Python ada berbagai antarmuka seperti python-fuse, Pyfuse, dan Fusepy.
  • Memulai Proyek GitLab

    • Ia mendaftarkan proyek GitLab untuk menyediakan panduan menulis sistem berkas berbasis FUSE dengan Python.
    • Ia menambahkan berbagai tugas secara bertahap, termasuk implementasi sistem berkas berbasis RAM dan berbasis passthrough.
    • Agar mahasiswa dapat belajar lewat contoh yang menarik dan berguna, ia menambahkan ide seperti sistem berkas DNS, sistem berkas kompilasi Markdown real-time, sistem berkas dekompresi, dan sistem berkas penghapus komentar.
  • Rencana Presentasi dan Pengajaran

    • Ia akan presentasi di ChiPy, serta di Jornadas Regionales de Software Libre di Santa Fe, Argentina, dan nerdear.la di Mexico City.
    • Ia berencana membagikan proyek ini kepada mahasiswa dan mendorong minat terhadap implementasi FUSE di Python.
  • Ringkasan GN⁺

    • Artikel ini memberikan informasi yang berguna bagi orang-orang yang tertarik mengimplementasikan sistem berkas FUSE dengan Python.
    • Melalui berbagai contoh dan panduan bertahap, artikel ini membantu mahasiswa belajar dengan lebih mudah.
    • Upaya untuk mengatasi kesulitan implementasi FUSE menonjol, dan niat untuk berkontribusi pada komunitas Python dinilai positif.
    • Proyek dengan fungsi serupa antara lain Dokan dan WinFsp.

1 komentar

 
GN⁺ 2024-10-13
Komentar Hacker News
  • Di GitHub libfuse ada contoh-contoh bagus yang justru memperlihatkan kompleksitas C/C++ yang meningkat

    • passthrough.c mencerminkan file system yang sudah ada, tetapi performanya kurang baik
    • passthrough_fh.c sedikit lebih baik dari sisi performa
    • passthrough_ll.c diimplementasikan dengan API level rendah dan merupakan yang terbaik di antara ketiganya
    • passthrough_hp.cc adalah versi performa tinggi yang ditulis dalam C++
    • Proyek FUSE yang menarik antara lain membagi file besar menjadi segmen, menampilkan snapshot inkremental ZFS sebagai file, dan kompresi file system transparan
  • Selain FUSE, file system virtual juga bisa diimplementasikan melalui protokol 9p

    • Pengalaman menggunakan Python dengan py9p lebih baik dibanding fuse-python
    • Layanan 9p bisa di-mount melalui FUSE, dan menggunakan server diod 9p
    • Secara keseluruhan, ini ekosistem yang menarik untuk dijelajahi
  • Pernah memulai proyek untuk mengubah Jira menjadi file system menggunakan FUSE

    • Menggunakan ID issue sebagai nama direktori memudahkan otomasi, tetapi sulit dijelajahi manusia
    • Masalah ini diselesaikan dengan menambahkan tipe direktori issue-type-with-summary
  • Orang yang tertarik pada FUSE mungkin juga tertarik pada proyek CUSE

    • CUSE adalah proyek untuk mengemulasikan hardware di user space
    • Pernah menulis perangkat hardware yang mendukung IOCTL menggunakan Python
    • CUSE awalnya diimplementasikan untuk membuat perangkat suara di user space
  • Ada berbagai opsi mount FUSE, dan JuiceFS menarik untuk me-mount object storage sebagai file system POSIX

  • Belakangan ini makin banyak orang mengimplementasikan file system berbasis NFS

    • Di Mac, rclone mendukung ini
  • azuline/rosé adalah pengelola musik dengan file system virtual, dan menyediakan codebase yang bagus untuk dipelajari

  • Menggunakan FUSE agar Makefile bisa menentukan DAG untuk sumber daya arbitrer

    • Misalnya, ada file system FUSE yang mengekspos status cluster Kubernetes
  • Pernah membuat file system FUSE Python untuk berinteraksi dengan dokuwiki

    • Membuat wrapper bernama easyfuse untuk mengimplementasikan API level rendah yang tidak terkait dengan dokuwiki
  • Pernah menulis proyek kecil yang mengekspos repositori git menggunakan FUSE

    • Melalui folder .git, semua commit dan branch diekspos sebagai foldernya sendiri
    • Semuanya bersifat read-only