نظام ملفات الذاكرة الوميضية هو نظام ملفات مصمم لتخزين الملفات على ذاكرة تخزين. بينما ترتبط نظم ملفات الفلاش ارتباطًا وثيقًا بنظم الملفات بشكل عام، إلا أنها مُحسّنة لطبيعة وخصائص ذاكرة الفلاش (مثل تجنب تضخيم الكتابة)، وللاستخدام في أنظمة تشغيل معينة.
نظرة عامة
يمكن لطبقة جهاز كتلي أن تحاكي محرك أقراص بحيث يمكن استخدام نظام ملفات للأغراض العامة على جهاز تخزين وميضي، لكن هذا يعد دون المستوى الأمثل لعدة أسباب:
مسح الكتل: يجب مسح كتل الذاكرة الوميضية قبل الكتابة إليها. يمكن أن يكون الوقت المستغرق لمحو الكتل كبيرًا، وبالتالي من المفيد محو الكتل غير المستخدمة عندما يكون الجهاز خاملاً.
الوصول العشوائي: تم تحسين نظم الملفات ذات الأغراض العامة لتجنب البحث عن الأقراص كلما أمكن ذلك، نظرًا لارتفاع تكلفة البحث. لا تفرض أجهزة ذاكرة الفلاش أي وقت للبحث.
تسوية التآكل: تميل أجهزة الذاكرة المحمولة إلى التآكل عند الكتابة فوق كتلة واحدة بشكل متكرر؛ تم تصميم أنظمة ملفات الفلاش لنشر الكتابات بالتساوي.
تحتوي نظم الملفات ذات السجل المنطقي على جميع الخصائص المطلوبة لنظام ملفات الذاكرة.[1] والتي تتضمن نظام الملفات JFFS2 و YAFFS.
نظرًا للخصائص الخاصة للذاكرة المحمولة، فمن الأفضل استخدامها إما مع وحدة تحكم لإجراء تسوية التآكل وتصحيح الأخطاء أو أنظمة ملفات الفلاش المصممة بشكل مخصوص، والتي تنشر الكتابة على الوسائط وتتعامل مع أوقات المسح الطويلة لكتل الذاكرة الوميضية. المفهوم الأساسي وراء أنظمة ملفات الفلاش هو: عندما يتم تحديث مخزن الذاكرة، سيقوم نظام الملفات بكتابة نسخة جديدة من البيانات التي تم تغييرها إلى كتلة جديدة، وإعادة تعيين مؤشرات الملف، ثم محو الكتلة القديمة لاحقًا.
من الناحية العملية، يتم استخدام نظام ملفات الفلاش فقط لأجهزة ذاكرة التقنية (MTDs)، وهي عبارة عن ذاكرة فلاش مدمجة لا تحتوي على وحدة تحكم. تحتوي بطاقات الذاكرة المحمولة القابلة للإزالة ومحركات أقراص USB المحمولة على وحدات تحكم مدمجة لإدارة MTD باستخدام خوارزميات مخصصة، [2][3] مثل تسوية التآكل واسترداد الكتل السيئة واسترداد الطاقة المفقودة وجمع النفايات وتصحيح الأخطاء، لذلك استخدام نظام ملف الذاكرة له فائدة محدودة.
أصبحت أجهزة الذاكرة المبنية على الذاكرة الوميضية أكثر انتشارًا مع ازدياد عدد الأجهزة المحمولة، وانخفاض تكلفة حجم الذاكرة وزيادة سعة رقائق الذاكرة المحمولة.
أنظمة ملفات الذاكرة للينكس
JFFS و JFFS2 و YAFFS
كان JFFS أول نظام ملفات خاص بالذاكرة الوميضية لنظام لينكس، ولكن حل محله بسرعة JFFS2، الذي تم تطويره في الأصل لـ NOR flash. ثم تم إصدار YAFFS في عام 2002، ويتعامل بشكل خاص مع الذاكرة الوميضية، وتم تحديث JFFS2 لدعم الذاكرة الوميضية أيضًا.
UBIFS
تم دمج UBIFS منذ إصدار لينكس 2.6.22 [4] في عام 2008. تم تطوير UBIFS بنشاط منذ الدمج الأولي.[5] لدى UBIFS وثائق مستضافة في infradead.org إلى جانب محركات JFFS2 و MTD. تظهر بعض المقارنات الأولية أن الضغط لدى UBIFS أسرع من F2FS.[6]
LogFS
LogFS، نظام ملفات لينكس آخر خاص بالذاكرة، يجري تطويره لمعالجة مشاكل قابلية التوسع في JFFS2.
نظام ملفات صديقة للفلاش (F2FS)
تم إضافة F2FS (نظام ملفات صديقة للفلاش) إلى نواة لينكس 3.8.[7] بدلاً من الاستهداف المباشر لأجهزة الفلاش الخام، تم تصميم F2FS لاستخدامه على أجهزة التخزين المبنية على الذاكرة الوميضية التي تتضمن بالفعل طبقة ترجمة للذاكرة، مثل بطاقات SD.[8]
أنظمة ملف متحدة
تعد Overlayfs و Unionfs و aufs أنظمة ملف متحدة تسمح بدمج نظم ملفات متعددة وعرضها على المستخدم كشجرة واحدة. يسمح هذا لمصمم النظام بوضع أجزاء من نظام التشغيل تكون للقراءة فقط على الوسائط المختلفة في مناطق القراءة والكتابة العادية. عادة ما يتم تثبيت OpenWrt على رقائق الذاكرة الخام بدون FTL. ويستخدم overlayfs لتجميع SquashFS مضغوط وللقراءة فقط مع JFFS2.