يافس
YAFFS ( نظام ملفات فلاش آخر ) هو نظام ملفات صممه وكتبه تشارلز مانينغ لشركة Aleph One.
كان YAFFS1 الإصدار الأول من نظام الملفات هذا، وقد صُمم خصيصًا لرقائق NAND المتوفرة آنذاك، بسعة صفحة 512 بايت (بالإضافة إلى 16 بايت مساحة احتياطية خارج النطاق). بدأ العمل عليه في عام 2002، وصدر لأول مرة في وقت لاحق من ذلك العام. وقد رعت شركة توبي تشرشل المحدودة وشركة برايتستار للهندسة العمل الأولي.
تسمح هذه الرقاقات القديمة عمومًا بدورتي كتابة أو ثلاث لكل صفحة. [ 1 ] يستفيد نظام YAFFS من ذلك: تُعلّم الصفحات المتسخة بالكتابة إلى بايت محدد في منطقة احتياطية. تتميز رقاقات ذاكرة NAND الأحدث بصفحات أكبر، حيث تبلغ سعة الصفحات الأولى 2 كيلوبايت (بالإضافة إلى 64 بايت خارج النطاق)، ثم 4 كيلوبايت لاحقًا، مع متطلبات كتابة أكثر صرامة. يجب كتابة كل صفحة داخل كتلة المسح (128 كيلوبايت) بالتسلسل، ويجب كتابة كل صفحة مرة واحدة فقط.
إن تصميم نظام تخزين يفرض "قاعدة الكتابة مرة واحدة" ("خاصية الكتابة مرة واحدة") له العديد من المزايا. [ 2 ]
صُمم نظام الملفات YAFFS2 ليتوافق مع هذه الرقاقات الأحدث. وقد بُني على شفرة المصدر YAFFS1، مع اختلاف رئيسي يتمثل في أن البنى الداخلية غير مُقيدة بحجم 512 بايت، ويُوضع رقم تسلسلي لكل صفحة مكتوبة. وبهذه الطريقة، يُمكن استبدال الصفحات القديمة منطقيًا دون الإخلال بقاعدة "الكتابة مرة واحدة". وقد صدر في أواخر عام 2003.
يُعدّ YAFFS نظام ملفات قويًا ذو بنية سجلات، يولي سلامة البيانات أولوية قصوى. ومن أهدافه الثانوية تحقيق أداء عالٍ، حيث يتفوق عادةً على معظم البدائل. [ 3 ] كما أنه مصمم ليكون قابلاً للنقل، وقد استُخدم على أنظمة Linux و WinCE و pSOS و RTEMS و eCos و ThreadX ، بالإضافة إلى العديد من أنظمة التشغيل المتخصصة. ويُستخدم إصدار YAFFS/Direct في الحالات التي لا يوجد فيها نظام تشغيل، أو أنظمة تشغيل مضمنة، أو برامج إقلاع: فهو يمتلك نفس نظام الملفات الأساسي، ولكنه يتميز بواجهة أبسط مع كلٍ من التعليمات البرمجية ذات المستوى الأعلى والمستوى الأدنى، ومع ذاكرة NAND flash.
يتم ترخيص قاعدة بيانات YAFFS بموجب رخصة GPL وبموجب تراخيص لكل منتج متاحة من Aleph One.
يتم تأمين YAFFS على أساس كل قسم على مستوى عالٍ، مما يسمح لخيط واحد فقط بالكتابة في أي وقت. [ 4 ]
YAFFS1
لا توجد إجراءات خاصة لتهيئة نظام ملفات YAFFS سوى مسح ذاكرة الفلاش. عند اكتشاف كتلة تالفة، يتبع YAFFS آلية الوسائط الذكية بتحديد البايت الخامس من المساحة الاحتياطية للكتلة. وتبقى الكتل المحددة على هذا النحو غير مخصصة من تلك اللحظة فصاعدًا.
لكتابة بيانات الملف، يقوم نظام YAFFS مبدئيًا بكتابة صفحة كاملة (تُسمى "جزءًا" في مصطلحات YAFFS) تصف بيانات تعريف الملف ، مثل الطوابع الزمنية والاسم والمسار، وما إلى ذلك. يُخصص للملف الجديد رقم تعريف فريد؛ ويحتوي كل جزء بيانات داخل الملف على هذا الرقم الفريد ضمن المساحة الاحتياطية. يحتفظ YAFFS ببنية شجرية في ذاكرة الوصول العشوائي (RAM) للموقع الفعلي لهذه الأجزاء. عندما يصبح جزء ما غير صالح (بحذف الملف أو استبدال أجزاء منه)، يُعلّم YAFFS بايتًا معينًا في المساحة الاحتياطية لهذا الجزء بأنه "غير صالح". عندما تُعلّم كتلة كاملة (32 صفحة) بأنها غير صالحة، يمكن لـ YAFFS مسح الكتلة واستعادة المساحة. عندما تكون المساحة الحرة في نظام الملفات منخفضة، يقوم YAFFS بتجميع مجموعة من الصفحات الصالحة في كتلة جديدة. ثم يستعيد YAFFS المساحة التي كانت تشغلها الصفحات غير الصالحة داخل كل كتلة من الكتل الأصلية.
عندما يقوم نظام YAFFS بتركيب جهاز ذاكرة فلاش NAND ، يجب عليه فحص كل كتلة للتحقق من وجود بيانات صالحة عن طريق مسح المساحة الاحتياطية الخاصة بها. باستخدام هذه المعلومات، يقوم النظام بعد ذلك بإعادة بناء بنية بيانات الشجرة الموجودة في الذاكرة.
YAFFS2
يُشابه نظام YAFFS2 نظام YAFFS1 في المفهوم، ويشتركان في جزء كبير من الشيفرة البرمجية نفسها؛ إذ تدعم قاعدة شيفرة YAFFS2 تنسيقات بيانات YAFFS1 من خلال التوافق مع الإصدارات السابقة. ويكمن الاختلاف الرئيسي في أن YAFFS2 يحتاج إلى بذل جهد كبير لتلبية متطلبات "الكتابة لمرة واحدة" في ذاكرة NAND الحديثة. [ 5 ]
يُعلّم نظام YAFFS2 كل كتلة جديدة مكتوبة برقم تسلسلي متزايد بشكل مطرد . ويمكن استنتاج تسلسل الأجزاء من رقم تسلسل الكتلة وإزاحة الجزء داخلها. وبالتالي، عندما يفحص YAFFS2 ذاكرة الفلاش ويكتشف أجزاءً متعددة لها نفس معرّفات الكائنات وأرقام الأجزاء، فإنه يختار الجزء الذي سيستخدمه بناءً على أكبر رقم تسلسلي. ولأسباب تتعلق بالكفاءة، يُقدّم YAFFS2 أيضًا مفهوم رؤوس الانكماش. على سبيل المثال، عند تغيير حجم ملف إلى حجم أصغر، يُعلّم YAFFS1 جميع الأجزاء المتأثرة بأنها غير صالحة - لا يستطيع YAFFS2 فعل ذلك بسبب قاعدة "الكتابة مرة واحدة". بدلاً من ذلك، يكتب YAFFS2 "رأس انكماش"، يشير إلى أن عددًا معينًا من الصفحات قبل تلك النقطة غير صالحة. وهذا يسمح لـ YAFFS2 بإعادة بناء الحالة النهائية لنظام الملفات عند إعادة تشغيل النظام.
يستخدم YAFFS2 تعريفًا أكثر تجريدًا لذاكرة الفلاش NAND مما يسمح باستخدامه مع مجموعة أوسع من أجزاء الفلاش ذات الأشكال الهندسية المختلفة وقواعد معالجة الكتل التالفة وما إلى ذلك.
أضاف نظام الملفات YAFFS2 لاحقًا دعمًا لخاصية حفظ نقاط التحقق ، التي تتجاوز عملية فحص نقاط التحميل العادية، مما يسمح بأوقات تحميل سريعة جدًا. يختلف الأداء، ولكن تم الإبلاغ عن أوقات تحميل تصل إلى 3 ثوانٍ لحجم 2 جيجابايت .
انظر أيضاً
- قائمة أنظمة الملفات
- JFFS
- JFFS2
- UBIFS
- LogFS
- نظام الملفات NILFS ، وهو تطبيق جديد لنظام ملفات ذي بنية سجلية
- مجموعة عمل واجهة ذاكرة فلاش NAND المفتوحة
مراجع
- ↑ يؤدي مسح كتلة مسح الفلاش إلى إعادة تعيين جميع بتاتها إلى 1، بينما تؤدي كتابة كتلة كتابة (أصغر من كتلة المسح، ولكنها قد تكون أكبر من كتلة نظام الملفات) إلى إعادة تعيين بتات محددة إلى 0. يمكن إجراء عملية كتابة أو اثنتين إضافيتين على الكتلة إذا كانت البتات التي تُكتب إلى 0 قد كانت سابقًا 1 في كتلة الكتابة. كتابة 0 إلى بت كان بالفعل 0 قد يؤدي إلى "تثبيت" الصفر، أي قد يلزم إجراء عمليات مسح متعددة لإعادة البت إلى 1.وغني عن القول، أن ممارسة الكتابة المتعددة هذه لم يتم اختبارها أو ضمانها بشكل عام من قبل موردي الفلاش، ولا يمكن أن تعمل على الإطلاق على تقنيات الفلاش غير SLC .
- ↑ جاك ب. دينيس؛ غوانغ ر. غاو؛ وفيفيك ساركار. "بحث تعاوني: نماذج البرمجة ونظام التخزين للحوسبة عالية الأداء باستخدام معالجات متعددة النوى" . ص 4
- ↑ "معايير أداء نظام ملفات الفلاش لنظام لينكس 3.1" .
- ↑ "كيف يعمل نظام Yaffs | Yaffs – نظام ملفات فلاش للاستخدام المدمج" . yaffs.net . تم الاطلاع عليه بتاريخ 18-03-2024 .
- ↑ "ملاحظات حول مواصفات وتطوير YAFFS 2" .
روابط خارجية
- الموقع الرسمي
- نقدم لكم YAFFS، أول نظام ملفات فلاش خاص بتقنية NAND
- Unyaffs : برنامج بسيط لفك ضغط صور YAFFS2.
- yaffs2utils : أدوات لإنشاء/استخراج صورة YAFFS2 على نظام Linux.
- لينكس المدمج
- أنظمة ملفات الفلاش التي يدعمها نواة لينكس
- ويندوز سي إي
