أنظمة ملفات التحكم في الإصدارات

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

تقنيات مماثلة

النسخ الاحتياطي

نظام ملفات الإصدارات يشبه النسخ الاحتياطي الدوري ، مع وجود عدة اختلافات رئيسية.

  • عادةً ما يتم تشغيل النسخ الاحتياطية على أساس زمني، بينما يحدث التحكم في الإصدار عندما يتغير الملف.
  • عادة ما تكون النسخ الاحتياطية على مستوى النظام أو على مستوى القسم، بينما يتم التحكم في الإصدارات بشكل مستقل على أساس كل ملف على حدة.
  • عادةً ما يتم كتابة النسخ الاحتياطية على وسائط منفصلة، ​​بينما تقوم أنظمة ملفات الإصدارات بالكتابة إلى نفس القرص الصلب (وعادةً ما تكون إلى نفس المجلد أو الدليل أو القسم المحلي).

بالمقارنة مع أنظمة التحكم في المراجعة

توفر أنظمة ملفات التحكم في الإصدارات بعض ميزات أنظمة التحكم في المراجعات . ومع ذلك، وعلى عكس معظم أنظمة التحكم في المراجعات، فهي شفافة للمستخدمين، ولا تتطلب خطوة "تأكيد" منفصلة لتسجيل مراجعة جديدة.

نظام ملفات التسجيل

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

تخزين الكائنات

توفر بعض تطبيقات تخزين الكائنات إمكانية التحكم في إصدارات الكائنات، مثل Amazon S3 .

التطبيقات

إنه

كان نظام إدارة الإصدارات ( ITS ) التابع لمعهد ماساتشوستس للتكنولوجيا (MIT) من أوائل الأنظمة التي طبقت نظام إدارة الإصدارات، وربما أولها . في هذا النظام، كان اسم الملف يتألف من جزأين، كل منهما مكون من ستة أحرف؛ إذا كان الجزء الثاني رقميًا (يتكون من أرقام فقط)، فإنه يُعامل كرقم إصدار. عند تحديد ملف لفتحه للقراءة أو الكتابة، كان بالإمكان إضافة الجزء الثاني ">"؛ عند القراءة، كان هذا يعني فتح الإصدار ذي الرقم الأعلى من الملف؛ وعند الكتابة، كان يعني زيادة رقم الإصدار الحالي وإنشاء الإصدار الجديد للكتابة.

كان تطبيق نظام الترقيم في الإصدارات المبكرة الأخرى في TENEX ، والذي أصبح TOPS-20 . [ 1 ]

الملفات-11 (RSX-11 و OpenVMS)

يُعد نظام RSX-11 و OpenVMS من شركة Digital Equipment Corporation مثالًا قويًا على نظام إدارة إصدارات الملفات . فعندما يفتح أي تطبيق ملفًا للكتابة، يقوم نظام الملفات تلقائيًا بإنشاء نسخة جديدة منه، مع إضافة رقم إصدار إلى اسمه. تبدأ أرقام الإصدارات من 1 وتتزايد مع إنشاء نسخ جديدة من الملف. عند فتح تطبيق لقراءة ملف، يمكنه تحديد اسم الملف كاملًا متضمنًا رقم الإصدار، أو اسم الملف فقط دون رقم الإصدار، وفي هذه الحالة تُفتح أحدث نسخة من الملف. يمكن استخدام أمر DCL/CCL "purge" في أي وقت لإدارة عدد الإصدارات في دليل معين. افتراضيًا، تُحذف جميع إصدارات الملفات في الدليل الحالي باستثناء الإصدار ذي الرقم الأعلى؛ ويمكن تجاوز هذا السلوك باستخدام الخيار /keep=n أو بتحديد مسار الدليل أو أنماط أسماء الملفات. غالبًا ما تُبرمج أنظمة VMS لحذف أدلة المستخدمين بشكل دوري. يُساء فهم هذا الأمر أحيانًا من قبل المستخدمين النهائيين باعتباره خاصية من خصائص نظام التحكم في الإصدارات.

لينكس

  • نظام ملفات NILFS – نظام ملفات ذو بنية سجلات يدعم التحكم في إصدارات نظام الملفات بالكامل وأخذ لقطات مستمرة. وهو النظام الوحيد المستقر والمُضمّن في نواة النظام الرئيسية في هذه القائمة.
  • Tux3 – كان آخر تغيير في عام 2014. [ 2 ]
  • Next3 – كان آخر تحديث في عام 2012.
  • ext3cow – كان آخر إصدار في عام 2005.

