النقل الخلفي
النقل الخلفي هو عملية أخذ أجزاء من إصدار أحدث لنظام برمجي أو مكون برمجي ونقلها إلى إصدار أقدم من نفس البرنامج. ويشكل جزءًا من خطوة الصيانة في عملية تطوير البرامج ، ويُستخدم عادةً لإصلاح مشكلات الأمان في الإصدارات الأقدم من البرنامج وأيضًا لتوفير ميزات جديدة للإصدارات الأقدم .
ملخص
إن أبسط موقف وربما الأكثر شيوعًا في عملية النقل العكسي هو ثغرة أمنية ثابتة في إصدار أحدث من أحد البرامج. فكر في هذا المثال المبسّط:
- كان لدى إصدار البرنامج v2.0 ثغرة أمنية تم إصلاحها عن طريق تغيير النص 'is_unsecured' إلى 'is_secured'.
- توجد نفس الثغرة الأمنية في برنامج v1.0، والذي تم اشتقاق قاعدة التعليمات البرمجية للإصدار الأحدث منه، ولكن قد يقرأ النص هناك "is_notsecure".
من خلال أخذ التعديل الذي يصلح برنامج v2.0 وتغييره بحيث ينطبق على برنامج v1.0، يتم نقل الإصلاح بشكل فعال. [1]
في مواقف الحياة الواقعية، قد تكون التعديلات التي خضع لها جانب واحد من البرنامج بسيطة ( لم يتغير سوى بضعة أسطر من التعليمات البرمجية ) أو ثقيلة وضخمة (تنتشر العديد من التعديلات عبر ملفات متعددة من التعليمات البرمجية). في الحالة الأخيرة، قد تصبح عملية النقل الخلفي مملة وغير فعالة ولا ينبغي القيام بها إلا إذا كانت هناك حاجة حقيقية إلى الإصدار الأقدم من البرنامج لصالح الإصدار الأحدث (على سبيل المثال، إذا كان الإصدار الأحدث لا يزال يعاني من مشاكل الاستقرار التي تمنع استخدامه في المواقف الحرجة). [2]
إجراءات
يمكن تقسيم عملية النقل العكسي تقريبًا إلى الخطوات التالية: [1]
- تحديد المشكلة في الإصدار الأقدم من البرنامج والتي تحتاج إلى إصلاح عن طريق النقل الخلفي
- معرفة أي تعديل (عادةً ما يكون حديثًا) للكود أدى إلى حل المشكلة
- تكييف التعديل مع وضع الكود القديم (النقل الخلفي المناسب)
- مستوى واحد أو عدة مستويات لمراقبة الجودة - اختبار ما إذا كانت النسخة المنقولة تحتفظ بالوظائف السابقة بالإضافة إلى ما إذا كانت تنفذ الوظائف الجديدة بشكل صحيح.
عادةً ما يتم تجميع العديد من هذه التعديلات في مجموعة تصحيحات .
يمكن توفير عمليات النقل الخلفي بواسطة مجموعة المطورين الأساسية للبرنامج. نظرًا لأن النقل الخلفي يتطلب الوصول إلى الكود المصدري لقطعة من البرنامج، فهذه هي الطريقة الوحيدة التي يتم بها النقل الخلفي للبرامج ذات المصدر المغلق - عادةً ما يتم دمج عمليات النقل الخلفي في ترقيات ثنائية على طول خط الإصدار القديم للبرنامج. مع البرامج مفتوحة المصدر ، يتم أحيانًا إنشاء عمليات النقل الخلفي بواسطة موزعي البرامج وإرسالها لاحقًا إلى المنبع (أي يتم تقديمها إلى المطورين الأساسيين للبرنامج المصاب). [2]
أمثلة
- تم نقل العديد من ميزات Windows Vista إلى Windows XP عند إصدار Service Pack 3 لنظام Windows XP، مما يسهل توافق التطبيقات (الألعاب في الغالب) في الأصل مع Vista كمتطلب أدنى للتشغيل على XP SP3 كمتطلب أدنى بدلاً من ذلك. [3]
- منذ سبتمبر 2010، قدم مشروع Debian [4] خدمة النقل الخلفي الرسمية لبعض حزم برامج Debian Linux، كما يدعم Ubuntu Linux النقل الخلفي أيضًا. [5]
- في عام 2024، قام أحد مستخدمي YouTube يُدعى MattKC بنقل إصدارات .NET Framework 2.0 و3.5 إلى Windows 95 ، والذي لم يدعم الإطار رسميًا. [6] [7]
انظر أيضا
مراجع
- ^ "إعادة نشر إصلاحات الأمان". Red Hat . مؤرشف من الأصل في 2020-05-12 . تم الاسترجاع في 2020-05-11 .
- ^ ab Rahul Sundaram (2016-01-14). "البقاء على مقربة من المشاريع السابقة". مشروع فيدورا . مؤرشف من الأصل في 2011-08-05 . تم الاسترجاع في 2020-05-11 .
- ^ دونالد ميلانسون (2007-10-09). "Microsoft backports Vista features for new Windows XP SP3 beta". Engadget . مؤرشف من الأصل في 2016-03-04 . تم الاسترجاع في 2020-05-11 .
- ^ "خدمة Backports تصبح رسمية". مشروع دبيان . 2010-09-05. مؤرشف من الأصل في 2011-09-03 . تم الاسترجاع في 2020-05-11 .
- ^ "UbuntuBackports". مشروع أوبونتو . 2015-11-29. مؤرشف من الأصل في 2019-05-03 . تم الاسترجاع 2020-05-11 .
- ^ هاربر، كريستوفر (2024-04-14). "تم نقل آلاف التطبيقات إلى Windows 95 بعد ثمانية وعشرين عامًا — يتيح منفذ .NET Framework التوافق مع الإصدارات السابقة للبرامج الحديثة". Tom's Hardware . مؤرشف من الأصل في 2024-05-31 . تم الاسترجاع في 2024-07-01 .
- ^ Posch, Maya (2024-04-14). "Porting Modern Windows Applications To Windows 95". Hackaday . مؤرشف من الأصل في 2024-07-01 . تم الاسترجاع في 2024-07-01 .
