نظام الملفات في مساحة المستخدم

نظام الملفات في مساحة المستخدم ( FUSE ) هو واجهة برمجية لأنظمة تشغيل يونكس والأنظمة الشبيهة بيونكس، تُمكّن المستخدمين غير المتميزين من إنشاء أنظمة ملفاتهم الخاصة دون تعديل شفرة النواة . ويتحقق ذلك بتشغيل شفرة نظام الملفات في مساحة المستخدم ، بينما لا يوفر مُكوّن FUSE سوى جسر للوصول إلى واجهات النواة الفعلية.

يتوفر FUSE لأنظمة Linux و FreeBSD و OpenBSD و NetBSD (كـ puffs ) و OpenSolaris و Minix 3 و macOS و [ 2 ] MorphOS (كـ filesysbox.library) و Windows . [ 3 ]

FUSE هو برنامج مجاني تم إصداره في الأصل بموجب شروط رخصة جنو العمومية العامة ورخصة جنو العمومية الصغرى .

تاريخ

يملك مستخدمو الخطة 9 أمر ftpfs الذي يتصل بخادم FTP، ويضيف الملفات البعيدة إلى مساحة أسمائهم، ويترجم عمليات الخطة 9 إلى عمليات FTP. يتيح هذا للأدوات القياسية (مثل grep وsed) العمل مباشرةً على الملفات البعيدة. ومنذ ذلك الحين، ظهرت العديد من تطبيقات ftpfs و sshfs .

كان نظام FUSE في الأصل جزءًا من AVFS ( نظام الملفات الافتراضي )، وهو نظام ملفات تأثر بشكل كبير بمفهوم المترجم الخاص بنظام GNU Hurd . [ 4 ] وقد حل محل نظام ملفات مساحة المستخدم في لينكس، ووفر واجهة ترجمة باستخدام lufislibfuse1.

صدرت FUSE في الأصل بموجب شروط رخصة جنو العمومية العامة ورخصة جنو العمومية الصغرى ، ثم أُعيد تنفيذها لاحقًا كجزء من نظام FreeBSD الأساسي [ 5 ] وصدرت بموجب شروط رخصة Simplified BSD . وفي مارس 2013، أصدر سيلفستر غالون نسخةً مُعاد تنفيذها بموجب رخصة ISC [ 6 ] ، وتم دمجها في OpenBSD في يونيو 2013 [ 7 ].

تم دمج FUSE في شجرة نواة لينكس الرئيسية في إصدار النواة 2.6.14 (2005) [ 8 ]

اتبعت مكتبة libfuse ، وهي جزء من نظام FUSE يعمل في مساحة المستخدم ، وتيرة تطوير نواة لينكس عمومًا، مع الحفاظ على توافق "بأفضل جهد" مع أنظمة BSD المشتقة. ويُعزى ذلك إلى أن نواة FUSE تُبلغ عن "مستويات الميزات" الخاصة بها، أو إصداراتها. ويُستثنى من ذلك نسخة FUSE المُعدّلة لنظام macOS، وهي OSXFUSE، التي تحتوي على اختلافات كثيرة جدًا تجعل مشاركة المكتبة أمرًا غير ممكن. [ 9 ] ويُمثل إصدار libfuse3 نقطة تحول في تاريخ libfuse، حيث يتضمن بعض التحسينات غير المتوافقة في الواجهة والأداء، مقارنةً بإصدار libfuse2 الأقدم، والذي يخضع حاليًا لوضع الصيانة. [ 10 ]

بما أن بروتوكول FUSE الخاص بنواة النظام ومساحة المستخدم مُعَدٌّ للإصدارات ومتاحٌ للعموم، يُمكن للمبرمج اختيار استخدام جزءٍ مختلفٍ من التعليمات البرمجية بدلاً من مكتبة libfuse مع الحفاظ على إمكانية التواصل مع وظائف FUSE في النواة. من جهةٍ أخرى، تُوفّر مكتبة libfuse ومنافذها المتعددة واجهةً عالية المستوى قابلةً للنقل يُمكن تطبيقها على نظامٍ لا يحتوي على وظيفة FUSE.

