المحاكاة الافتراضية إكس86

في أواخر التسعينيات، تم تحقيق المحاكاة الافتراضية x86 بواسطة تقنيات برمجية معقدة، ضرورية للتعويض عن افتقار المعالج إلى قدرات المحاكاة الافتراضية المدعومة بالأجهزة مع تحقيق أداء معقول. في عامي 2005 و2006، قدمت كل من إنتل ( VT-x ) و إي إم دي ( AMD-V ) دعمًا محدودًا للمحاكاة الافتراضية للأجهزة، مما سمح ببرامج محاكاة افتراضية أبسط ولكن قدمت القليل من مزايا السرعة. [1] دعم أكبر للأجهزة، والذي سمح بتحسينات كبيرة في السرعة، جاء مع نماذج معالج لاحقة.

المحاكاة الافتراضية القائمة على البرمجيات

[عدل]

تركز المناقشة التالية فقط على الوضع الظاهري للوضع المحمي للعمارة x86.

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

جعلت ثلاث تقنيات المحاكاة الافتراضية للوضع المحمي ممكنة:

  • تُستخدم الترجمة الثنائية لإعادة الكتابة من حيث تعليمات الحلقة 3 بعض تعليمات الحلقة 0، مثل POPF. [3] :1 [4] لتحسين الأداء، يجب تخزين الكتل الأساسية المترجمة في ذاكرة التخزين المؤقت بطريقة متماسكة تكتشف تصحيح التعليمات البرمجية (المستخدمة في VxDs على سبيل المثال) ، أو إعادة استخدام الصفحات بواسطة نظام تشغيل الضيف، أو حتى التعليمات البرمجية المعدلة ذاتيًا . [5]
  • يحتاج عدد من هياكل البيانات الرئيسية التي يستخدمها المعالج إلى التظليل. نظرًا لأن معظم أنظمة التشغيل تستخدم ذاكرة ظاهرية مقسمة إلى صفحات، ومنح نظام الضيف وصولاً مباشرًا إلى وحدة معالجة الوسائط (MMU) يعني فقد التحكم من قِبل مدير المحاكاة الافتراضية، فإن بعض عمل وحدة x86 MMU يجب أن يتكرر في برنامج لنظام تشغيل الضيف باستخدام تقنية تعرف بجداول صفحات الظل . [6] :5 :2
  • مضاهاة جهاز الإدخال / الإخراج: يجب محاكاة الأجهزة غير المدعومة في نظام التشغيل الضيف بواسطة محاكي جهاز يعمل في نظام التشغيل المضيف. [7]

المراجع

[عدل]
  1. ^ A Comparison of Software and Hardware Techniques for x86 Virtualization, Keith Adams and Ole Agesen, VMware, ASPLOS’06 October 21–25, 2006, San Jose, California, USA نسخة محفوظة 2010-08-20 على موقع واي باك مشين."Surprisingly, we find that the first-generation hardware support rarely offers performance advantages over existing software techniques. We ascribe this situation to high VMM/guest transition costs and a rigid programming model that leaves little room for software flexibility in managing either the frequency or cost of these transitions.
  2. ^ "Intel Virtualization Technology Processor Virtualization Extensions and Intel Trusted execution Technology" (PDF). Intel.com. 2007. مؤرشف من الأصل (PDF) في 2015-05-21. اطلع عليه بتاريخ 2016-12-12.
  3. ^ "A Comparison of Software and Hardware Techniques for x86 Virtualization" (PDF). VMware. مؤرشف من الأصل (PDF) في 2010-08-20. اطلع عليه بتاريخ 2010-09-08.
  4. ^ U.S. Patent 6٬397٬242
  5. ^ U.S. Patent 6٬704٬925
  6. ^ "Virtualization: architectural considerations and other evaluation criteria" (PDF). VMware. مؤرشف من الأصل (PDF) في 2011-02-06. اطلع عليه بتاريخ 2010-09-08.
  7. ^ U.S. Patent 6٬496٬847

روابط خارجية

[عدل]