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