JFFS2
نظام ملفات الفلاش المسجل الإصدار الثاني ( JFFS2) هو نظام ملفات ذو بنية سجلية يُستخدم مع أجهزة ذاكرة الفلاش . [ 1 ] وهو النظام الذي خلف نظام JFFS . أُدرج JFFS2 في نواة لينكس منذ 23 سبتمبر 2001، عندما دُمج في نواة لينكس الرئيسية كجزء من إصدار النواة 2.4.10. يتوفر JFFS2 أيضًا لبعض برامج الإقلاع ، مثل Das U-Boot و Open Firmware و eCos RTOS و RTEMS RTOS و RedBoot . يُعد OpenWrt من أبرز مستخدمي JFFS2 . [ 2 ]
تم تطوير ثلاثة أنظمة ملفات على الأقل كبدائل لنظام JFFS2: LogFS و UBIFS و YAFFS .
سمات
تم تقديم JFFS2:
- دعم أجهزة ذاكرة الفلاش NAND . تطلب هذا الأمر جهداً كبيراً لأن أجهزة NAND لها واجهة إدخال/إخراج تسلسلية ولا يمكن ربطها بالذاكرة للقراءة.
- الروابط الصلبة. لم يكن هذا ممكناً في نظام JFFS بسبب القيود المفروضة على تنسيق القرص.
- الضغط. تتوفر خمس خوارزميات: zlib و rubin و lzma و rtime و lzo .
- أداء أفضل. كان نظام JFFS يتعامل مع القرص كسجل دائري بحت، مما أدى إلى توليد قدر كبير من عمليات الإدخال/الإخراج غير الضرورية. أما خوارزمية جمع البيانات المهملة في JFFS2 فتجعل هذا الأمر غير ضروري في معظمه.
تصميم
كما هو الحال مع نظام ملفات JFFS، يتم "تسجيل" التغييرات التي تطرأ على الملفات والمجلدات في ذاكرة الفلاش في العقد ، والتي يوجد منها نوعان:
- inodes : رأس يحتوي على بيانات تعريف الملف، متبوعًا بحمولة بيانات الملف (إن وجدت). تقتصر الحمولة المضغوطة على صفحة واحدة.
- العقد الدليلية : مدخلات الدليل، كل منها يحمل اسمًا ورقم عقدة. تُمثَّل الروابط الصلبة بأسماء مختلفة تحمل نفس رقم العقدة. يُمثِّل رقم العقدة الخاص 0 عملية فصل الرابط.
كما هو الحال مع JFFS، تبدأ العقد صالحة عند إنشائها، وتصبح قديمة عند إنشاء إصدار أحدث في مكان آخر.
على عكس نظام JFFS، لا يوجد سجل دائري في JFFS2. بدلاً من ذلك، يتعامل JFFS2 مع الكتل ، وهي وحدة بنفس حجم جزء المسح في ذاكرة الفلاش. تُملأ الكتل، واحدة تلو الأخرى، بالعُقد من الأسفل إلى الأعلى. الكتلة النظيفة هي التي تحتوي على عُقد صالحة فقط. الكتلة المتسخة تحتوي على عُقدة واحدة على الأقل قديمة . الكتلة الفارغة لا تحتوي على أي عُقد. [ 3 ]
يعمل جامع البيانات المهملة في الخلفية، محولًا الكتل غير النظيفة إلى كتل فارغة . ويتم ذلك عن طريق نسخ العقد الصالحة إلى كتلة جديدة وتجاهل العقد القديمة . بعد ذلك، يمسح الكتلة غير النظيفة ويضع عليها علامة خاصة تدل على أنها كتلة فارغة (لتجنب أي لبس في حال انقطاع التيار الكهربائي أثناء عملية المسح). [ 3 ]
لتحقيق توازن أفضل في توزيع الاستخدام ومنع تركز عمليات المسح بشكل مفرط على أنظمة الملفات الثابتة في الغالب، سيقوم جامع البيانات المهملة أحيانًا باستهلاك الكتل النظيفة أيضًا. [ 3 ]
العيوب
بسبب تصميمها ذي البنية اللوغاريتمية، تشمل عيوب JFFS2 ما يلي: [ 3 ]
- لا يزال يتعين فحص جميع العُقد عند عملية الربط . هذه العملية بطيئة، وتزداد خطورتها مع ازدياد سعة أجهزة التخزين الفلاشية لتصل إلى نطاق التيرابايت . وللتغلب على هذه المشكلة، تم تقديم ملخص مسح الكتلة (EBS) في الإصدار 2.6.15 من نواة لينكس. يُوضع ملخص مسح الكتلة في نهاية كل كتلة، ويتم تحديثه مع كل عملية كتابة إليها، مُلخصًا محتواها؛ وأثناء عمليات الربط، تتم قراءة ملخص مسح الكتلة بدلًا من فحص الكتل بأكملها.
- قد يؤدي كتابة العديد من كتل البيانات الصغيرة إلى معدلات ضغط سلبية، لذلك من الضروري أن تستخدم التطبيقات مخازن كتابة كبيرة.
- لا توجد طريقة عملية لمعرفة مقدار المساحة الحرة القابلة للاستخدام المتبقية على الجهاز لأن هذا يعتمد على مدى جودة ضغط البيانات الإضافية، وتسلسل الكتابة.
انظر أيضاً
مراجع
- ↑ "نظام فرعي لتقنية الذاكرة (MTD) لنظام لينكس" . www.linux-mtd.infradead.org . تاريخ الاسترجاع: 15 مايو 2021 .
- ↑ "تخطيط ذاكرة الفلاش لنظام OpenWrt - ويكي OpenWrt" . Wiki.openwrt.org . ١٨ يناير ٢٠١٠. تاريخ الاسترجاع: ٤ مارس ٢٠١٤ .
- 1 2 3 4 "ملف تعريف البرنامج: نظام ملفات الفلاش المُسجّل، الإصدار 2 (JFFS2)" (ملف PDF) . micron.com. 2011. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 7 مارس 2014. تم الاطلاع عليه بتاريخ 4 مارس 2014 .
روابط خارجية
- أنظمة ملفات القرص
- لينكس المدمج
- أنظمة ملفات الفلاش التي يدعمها نواة لينكس
- أنظمة ضغط الملفات
- مقدمات متعلقة بالحاسوب في عام 2001