المنافذ، والتفرعات، وإعادة التنفيذ

تختلف نسخة FUSE لنظام التشغيل Mac OS X اختلافًا كبيرًا عن أنظمة libfuse العادية، ما يحول دون مشاركتها نفس المكتبة . بدأ تطويرها كمشروع MacFUSE من جوجل عام 2009، ثم تفرعت منه OSXFUSE عام 2011 على يد بنيامين فليشر. أُعيد تسمية OSXFUSE إلى macFUSE عام 2020 بعد تغيير اسم Mac OS X إلى macOS. [ 11 ] يتكون macFUSE الحديث من إضافة نواة مغلقة المصدر وثلاث مكتبات مفتوحة المصدر لمساحة المستخدم: نسخة متفرعة من libfuse2، ونسخة متفرعة من libfuse3، وإطار عمل Objective-C للوصول إلى وظائف macFUSE الخاصة. كان آخر إصدار مفتوح المصدر بالكامل هو OSXFUSE 3.8.3 عام 2018. [ 12 ]

WinFsp هي واجهة برنامج تشغيل نظام الملفات في مساحة المستخدم لنظام التشغيل Windows، وقد تم إصدارها بموجب رخصة GPLv3. وهي تُنفذ واجهات برمجة التطبيقات libfuse2 و libfuse3 الخاصة بلغة C بالإضافة إلى واجهات برمجة التطبيقات الخاصة بها للغة C و .NET. [ 13 ]

يستخدم OpenHarmony نسخة معدلة من libfuse3 كمكون خارجي مع تعديلات طفيفة. من غير الواضح ما إذا كان هذا الاستخدام مقتصراً على فروع OpenHarmony المبنية على نواة لينكس (وهو أمر بسيط)، أم أنه يشمل أيضاً نواة LiteOS وUniProton المخصصة. [ 14 ] [ 15 ]

التشغيل والاستخدام

مخطط انسيابي يوضح آلية عمل FUSE: يُعاد توجيه طلب من مساحة المستخدم لعرض قائمة الملفات (ls -l /tmp/fuse) بواسطة النواة عبر نظام الملفات الافتراضي (VFS) إلى FUSE. ثم يُنفذ FUSE برنامج المعالجة المُسجل (./hello) ويُمرر إليه الطلب (ls -l /tmp/fuse). يُعيد برنامج المعالجة استجابةً إلى FUSE، والتي بدورها تُعاد توجيهها إلى برنامج مساحة المستخدم الذي أرسل الطلب أصلاً.

لتطبيق نظام ملفات جديد، libfuseيلزم كتابة برنامج معالج مرتبط بالمكتبة المرفقة. يتمثل الغرض الرئيسي من هذا البرنامج في تحديد كيفية استجابة نظام الملفات لطلبات القراءة/الكتابة/الاستعلام. يُستخدم البرنامج أيضًا لتركيب نظام الملفات الجديد. عند تركيب نظام الملفات، يتم تسجيل المعالج في نواة النظام. إذا أصدر المستخدم الآن طلبات قراءة/كتابة/استعلام لنظام الملفات المُركّب حديثًا، تقوم النواة بإعادة توجيه هذه الطلبات إلى المعالج، ثم تُرسل استجابة المعالج إلى المستخدم.

إلغاء تحميل نظام ملفات قائم على FUSE باستخدام fusermountالأمر

يُعدّ FUSE مفيدًا بشكل خاص لكتابة أنظمة الملفات الافتراضية . على عكس أنظمة الملفات التقليدية التي تتعامل أساسًا مع البيانات الموجودة على وحدات التخزين الكبيرة، فإن أنظمة الملفات الافتراضية لا تخزن البيانات بنفسها، بل تعمل كعرض أو ترجمة لنظام ملفات أو جهاز تخزين موجود.

