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

ما الذي يقوم به المحاكي emulator

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

مما يتكون المحاكي emulator

  • محاكي وحدة المعالجة المركزية.
  • محاكي نظام الذاكرة الفرعي.
  • محاكي جهاز الإدخال والإخراج المختلفة.1

أمثلة عن استخدام المحاكي

يعد android studio مثالًا عن المحاكي emulator وهو عبارة عن برنامجٍ مشتركٍ لتطوير تطبيقات الأندرويد، يمكن للمبرمج أن ينشئ محاكيًا يبدو مشابهًا لهاتفٍ حقيقيٍّ ويمكنه تنفيذ التطبيقات المطورة باستخدام المحاكي emulator لذلك ليس من الضروري استخدام هاتفٍ دقيقٍ لاختبار التطبيق لأن المحاكي emulator يعمل وكأنه هاتفٌ حقيقيٌّ ويقوم بالتحقق من التطبيقات.2

وكمثالٍ آخر عن المحاكي emulator لدينا برنامج محاكاة وحدة التحكم الخاصة بألعاب الفيديو الحاسوبية، عند تثبيت برنامج المحاكاة سيتمكن مستخدم الحاسوب من اللعب بألعاب الفيديو المصممة بالأصل لوحدة تحكم الألعاب.3

كيف يستطيع المحاكي emulator أن يجعل المضيف يعمل مثل الضيف

يتم تثبيت بعض أجهزة الحاسوب التي تعمل بنظام Macintosh مع بطاقاتٍ متوافقةٍ مع نظام التشغيل بحيث يمكنها تشغيل برامج الحاسوب، من ناحيةٍ أخرى تستخدم أجهزة المحاكي emulator في مجالاتٍ مختلفةٍ مثل الاختبار والتعليم والتدريب وألعاب الفيديو والتجارب العلمية فهي تظهر آثار المواقف الحقيقية.

كيف يعمل المحاكي emulator

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

المحاكاة منخفضة المستوى

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

المحاكاة عالية المستوى

تتخذ المحاكاة عالية المستوى نهجًا مختلفًا لمحاكاة النظام فبدلًا من محاولة محاكاة الأجزاء المادية فإنها تقوم بمحاكاة عملٍ أو وظائف الأجزاء المادية، لدى المحاكاة عالية المستوى ثلاث طرقٍ لمحاكاة وظائف الأجزاء المادية وهي:

  • الترجمة: يقوم المحاكي emulator بتنفيذ التعليمات البرمجية الخاصة بالتطبيق سطرًا سطرًا عن طريق محاكاةٍ أو تقليدٍ ما يفترض أن تقوم به كل تعليمةٍ.
  • إعادة التجميع الديناميكية: يبحث المحاكي في العديد من كتل تعليمات المعالج الخاصة بالتطبيقات ويرى إذا ما كان بإمكانه تحسينها لتعمل بشكلٍ أفضل على معالج الحاسوب المضيف.
  • قوائم الايقاف أو الاعتراض: تطلب المعالجات المشتركة مثل وحدة المعالجات الرسومية وشريحة الصوت من المعالج الرئيسي إرسال قائمة الأوامر، وهذه القائمة عبارةٌ عن سلسلةٍ من الإرشادات التي تخبر المعالج المشترك بما يجب القيام به، يستطيع المحاكي الاعتراض على هذه القائمة وتحويلها إلى شيءٍ يمكن للحاسوب المضيف معالجته على معالجٍ مشتركٍ مماثلٍ.4

المراجع