نظام ملفات يونكس

نظام ملفات يونكس ( UFS ) هو عائلة من أنظمة الملفات التي تدعمها العديد من أنظمة التشغيل يونكس والأنظمة الشبيهة بيونكس . وهو سليل بعيد لنظام الملفات الأصلي المستخدم في الإصدار السابع من يونكس .

تصميم

يتكون مجلد UFS من الأجزاء التالية:

  • بعض الكتل في بداية القسم مخصصة لكتل ​​التمهيد (والتي يجب تهيئتها بشكل منفصل عن نظام الملفات)
  • كتلة بيانات فائقة، تحتوي على رقم سحري يُعرّف هذا النظام بأنه نظام ملفات UFS، وبعض الأرقام الحيوية الأخرى التي تصف هندسة هذا النظام وإحصائياته ومعايير ضبط سلوكه.
  • مجموعة من مجموعات الأسطوانات. تحتوي كل مجموعة أسطوانات على المكونات التالية:
    • نسخة احتياطية من الكتلة الفائقة
    • رأس مجموعة الأسطوانات، مع إحصائيات وقوائم حرة وما إلى ذلك، حول مجموعة الأسطوانات هذه، على غرار تلك الموجودة في الكتلة الفائقة
    • عدد من العقد (inodes) ، تحتوي كل منها على سمات الملف.
    • عدد من كتل البيانات

يتم ترقيم العقد (Inodes) بالتسلسل، بدءًا من 0. العقدة 0 محجوزة لإدخالات الدليل غير المخصصة، وكانت العقدة 1 هي عقدة ملف الكتلة التالفة في إصدارات UNIX التاريخية، متبوعة بعقدة الدليل الجذر ، والتي تكون دائمًا العقدة 2، وعقدة الدليل المفقود والموجود وهي العقدة 3.

تحتوي ملفات الدليل فقط على قائمة بأسماء الملفات الموجودة في الدليل ورقم تعريف الملف (inode) المرتبط بكل ملف. تُحفظ جميع بيانات تعريف الملفات في رقم تعريف الملف (inode).

التاريخ والتطور

كانت أنظمة ملفات يونكس المبكرة تُعرف ببساطة باسم FS . تضمنت FS فقط كتلة التمهيد، والكتلة الفائقة، ومجموعة من العقد (inodes) ، وكتل البيانات. كان هذا النظام مناسبًا للأقراص الصغيرة التي صُممت أنظمة يونكس المبكرة من أجلها، ولكن مع تطور التكنولوجيا وزيادة سعة الأقراص، تسبب تحريك رأس القراءة/الكتابة ذهابًا وإيابًا بين مجموعة العقد وكتل البيانات التي تشير إليها في حدوث خلل في عملية الكتابة . قام مارشال كيرك ماكوسيك ، الذي كان آنذاك طالب دراسات عليا في جامعة بيركلي ، بتحسين تصميم نظام الملفات V7 لإنشاء نظام الملفات السريع (FFS) في نظام BSD 4.2 ، وذلك من خلال ابتكار مجموعات الأسطوانات، التي تقسم القرص إلى أجزاء أصغر، ولكل مجموعة عقدها وكتل بياناتها الخاصة. [ 2 ] [ 3 ]

الهدف من نظام BSD FFS هو محاولة تحديد مواقع كتل البيانات والبيانات الوصفية المرتبطة في نفس مجموعة الأسطوانات، ومن الناحية المثالية، جميع محتويات الدليل (البيانات والبيانات الوصفية لجميع الملفات) في نفس مجموعة الأسطوانات أو مجموعة قريبة منها، وبالتالي تقليل التجزئة الناتجة عن تشتيت محتويات الدليل على القرص بأكمله.

تضمنت بعض معايير الأداء في الكتلة الفائقة عدد المسارات والقطاعات، وسرعة دوران القرص، وسرعة رأس القراءة/الكتابة، ومحاذاة القطاعات بين المسارات. في نظام مُحسَّن بالكامل، يمكن تحريك رأس القراءة/الكتابة بين المسارات المتقاربة لقراءة القطاعات المتباعدة من المسارات المتناوبة أثناء انتظار دوران القرص.

مع ازدياد سعة الأقراص، أصبحت تقنية تحسين أداء القطاعات غير مجدية (خاصةً مع الأقراص التي تستخدم ترقيم القطاعات الخطي وعدد القطاعات المتغير لكل مسار). ومع زيادة سعة الأقراص والملفات، تفاقمت مشكلة تجزئة القراءة. ولمعالجة هذه المشكلة، زاد نظام BSD حجم كتلة نظام الملفات من قطاع واحد إلى 1  كيلوبايت في الإصدار 4.0، ثم زاد في نظام FFS من 1  كيلوبايت إلى 8  كيلوبايت. لهذا الأمر عدة آثار، منها زيادة احتمالية تجاور قطاعات الملف، وتقليل الحمل الزائد اللازم لسرد كتل الملف، وزيادة عدد البايتات التي يمكن تمثيلها بأي عدد من الكتل.