من حيث المبدأ، يمكن تصدير أي مورد متاح لتطبيق FUSE كنظام ملفات.

يتضمن إصدار FUSE في نواة لينكس العديد من الميزات الاختيارية التي يمكن تمكينها لتحسين الأداء، بما في ذلك التخزين المؤقت للكتابة المؤجلة (بدلاً من الكتابة المباشرة) وتمرير الإدخال/الإخراج.

التطبيقات

أنظمة الملفات على القرص

يمكن تطبيق أنظمة الملفات التقليدية الموجودة على القرص في مساحة المستخدم باستخدام FUSE، على سبيل المثال لأسباب تتعلق بالتوافق أو الترخيص.

  • نظام ملفات الشريط الخطي : يسمح بالوصول إلى الملفات المخزنة على الشريط المغناطيسي بطريقة مشابهة لتلك الموجودة على القرص أو محركات أقراص الفلاش القابلة للإزالة.
  • نظام الملفات NTFS-3G ونظام الملفات NTFS المقيّد ، مما يسمح بالوصول إلى أنظمة ملفات NTFS .
  • retro-fuse : هو نظام ملفات يعمل في مساحة المستخدم، ويوفر طريقة لتركيب أنظمة الملفات التي أنشأتها أنظمة يونكس القديمة على أنظمة التشغيل الحديثة. يدعم الإصدار الحالي من retro-fuse تركيب أنظمة الملفات التي أنشأتها الإصدارات الخامس والسادس والسابع من Research Unix من مختبرات Bell ، بالإضافة إلى الأنظمة المبنية على 2.9BSD و2.11BSD.

أنظمة الملفات متعددة الطبقات

يمكن لأنظمة ملفات FUSE إنشاء عرض لنظام الملفات الأساسي، وتحويل الملفات بطريقة ما.

أنظمة أرشفة ونسخ الملفات الاحتياطية

يمكن لأنظمة ملفات FUSE عرض محتويات الأرشيفات أو مجموعات النسخ الاحتياطية دون الحاجة إلى استخراجها أولاً.

  • أرشيف ماونت
  • أطلس (برنامج النسخ الاحتياطي من روبريك) : نظام ملفات غير قابل للتغيير وموزع، تستخدمه تطبيقات حماية البيانات في إدارة بيانات روبريك السحابية
  • Borg (برنامج النسخ الاحتياطي) : برنامج نسخ احتياطي لإزالة التكرار يسمح بتحميل أرشيفات النسخ الاحتياطي كأنظمة ملفات FUSE.
  • Restic : برنامج نسخ احتياطي مجاني وسريع وفعال وآمن، يستخدم FUSE لتمكينك من استعراض جميع لقطات النسخ الاحتياطي كنظام ملفات عادي.
  • نظام ملفات SPFS هو نظام ملفات خاص ببرنامج Spectrum Protect، مصمم لربط مساحة ملفات خادم النسخ الاحتياطي في أي مكان على خادمك، واستخدام الميزات المضمنة في خادم النسخ الاحتياطي (التشفير، وإزالة التكرار، والضغط، والتصفية، إلخ). وهو نظام ملفات WORM .

