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