في 8 فبراير 2004، اقترح كل من كيران كومار مونيسوامي ريدي، وتشارلز ب. رايت، وأندرو هيمر، وإيريز زادوك (جميعهم من جامعة ستوني بروك ) نظام ملفات قابل للتكديس يُسمى Versionfs، والذي يوفر طبقة تحكم في الإصدارات فوق أي نظام ملفات لينكس آخر. [ 3 ]

LMFS

يدعم نظام ملفات آلة ليسب خاصية التحكم في الإصدارات. وقد تم توفير هذه الخاصية من خلال تطبيقات من معهد ماساتشوستس للتكنولوجيا، ومعهد ليسب للميكانيكا، وشركة سيمبوليكس، وشركة تكساس إنسترومنتس. ومن بين أنظمة التشغيل التي تم تطبيقها نظام سيمبوليكس جينيرا .

نظام التشغيل macOS

ابتداءً من نظام التشغيل Lion (10.7)، يتضمن macOS ميزة تُسمى Versions ، تُتيح حفظ واستعراض الإصدارات السابقة من المستندات، على غرار Time Machine، للتطبيقات المصممة لاستخدام Versions. مع ذلك، تعمل هذه الميزة على مستوى التطبيق، وليس على مستوى نظام الملفات؛ [ 4 ] ولا يتضمن نظام Lion والإصدارات اللاحقة نظام ملفات حقيقيًا للتحكم في الإصدارات.

SCO OpenServer

يدعم نظام الملفات HTFS ، الذي اعتُمد كنظام الملفات الأساسي لـ SCO OpenServer عام 1995، خاصية التحكم في إصدارات الملفات. تُفعّل هذه الخاصية على مستوى كل مجلد على حدة من خلال ضبط بت setuid الخاص بالمجلد، والذي يُورث عند إنشاء المجلدات الفرعية. في حال تفعيل التحكم في الإصدارات، يُنشأ إصدار جديد من الملف عند حذف ملف أو مجلد، أو عند فتح ملف موجود مع اقتطاعه. تبقى الإصدارات القديمة في مساحة اسم نظام الملفات، تحت اسم الملف الأصلي ولكن مع إضافة لاحقة تتكون من فاصلة منقوطة ورقم تسلسل الإصدار. جميع الإصدارات، باستثناء الإصدار الحالي، مخفية عن عمليات قراءة المجلدات (إلا إذا تم ضبط متغير البيئة SHOWVERSIONS)، ولكن يمكن الوصول إلى الإصدارات الأخرى لجميع العمليات العادية. يسمح متغير البيئة وإمكانية الوصول العامة بإدارة الإصدارات باستخدام أدوات نظام الملفات المعتادة، كما يوجد أيضًا أمر "undelete" الذي يمكن استخدامه لحذف الملفات واستعادتها، وتفعيل وتعطيل التحكم في الإصدارات على المجلدات، وما إلى ذلك.

آحرون

  • يحتوي نظام Subversion على ميزة تسمى "التحكم التلقائي في الإصدارات" حيث يمكن ربط مصدر WebDAV مع واجهة خلفية Subversion كنظام ملفات على الأنظمة التي تدعم هذا النوع من الربط (مثل Linux وWindows وغيرها)، وتؤدي عمليات الحفظ في نظام الملفات هذا إلى إنشاء مراجعات جديدة في نظام التحكم في الإصدارات. [ 5 ]
  • كما يدعم برنامج Clearcase التجاري لإدارة التكوين والتحكم في المراجعات نظام الملفات متعدد الإصدارات (MVFS) على أنظمة HP-UX و AIX و Windows منذ أوائل التسعينيات.