عملاء نظام الملفات البعيد/الموزع

  • CernVM-FS : نظام توزيع برامج للقراءة فقط موزع، يتم تنفيذه كنظام ملفات POSIX في مساحة المستخدم (FUSE) باستخدام بروتوكول HTTP، لتقديم البرامج بطريقة سريعة وموثوقة على نطاق عالمي.
  • CloudStore (نظام ملفات Kosmos سابقًا): من خلال التثبيت عبر FUSE، يمكن لأدوات Linux الحالية التفاعل مع CloudStore
  • ExpanDrive : نظام ملفات تجاري يُنفذ بروتوكولات SFTP/FTP/S3/Swift باستخدام FUSE
  • FTPFS
  • GlusterFS : نظام ملفات موزع ومُجمّع يتمتع بالقدرة على التوسع حتى عدة بيتابايت.
  • goofys : نظام ملفات FUSE يسمح بالوصول إلى تخزين Amazon S3/Microsoft Azure مع التركيز على الأداء.
  • google-drive-ocamlfuse هو نظام ملفات FUSE خاص بـ Google Drive، مكتوب بلغة OCaml . يتيح لك هذا النظام ربط Google Drive الخاص بك بنظام Linux.
  • IPFS : نظام ملفات موزع من نظير إلى نظير يسعى إلى ربط جميع أجهزة الحوسبة بنفس نظام الملفات.
  • JuiceFS : نظام ملفات POSIX موزع مبني على Redis و S3.
  • KBFS : نظام ملفات موزع مع تشفير من طرف إلى طرف ومساحة اسم عالمية تعتمد على خدمة Keybase.io التي تستخدم FUSE لإنشاء عمليات ربط ملفات آمنة تشفيرياً.
  • سيستخدم نظام ملفات Lustre Cluster برنامج FUSE لتمكينه من العمل في مساحة المستخدم، مما يتيح إمكانية إنشاء نسخة منه لنظام FreeBSD. [ 16 ] مع ذلك، ستُشغّل نسخة ZFS -Linux من Lustre وحدة إدارة البيانات (DMU) الخاصة بنظام ZFS في مساحة المستخدم. [ 17 ]
  • MinFS : MinFS هو برنامج تشغيل fuse لخادم تخزين الكائنات المتوافق مع Amazon S3. يتيح لك MinFS [ 18 ] ربط حاوية تخزين بعيدة (من مخزن كائنات متوافق مع S3)، كما لو كانت دليلاً محلياً.
  • MooseFS : نظام ملفات مفتوح المصدر وموزع ومتسامح مع الأخطاء، متوفر على كل نظام تشغيل مزود بتطبيق FUSE (Linux، FreeBSD، NetBSD، OpenSolaris، OS X)، قادر على تخزين بيتابايت من البيانات موزعة على عدة خوادم تظهر كمورد واحد.
  • Nexfs : نظام ملفات لينكس تجاري يجمع بين تخزين الكتل والملفات وتخزين السحابة والكائنات المتوافق مع S3 في مجموعة واحدة من التخزين المتوافق مع POSIX.
  • ObjectiveFS : نظام ملفات موزع مع وحدة تخزين كائنات خلفية (Amazon S3 أو Google Cloud Storage أو وحدة تخزين كائنات متوافقة مع S3) باستخدام FUSE
  • يمكن لبرنامج Rclone تثبيت مجموعة متنوعة من وحدات التخزين البعيدة / السحابية باستخدام FUSE.
  • s3fs : يمنح القدرة على ربط حاوية S3 كما لو كانت نظام ملفات محلي.
  • نظام ملفات سيكتور : سيكتور هو نظام ملفات موزع مصمم لعدد كبير من أجهزة الكمبيوتر التجارية. يستخدم سيكتور بروتوكول FUSE لتوفير واجهة نظام ملفات محلية قابلة للتركيب.
  • SSHFS : يوفر الوصول إلى نظام ملفات بعيد من خلال SSH .
  • Transmit: عميل FTP تجاري يضيف أيضًا القدرة على تحميل خوادم WebDAV وSFTP وFTP وAmazon S3 كأقراص في Finder، عبر MacFUSE.
  • WebDrive : نظام ملفات تجاري يدعم بروتوكولات WebDAV وSFTP وFTP وFTPS و Amazon S3
  • ويكيبيديا إف إس : عرض وتعديل مقالات ويكيبيديا كما لو كانت ملفات حقيقية
  • Wuala : كان نظام ملفات موزع متعدد المنصات، قائم على Java ومتكامل تمامًا مع نظام التشغيل. يستخدم FUSE وMacFUSE و CBFS Connect على التوالي لتكامل نظام الملفات، بالإضافة إلى تطبيق قائم على Java يمكن الوصول إليه من أي متصفح ويب يدعم Java (تم إيقاف الخدمة في عام 2015).
  • IndexFS : نظام ملفات لتجميع الملفات عن بعد مع إمكانية الوصول الشفاف إلى الملفات الموزعة باستخدام CURL.

