توافق الشفرة الثنائية

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

بالنسبة لبرنامج مُجمَّع على نظام تشغيل عام، فإن التوافق الثنائي غالبًا ما يعني أن وحدات المعالجة المركزية ( مجموعات التعليمات ) في جهازي الكمبيوتر متوافقة ثنائيًا، ولكن أيضًا أن واجهات وسلوكيات نظام التشغيل (OS) وواجهات برمجة التطبيقات (APIs)، وواجهات التطبيقات الثنائية (ABIs) المقابلة لتلك الواجهات، متساوية بشكل كافٍ، أي "متوافقة".

يشير مصطلح " التوافق مع الإصدارات السابقة" عادةً إلى توافق الكود البرمجي. وهذا يعني أن أجهزة وبرامج الحاسوب الحديثة تتمتع (عمليًا) بجميع ميزات الأجهزة القديمة، بالإضافة إلى إمكانيات أو أداء إضافي. وبالتالي، سيعمل الكود التنفيذي القديم دون تغيير على المنتج الأحدث. بالنسبة لبرنامج مُجمَّع يعمل مباشرةً على وحدة المعالجة المركزية ضمن نظام تشغيل، فإن "نظام التشغيل المتوافق ثنائيًا" يعني في المقام الأول توافق واجهة التطبيق الثنائية (ABI) مع نظام آخر. ومع ذلك، فإنه يشير أيضًا في كثير من الأحيان إلى أن واجهات برمجة التطبيقات (APIs) التي يعتمد عليها التطبيق، بشكل مباشر أو غير مباشر (مثل واجهة برمجة تطبيقات Windows ، على سبيل المثال)، متشابهة بدرجة كافية. قد تكون الأجهزة (إلى جانب وحدة المعالجة المركزية، مثل معالج الرسوميات) والأجهزة الطرفية التي يصل إليها التطبيق عاملًا مهمًا للتوافق الكامل، على الرغم من أن العديد من اختلافات الأجهزة مخفية بواسطة واجهات برمجة التطبيقات الحديثة (التي غالبًا ما يوفرها نظام التشغيل نفسه جزئيًا، وبرامج تشغيل أجهزة محددة جزئيًا ).

في حالات أخرى، يجب استخدام عملية نقل عامة للبرنامج لجعل البرامج غير المتوافقة مع الملفات الثنائية تعمل.

يُعد التوافق الثنائي ميزةً رئيسيةً عند تطوير برامج حاسوبية تُشغَّل على أنظمة تشغيل متعددة. توفر العديد من أنظمة التشغيل المبنية على يونكس ، مثل FreeBSD و NetBSD ، توافقًا ثنائيًا مع أنظمة تشغيل أكثر شيوعًا، مثل تلك المشتقة من لينكس ، نظرًا لأن معظم الملفات التنفيذية الثنائية لا تُوزَّع عادةً على هذه الأنظمة.

توفر معظم أنظمة التشغيل توافقًا ثنائيًا، في كل إصدار منها، لمعظم الملفات الثنائية المصممة للعمل على إصدارات سابقة من نظام التشغيل. على سبيل المثال، يمكن تشغيل العديد من الملفات التنفيذية المُجمّعة لأنظمة Windows 3.1 و Windows 95 و Windows 2000 على أنظمة Windows XP أو Windows 7 ، كما أن العديد من تطبيقات DOS كانت تعمل على إصدارات أحدث بكثير من Windows حتى Windows 10 طالما كان NTVDM مدعومًا.

أجهزة متوافقة ثنائياً

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

أنظمة تشغيل متوافقة مع النظام الثنائي

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

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

لاحظ أن نظام التشغيل المتوافق ثنائيًا يختلف عن تشغيل نظام تشغيل بديل عبر المحاكاة الافتراضية ، والتي تُستخدم لتشغيل البرامج داخل نظام التشغيل البديل في حال عدم توافق نظام التشغيل الأساسي. أحيانًا، تُوفر المحاكاة الافتراضية مع نظام التشغيل الأساسي (أو يمكن الحصول على هذه البرامج)، مما يجعل نظام التشغيل الأساسي متوافقًا مع البرامج. على سبيل المثال، يسمح وضع Windows XP لنظام Windows 7 للمستخدمين بتشغيل إصدار 64 بت من Windows 7 مع تمكين البرامج القديمة من العمل على جهاز افتراضي 32 بت يعمل بنظام Windows XP ؛ كما تسمح برامج VMware Workstation / VMware Fusion و Parallels Workstation و Windows Virtual PC بتشغيل أنظمة تشغيل أخرى على Windows وLinux وmacOS.

على سبيل المثال، كان نظام التشغيل Mac OS X على معالجات PowerPC قادرًا على تشغيل برامج Mac OS 9 والإصدارات الأقدم من خلال Classic ، لكن هذا لم يجعل Mac OS X نظام تشغيل متوافقًا ثنائيًا مع Mac OS 9. بدلًا من ذلك، كانت بيئة Classic في الواقع تشغل Mac OS 9.1 في جهاز افتراضي ، يعمل كعملية عادية داخل Mac OS X. [ 1 ] [ 2 ]

انظر أيضاً

مراجع

  1. "بنية نظام ماك أو إس إكس" . 2002. مؤرشف من الأصل في 2 أغسطس 2002.
  2. سينغ، أميت (29 يونيو 2006). أساسيات نظام التشغيل ماك أو إس إكس: منهج النظم . أديسون-ويسلي . القسم 2.11.8: كلاسيك. ISBN 0-321-27854-2يُعدّ Classic Startup تطبيقًا مكتوبًا بلغة Mach-O، يُشغّل نظام التشغيل Mac OS 9 ضمن نطاق عناوين الذاكرة الخاص به. وهو يوفر طبقة تجريد للأجهزة بين نظامي التشغيل Mac OS 9 وMac OS X من خلال محاكاة عمليات الاعتراض، واستدعاءات النظام، والمقاطعات. ويعمل التطبيق في بيئة ذاكرة محمية، حيث تتراكب عدة عمليات لنظام التشغيل Mac OS 9 داخله فوق عملية واحدة لنظام التشغيل Mac OS X BSD.