كما يُمكن استخدام أحجام أقراص أكبر، نظرًا لأن الحد الأقصى لعدد الكتل محدود بعدد ثابت من الكتل ذات عرض بت ثابت. مع ذلك، عند استخدام أحجام كتل أكبر، ستُهدر الأقراص التي تحتوي على العديد من الملفات الصغيرة مساحةً، إذ يجب أن يشغل كل ملف كتلة واحدة على الأقل. لهذا السبب، أضاف نظام BSD تجزئة على مستوى الكتلة ، تُسمى أيضًا تخصيصًا فرعيًا للكتل، أو دمج الذيل، أو تعبئة الذيل ، حيث يُمكن تخزين آخر كتلة جزئية من البيانات من عدة ملفات في كتلة "مجزأة" واحدة بدلًا من كتل متعددة فارغة في الغالب. [ 4 ]

تم اعتماد العمل على Berkeley FFS على نطاق واسع من قبل موردي Unix الآخرين، وتُعرف عائلة أنظمة الملفات المشتقة منه مجتمعة باسم UFS.

التطبيقات

لقد اعتمد موردو بعض أنظمة يونكس الاحتكارية، مثل SunOS / Solaris و System V Release 4 و HP-UX و Tru64 UNIX ، وأنظمة يونكس المفتوحة المشتقة مثل illumos ، نظام الملفات UFS.

ابتداءً من نظام التشغيل سولاريس 7 ، أضافت شركة صن مايكروسيستمز ميزة تسجيل نظام الملفات UFS، التي أتاحت تسجيل العمليات في نظام الملفات UFS، وهي ميزة لا تزال متوفرة في الإصدارات الحالية من سولاريس وإيلوموس. [ 5 ] كما يحتوي نظام الملفات UFS في سولاريس على امتدادات للملفات الكبيرة والأقراص الكبيرة، بالإضافة إلى ميزات أخرى.

في أنظمة يونكس 4.4BSD و BSD المشتقة منها، مثل FreeBSD و NetBSD و OpenBSD و DragonFly BSD ، يُقسّم تطبيق UFS1 وUFS2 إلى طبقتين: طبقة عليا تُوفّر بنية الدليل وتدعم البيانات الوصفية (الأذونات، الملكية، إلخ) في بنية inode، وطبقات سفلية تُوفّر حاويات البيانات المُنفّذة كـ inodes. وقد تمّ ذلك لدعم كلٍّ من نظام الملفات التقليدي FFS ونظام الملفات ذي البنية السجلية LFS باستخدام شيفرة مشتركة للوظائف العامة. تُسمى الطبقة العليا "UFS"، وتُسمى الطبقات السفلية "FFS" و"LFS". في بعض هذه الأنظمة، يُستخدم مصطلح "FFS" للإشارة إلى دمج الطبقة السفلية من FFS مع الطبقة العليا من UFS، ويُستخدم مصطلح "LFS" للإشارة إلى دمج الطبقة السفلية من LFS مع الطبقة العليا من UFS.

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

في نظام الملفات UFS2، قام ماكوسيك وبول-هينينغ كامب بتوسيع طبقتي FFS وUFS في نظام FreeBSD لإضافة مؤشرات كتل 64 بت (مما يسمح بتوسيع وحدات التخزين حتى 8 زيبيبايت )، وكتل متغيرة الحجم (مشابهة للامتدادات )، وحقول علامات موسعة، وطوابع "وقت الإنشاء" إضافية، ودعم موسع للسمات، وقوائم التحكم بالوصول POSIX1.e. أصبح UFS2 الإصدار المدعوم من UFS بدءًا من FreeBSD 5.0. كما قدم FreeBSD التحديثات البرمجية وإمكانية إنشاء لقطات لنظام الملفات لكل من UFS1 وUFS2. تم نقل هذه الميزات لاحقًا إلى NetBSD، ولكن في النهاية أُزيلت التحديثات البرمجية (التي تُسمى التبعيات البرمجية في NetBSD) من NetBSD 6.0 لصالح آلية تسجيل نظام الملفات الأقل تعقيدًا WAPBL (المعروفة أيضًا باسم التسجيل)، والتي أُضيفت إلى FFS في NetBSD 5.0. دعم نظام OpenBSD التحديثات البرمجية من الإصدار 2.9 [ 6 ] حتى توقف الدعم في الإصدار 7.4 [ 7 ] ، كما دعم نظام الملفات UFS2 (FFS2) (بدون قوائم تحكم بالوصول) منذ الإصدار 4.2 [ 8 ] . جعل OpenBSD نظام UFS2 الإصدار الافتراضي لنظام UFS مع الإصدار 6.7 [ 9 ] . منذ FreeBSD 7.0، يدعم UFS أيضًا تسجيل نظام الملفات باستخدام موفر gjournal GEOM . أضاف FreeBSD 9.0 دعمًا لتسجيل خفيف الوزن بالإضافة إلى التحديثات البرمجية (SU+J)، مما يقلل بشكل كبير من الحاجة إلى فحص نظام الملفات في الخلفية، وقوائم تحكم بالوصول NFSv4.