آخر

  • GVfs : نظام الملفات الافتراضي لسطح مكتب جنوم
  • rvault : مخزن آمن وموثق للأسرار والمستندات الصغيرة باستخدام تشفير المغلف مع مصادقة كلمة المرور لمرة واحدة (OTP). يستخدم FUSE لعرض المخزن كنظام ملفات.
  • EaseFilter-Cloud-File-System : نظام ملفات سحابي لنظام التشغيل Windows للمطورين في مساحة المستخدم، لتنفيذ موازنة الأحمال والتعافي من الكوارث القائم على السحابة.

انظر أيضاً

مراجع

  1. https://github.com/libfuse/libfuse/releases/tag/fuse-3.18.1 .{{cite web}}: مفقود أو فارغ |title=( مساعدة )
  2. "الصفحة الرئيسية - FUSE لنظام التشغيل OS X" .
  3. زيسيموبولوس، بيل (14 فبراير 2021)، billziss-gh/winfsp ، تم الاطلاع عليه بتاريخ 16 فبراير 2021
  4. "بعض المزايا التقنية لـ Hurd" . 15 مايو 2011. تم الاطلاع عليه في 28 مارس 2016 .
  5. "WhatsNew/FreeBSD10 - FreeBSD Wiki" .
  6. "openbsd dev - tech - دعم Fuse (و sshfs) لنظام OpenBSD" . مؤرشف من الأصل بتاريخ 26-10-2020 . تم الاطلاع عليه بتاريخ 14-07-2013 .
  7. "'CVS: cvs.openbsd.org: src' - MARC" .
  8. "file-systems.fuse.devel - تم دمج FUSE في الإصدار 2.6.14! - msg#00021 - مناقشة حديثة على OSDir.com" . مؤرشف من الأصل بتاريخ 20 أبريل 2016.
  9. "libfuse/libfuse، التطبيق المرجعي لواجهة Linux FUSE (نظام الملفات في مساحة المستخدم)" . libfuse. 9 يناير 2020. تم الاطلاع عليه في 9 يناير 2020 .
  10. "libfuse3 ChangeLog" . GitHub . تم الاطلاع عليه في 9 يناير 2020 .
  11. "macFUSE (سابقًا osxfuse)" . GitHub .
  12. "macfuse/macfuse" . macFUSE. 11 سبتمبر 2025.
  13. "winfsp/winfsp" . WinFsp.
  14. "OpenHarmony/third_party_libfuse/README_OpenHarmony.md" . GitCode . OpenAtom . تم الاطلاع عليه بتاريخ 8 نوفمبر 2025 .(انظر أيضًا: بيانات التتبع الأصلية في ملف README.OpenSource )
  15. "مقدمة إلى مكونات الطرف الثالث لـ OpenHarmony" . GitHub . OpenAtom . تم الاطلاع عليه في 8 نوفمبر 2025 .
  16. "Lustre FreeBSD" . مؤرشف من الأصل بتاريخ 12-03-2008 . تم الاطلاع عليه بتاريخ 02-03-2008 .
  17. "بنية نظام الملفات ZFS لـ Lustre" . شركة صن مايكروسيستمز. مؤرشف من الأصل بتاريخ 22 يناير 2009. تم الاطلاع عليه بتاريخ 2 مارس 2008 .
  18. "minio/minfs" . GitHub . تم الاطلاع عليه بتاريخ 12 أبريل 2018 .