-
เริ่มต้นคู่มือการเขียนระบบไฟล์ FUSE ด้วย Python
- หลังจากการพูดคุยกับ Eeveelweezel ในงาน DebConf22 ผู้เขียนได้รับเชิญให้เตรียมการบรรยายสำหรับ Chicago Python User Group
- แม้จะไม่ได้ใช้ Python บ่อยนัก แต่ก็กำลังสอนด้วยภาษาที่นักศึกษาสามารถเข้าใจได้ง่าย
- กำลังใช้ระบบไฟล์อย่างง่ายชื่อ FIUnamFS เป็นโปรเจ็กต์ในชั้นเรียน และแนะนำให้นักศึกษาใช้ FUSE เพื่อมอบอินเทอร์เฟซที่โปร่งใส
-
ความยากในการพัฒนาระบบไฟล์ FUSE
- การสร้างระบบไฟล์ที่ใช้ FUSE บน Python ไม่ใช่เรื่องง่าย
- แม้จะมีตัวอย่างและหน้าเว็บจำนวนมาก แต่ส่วนใหญ่ค่อนข้างเก่าและยากต่อการทำตาม
- ใน Python มีอินเทอร์เฟซหลากหลายแบบ เช่น python-fuse, Pyfuse และ Fusepy
-
เริ่มต้นโปรเจ็กต์บน GitLab
- ได้สร้างโปรเจ็กต์บน GitLab เพื่อจัดทำคู่มือสำหรับการเขียนระบบไฟล์ที่ใช้ FUSE ด้วย Python
- เพิ่มงานหลายอย่างแบบเป็นขั้นตอน รวมถึงการพัฒนาระบบไฟล์แบบใช้ RAM และแบบ passthrough
- เพื่อให้นักศึกษาเรียนรู้ผ่านตัวอย่างที่ทั้งสนุกและมีประโยชน์ จึงเพิ่มไอเดียอย่างระบบไฟล์ DNS, ระบบไฟล์คอมไพล์ Markdown แบบเรียลไทม์, ระบบไฟล์แตกไฟล์บีบอัด และระบบไฟล์ลบคอมเมนต์
-
แผนการบรรยายและการสอน
- มีกำหนดจะบรรยายที่ ChiPy และจะบรรยายที่งาน Jornadas Regionales de Software Libre ใน Santa Fe, Argentina รวมถึง nerdear.la ใน Mexico City ด้วย
- มีแผนจะแชร์โปรเจ็กต์นี้ให้นักศึกษา และกระตุ้นให้พวกเขาสนใจการพัฒนา FUSE บน Python
-
สรุปโดย GN⁺
- บทความนี้ให้ข้อมูลที่เป็นประโยชน์สำหรับผู้ที่สนใจพัฒนาระบบไฟล์ FUSE ด้วย Python
- ด้วยตัวอย่างที่หลากหลายและคู่มือแบบเป็นขั้นตอน จึงช่วยให้นักศึกษาเรียนรู้ได้ง่าย
- ความพยายามในการแก้ปัญหาความยากของการพัฒนา FUSE นั้นโดดเด่น และเจตนาที่จะมีส่วนร่วมกับชุมชน Python ก็ได้รับการประเมินในเชิงบวก
- โปรเจ็กต์ที่มีความสามารถคล้ายกันได้แก่ Dokan และ WinFsp
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ใน GitHub ของ libfuse มีตัวอย่างที่ดีซึ่งแสดงให้เห็นความซับซ้อนที่เพิ่มขึ้นของ C/C++
passthrough.cมิเรอร์ไฟล์ซิสเต็มที่มีอยู่ แต่ประสิทธิภาพไม่ดีpassthrough_fh.cมีประสิทธิภาพดีกว่าเล็กน้อยpassthrough_ll.cถูกพัฒนาด้วย API ระดับล่าง และดีที่สุดในสามตัวนี้passthrough_hp.ccเป็นเวอร์ชันประสิทธิภาพสูงที่เขียนด้วย C++นอกจาก FUSE แล้ว ยังสามารถทำ virtual file system ผ่านโปรโตคอล 9p ได้
py9pดีกว่าfuse-pythondiod 9pเคยเริ่มโปรเจกต์ที่ใช้ FUSE เพื่อแปลง Jira ให้เป็นไฟล์ซิสเต็ม
issue-type-with-summaryคนที่สนใจ FUSE อาจสนใจโปรเจกต์ CUSE ด้วย
มีตัวเลือกการเมานต์ของ FUSE หลากหลายแบบ และ JuiceFS ก็น่าสนใจสำหรับการเมานต์ object storage ให้เป็น POSIX file system
ช่วงหลังมีคนทำไฟล์ซิสเต็มบนพื้นฐาน NFS เพิ่มขึ้น
rcloneรองรับสิ่งนี้azuline/roséเป็นตัวจัดการเพลงที่มี virtual file system และมี codebase ที่เหมาะแก่การศึกษาใช้ FUSE เพื่อให้ Makefile สามารถระบุ DAG สำหรับรีซอร์สตามอำเภอใจได้
เคยสร้าง Python FUSE file system เพื่อโต้ตอบกับ dokuwiki
easyfuseเพื่ออิมพลีเมนต์ API ระดับล่างที่ไม่เกี่ยวกับ dokuwikiเคยเขียนโปรเจกต์เล็ก ๆ ที่ใช้ FUSE เพื่อเปิดเผย git repository
.git