تتضمن أنظمة FreeBSD وNetBSD وOpenBSD وDragonFly BSD نظام Dirhash ، الذي طوره إيان داوس. يحتفظ هذا النظام بجدول تجزئة في الذاكرة لتسريع عمليات البحث في الدلائل. يُخفف Dirhash من العديد من مشاكل الأداء المرتبطة بالدلائل الكبيرة في نظام الملفات UFS.

استخدم نظام NeXTStep ، المشتق من BSD، نسخةً من نظام الملفات UFS. في نظام التشغيل Mac OS X من Apple ، كان متاحًا كبديل لنظام الملفات HFS+ ، نظام الملفات الخاص بهم. مع ذلك، بدءًا من Mac OS X Leopard ، لم يعد من الممكن تثبيت Mac OS X على وحدة تخزين مهيأة بنظام UFS. إضافةً إلى ذلك، لا يمكن ترقية الإصدارات القديمة من Mac OS X المثبتة على وحدات تخزين مهيأة بنظام UFS إلى Leopard؛ إذ تتطلب الترقية إعادة تهيئة وحدة التخزين الرئيسية. [ 10 ] كان هناك حد أقصى لحجم الملفات يبلغ 4 جيجابايت للأقراص المهيأة بنظام UFS في Mac OS X. بدءًا من Mac OS X Lion ، تم إسقاط دعم UFS تمامًا. [ 11 ] 

انظر أيضاً

مراجع

الاقتباسات

  1. 1 2 3 " [ base ] محتويات /Head/Sys/Ufs/Ufs/Dinode.h" .
  2. "المصادر المفتوحة: أصوات من ثورة المصادر المفتوحة" . 29 مارس 1999.
  3. ماكوسيك، ك.م.؛ جوي، و.؛ ليفلر، س.؛ فابري، ر. (أغسطس 1984). "نظام ملفات سريع لنظام يونكس" (ملف PDF) . معاملات ACM لأنظمة الحاسوب . 2 (3): 181-197 . doi : 10.1145/989.990 . S2CID 222285164. تاريخ الاسترجاع : 8 أبريل 2013 . 
  4. ألين، هيرفي (20 يونيو 2005). "يشكل نظام الملفات UFS2 والتحديثات البرمجية مزيجًا قويًا" (ملف PDF) . مقدمة إلى FreeBSD، ورشة عمل PacNOG I، مواضيع إضافية . مركز موارد بدء تشغيل الشبكة. ص 23. تاريخ الاسترجاع: 8 أبريل 2013 . 
  5. "تسجيل UFS" . وثائق أوراكل . تم الاطلاع عليه بتاريخ 27-09-2022 .
  6. "إصدار OpenBSD 2.9" . OpenBSD . 2001-06-01 . تم الاطلاع عليه بتاريخ 2013-04-08 .
  7. "تم تعطيل التحديثات البرمجية لأعمال نظام الملفات الافتراضي المستقبلية" . مجلة OpenBSD . 2023-07-05 . تم الاطلاع عليه بتاريخ 2024-03-09 .
  8. "إصدار OpenBSD 4.2" . OpenBSD. 2007-11-01 . تم الاطلاع عليه بتاريخ 2013-04-08 .
  9. "اجعل FFS2 نظام الملفات الافتراضي" . OpenBSD. 2020-04-05 . تم الاطلاع عليه بتاريخ 2020-04-07 .
  10. "نظام التشغيل ماك أو إس إكس 10.5 ليوبارد: التثبيت على وحدة تخزين مهيأة بنظام UFS" . دعم أبل . 12-06-2012. مؤرشف من الأصل في 28-03-2020.
  11. "لا يمكن لنظام Lion تحميل أي صور أقراص باستخدام الأداة المدمجة أو أداة القرص" . منتديات دعم Apple . شركة Apple . 2011-08-05 . تم الاطلاع عليه بتاريخ 2013-12-24 .

فهرس