ما يلي ليس أنظمة ملفات للتحكم في الإصدارات، ولكنه يسمح بوظائف مماثلة.

  • يدعم نظام الملفات APFS [ 6 ] ونظام الملفات ZFS اللقطات والنسخ الفورية.
  • يدعم نظام الملفات Btrfs اللقطات. [ 7 ]
  • يتمتع برنامج HAMMER في نظام DragonFlyBSD بالقدرة على تخزين المراجعات في نظام الملفات.
  • نظام الملفات NILFS ، الذي يدعم أخذ اللقطات .
  • يُوفر نظام ملفات Fossil في Plan 9 ميزةً مشابهة، حيث يقوم بأخذ لقطات دورية (غالبًا كل ساعة) وإتاحتها في /n/snap . كما يُمكن لـ Fossil أرشفة اللقطات بشكل دائم في Venti (عادةً لقطة واحدة يوميًا) وإتاحتها في /n/dump . في حال إجراء تغييرات متعددة على ملف خلال الفترة الفاصلة بين اللقطات، سيتم تسجيل أحدث تغيير فقط في اللقطة التالية.
  • تخطيط الملفات للكتابة في أي مكان - تقوم حلول التخزين من NetApp بتطبيق نظام ملفات يسمى WAFL، والذي يستخدم تقنية اللقطات للاحتفاظ بإصدارات مختلفة من جميع الملفات في وحدة التخزين.
  • يُعدّ pdumpfs، الذي طوّره ساتورو تاكاباياشي، نظام نسخ احتياطي يومي بسيط يُشبه /n/dump في نظام Plan 9، وهو مُنفّذ بلغة روبي . يعمل كأداة لإنشاء لقطات، مما يُتيح نسخ مجلد كامل إلى موقع آخر باستخدام الروابط الصلبة. عند استخدامه بانتظام، يُمكن أن يُنتج تأثيرًا مُشابهًا للتحكم في الإصدارات. [ 8 ]
  • مايكروسوفت ويندوز
    • نسخ الظل - هي ميزة قدمتها مايكروسوفت مع ويندوز سيرفر 2003. تتيح نسخ الظل أخذ نسخ احتياطية يدوية أو تلقائية أو لقطات لملف أو مجلد على وحدة تخزين معينة في وقت محدد.
    • RollBack Rx - يسمح بأخذ لقطات لأقسام القرص. تحتوي كل لقطة على الاختلافات فقط بين اللقطات السابقة، ولا تستغرق سوى ثوانٍ لإنشائها. يمكن استخدامه بشكل موثوق للحفاظ على استقرار نظام التشغيل ويندوز وحمايته من البرامج الضارة.
    • برنامج GoBack (متوقف) - يُمكّن برنامج GoBack لنظام التشغيل Windows من Symantec من استعادة الملفات أو المجلدات أو الأقراص إلى حالاتها السابقة. يستطيع البرنامج تسجيل تغييرات تصل إلى 8 جيجابايت، ويتوقف مؤقتًا عن تسجيل كل تغيير في حالة ارتفاع نشاط الإدخال/الإخراج .
    • Versomatic - برنامج Versomatic من شركة Acertant يقوم تلقائيًا بتتبع تغييرات الملفات وأرشفة نسخة من الملف بشكل استباقي قبل تعديله.
  • يُتيح نظام ملفات Cascade الوصول إلى مستودع Subversion أو Perforce عبر برنامج تشغيل نظام الملفات. ومع ذلك، لا يزال يتعين على المستخدم تحديد وقت حفظ التغييرات بشكل صريح.
  • تصف وثائق تطبيق Git نظام Git بأنه "نظام ملفات قابل للعنونة بالمحتوى مع واجهة مستخدم لنظام التحكم في الإصدارات مكتوبة فوقه". [ 9 ] كما يوجد تطبيق FUSE تابع لجهة خارجية قد يوسع Git ليصبح نظام ملفات قابلًا للتركيب والقراءة والكتابة للتحكم في الإصدارات. [ 10 ]

انظر أيضاً

مراجع

  1. دانيال ج. بوبرو، جيري د. بيرشفيل، دانيال ل. مورفي، ريموند س. توملينسون، TENEX، نظام مشاركة الوقت المصفح لجهاز PDP-10 ( اتصالات ACM ، المجلد 15، الصفحات 135-143، مارس 1972)
  2. linux-tux3 على GitHub .
  3. كيران-كومار مونيسوامي-ريدي؛ تشارلز ب. رايت؛ أندرو هيمر؛ إيريز زادوك (8 فبراير 2004). نظام ملفات متعدد الاستخدامات وموجه للمستخدم للتحكم في الإصدارات . المؤتمر الثالث لـ USENIX حول تقنيات الملفات والتخزين (FAST 2004).
  4. "إصدارات ملفات نظام التشغيل ماك أو إس إكس ليون، الجزء 2" . 6 أغسطس 2011. تم الاطلاع عليه بتاريخ 28 أبريل 2012 .
  5. التحكم في الإصدارات باستخدام Subversion: الجيل التالي من أنظمة التحكم في الإصدارات مفتوحة المصدر
  6. "حول نظام ملفات أبل" . وثائق مطوري أبل . تم الاطلاع عليه بتاريخ 9 يونيو 2021 .
  7. http://www.oracle.com/technetwork/articles/servers-storage-admin/advanced-btrfs-1734952.html اللقطات، والنسخ، وأجهزة البذور" "اللقطات" نقطة فرعية.
  8. الصفحة الرئيسية لـ pDumpFS [ تمت إزالة الرابط ]
  9. "Git Internals" . Git هو في الأساس نظام ملفات قابل للعنونة بالمحتوى مع واجهة مستخدم VCS مكتوبة فوقه.
  10. "ما هو Gitfs؟" . بريس لابز . 24 يوليو 2015. تم الاطلاع عليه بتاريخ 7 مارس 2022 .