ประโยชน์และข้อเสียของการใช้ระบบไฟล์ FuseFS คืออะไร


19

ฉันรู้ว่าระบบไฟล์บางส่วนนำเสนอตัวเองผ่าน Fuse และฉันสงสัยเกี่ยวกับข้อดีข้อเสียของวิธีการนี้

คำตอบ:


17

ฉันไม่ดีถ้าคุณหมายถึงระบบไฟล์บนดิสก์จริงหรือระบบไฟล์ใด ๆ ฉันไม่เคยเห็นระบบไฟล์ปกติใช้ FUSE แม้ว่าฉันคิดว่าเป็นไปได้ ประโยชน์หลักของ FUSE คือให้คุณนำเสนอบางสิ่งแก่แอปพลิเคชัน (หรือผู้ใช้) ที่ดูเหมือนระบบไฟล์ แต่จริงๆแล้วเรียกฟังก์ชั่นภายในแอปพลิเคชันของคุณเมื่อผู้ใช้พยายามทำสิ่งต่าง ๆ เช่นรายการไฟล์ในไดเรกทอรีหรือสร้างใหม่ ไฟล์. Plan9เป็นที่รู้จักกันดีในการพยายามทำให้ทุกอย่างสามารถเข้าถึงได้ผ่านระบบไฟล์และ/procระบบไฟล์หลอกมาจากพวกเขา FUSE เป็นวิธีสำหรับแอปพลิเคชันที่จะติดตามรูปแบบนั้นได้อย่างง่ายดาย

ตัวอย่างเช่นต่อไปนี้เป็นภาพหน้าจอของระบบไฟล์ FUSE (ที่โดดเด่นมาก) ที่ให้การเข้าถึงข้อมูลไซต์ SE:

สกรีนช็อตของระบบไฟล์ FUSE ที่ใช้งานจริง

จริงๆแล้วไม่มีไฟล์เหล่านั้นอยู่จริง เมื่อlsถามถึงรายการไฟล์ในไดเรกทอรี FUSE เรียกว่าฟังก์ชั่นในโปรแกรมของฉันซึ่งได้ร้องขอ API ไปยังเว็บไซต์นี้เพื่อโหลดข้อมูลเกี่ยวกับผู้ใช้ 73 (ฉัน); catพยายามอ่านdisplay_nameและwebsite_urlเรียกใช้ฟังก์ชันเพิ่มเติมที่ส่งคืนข้อมูลแคชจากหน่วยความจำโดยไม่มีสิ่งใดมีอยู่จริงบนดิสก์


3
มีการใช้งานของ FUSE เป็นFAT , NTFS , ISO9660 , ext2และอื่น ๆ อีกมากมาย
Gilles 'หยุดความชั่วร้าย'

2
คุณจะพบกับระบบไฟล์งานหนักที่นำมาใช้ในฟิวส์: LessFS, GlusterFS, MooseFS GFS ของ Google (ไม่ใช่ POSIX) ก็ทำงานใน userspace เช่นกัน
Tobu

คุณพบแอปนั้นอยู่ที่ไหน!!?!
นาธานออสมัน

4
@ George ฉันเขียนเมื่อฉันยุ่งกับ SO API มันไม่ได้ใช้เส้นทางใด ๆ ยกเว้น / ผู้ใช้ดังนั้นโดยทั่วไปคุณจะเห็นคุณสมบัติที่ใช้งานทั้งหมดในภาพหน้าจอนั้น มันแค่ดูว่ามันยากแค่ไหน
Michael Mrozek

5
@ George ฉันวางไว้บนgithub
Michael Mrozek

19

ระบบไฟล์ยูนิกซ์มีการใช้งานแบบดั้งเดิมในเคอร์เนล FUSEอนุญาตให้ระบบไฟล์ใช้งานโดยโปรแกรมผู้ใช้

ระบบไฟล์ในเคอร์เนลเหมาะสำหรับระบบไฟล์หลักสำหรับโปรแกรมและข้อมูล:

  • สามารถใช้กับสื่อบันทึกการบูต (โปรแกรมที่ใช้ระบบไฟล์ FUSE จะต้องโหลดจากที่อื่น)
  • พวกเขาแข็งแกร่งขึ้นในการที่พวกเขาจะไม่หายไปเนื่องจากกระบวนการหยุดทำงานหรือถูกฆ่าโดยไม่ได้ตั้งใจ
  • มันค่อนข้างเร็วกว่า

ระบบไฟล์ FUSE มีข้อได้เปรียบอื่น ๆ ซึ่งส่วนใหญ่หมุนรอบตัวได้อย่างยืดหยุ่น:

  • พวกเขาสามารถโหลดและติดตั้งโดยผู้ใช้ทั่วไปดังนั้นพวกเขาจึงสะดวกสำหรับระบบไฟล์ที่ผู้ใช้มักจะติดด้วยตนเอง: สำหรับการเข้าถึงเครือข่ายผ่านไฟล์เก็บถาวรสำหรับสื่อที่ถอดได้ ฯลฯ
  • หากโปรแกรมควบคุมระบบไฟล์ FUSE ขัดข้องจะไม่ทำให้เคอร์เนลของคุณตื่นตระหนก: คุณจะไม่เห็นอะไรที่เลวร้ายไปกว่าข้อผิดพลาดของ I / O ในแอปพลิเคชันที่เข้าถึงระบบไฟล์
  • สามารถตั้งโปรแกรมได้อย่างรวดเร็ว มีการเชื่อมโยง FUSEสำหรับภาษาสคริปต์หลายภาษาซึ่งโปรแกรมควบคุมระบบไฟล์ FUSE ที่มีประโยชน์สามารถเขียนในโค้ดไม่กี่ร้อยบรรทัด
  • พวกเขาสามารถใช้งานได้อย่างรวดเร็วทั้งสองเพราะไม่มีความจำเป็นสำหรับการแทรกแซงผู้ดูแลระบบเพื่อติดตั้งพวกเขาและเนื่องจากพวกเขาสามารถย้ายได้อย่างง่ายดายระหว่างระบบปฏิบัติการที่ได้รับการสนับสนุน
  • ไม่มีปัญหาลิขสิทธิ์ที่เกี่ยวข้องกับการเชื่อมโยงแบบคงที่กับเคอร์เนล (นี้มีผลกระทบต่อเป็นZFS )

7

FUSE ไม่ใช่ระบบไฟล์จริง ๆ แต่รหัสที่อนุญาตให้ใช้กับระบบไฟล์เป็นกระบวนการแทนโมดูลเคอร์เนล

หนึ่งในประโยชน์ที่มีประโยชน์ที่สุดของ FUSE คือการอนุญาตให้รหัส GPL "ผสม" กับที่ไม่ใช่ GPL ตัวอย่างเช่น Gnu / Linux และ ZFS http://zfs-fuse.net/หรือ NTFS-3G บนระบบปฏิบัติการหลายระบบเช่น OpenSolaris และ * BSD http://www.tuxera.com/community/ntfs-3g-download/

ข้อเสียเปรียบหลักคือผลกระทบต่อประสิทธิภาพเมื่อเทียบกับไดรเวอร์ (เคอร์เนล)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.