الـ Virtualization (الأنظمة الوهمية أو الأفتراضية) تقنية تعمل على فصل الـ Service request عن الـ Physical Service delivery عن طريق إضافة طبقة بين الـ Guest OS و الـ Hardware اسمها Hypervisor تسمح بتشغيل اكتر من OS بالتوازي على نفس الجهاز في شكل Virtual machines منفصلة ومعزولة عن بعضها ويتم عن طريق تحديد الـ Resources لكل VM من CPU و Memory و Storage و I/O devices .
انواع الـ Hypervisors :
1- Hosted Hypervisors
ويكون في شكل سوفت وير على نظام التشغيل الأساسي على الـ Host Machine ويكون المسؤول عن الـ Scheduling و Partitioning و الـIsolation بين الـ VMS ، ومن أمثلته VMware Workstation.
2- Bare Metal Hypervisors
في هذا النوع يكون الـ Hypervisor هو نظام التشغيل الأساسي على الجهاز ويتم عمل الـ VMS عليه ، ومن امثلته VMware ESXi.
– من أهم التحديات التي كانت تقابل هذه التقنية في بدايتها هي الـ cpu virtualization وهذه بسبب إن في 4 مستويات للـ privilege في البروسيسور من ring 0 الى ring 3 …. العمليات الخاصة بنظام التشغيل في الـ x86 architecture تعمل في ring 0 و الـ user code في ring 3 وهذه معناه ان في حالة الـ virtual machine الـ guest OS يطلب access لـ ring 0 الخاص بالـ hypervisor في حالة الـ bare metalفبالتالي كانوا يعتبروا ان الـ x86 virtualization شئ مستحيل.
– في سنة 1998 قدمت شركة VMware أول طريقة للـ cpu virtualization بإستخدام binary translation ويتم فيها استبدال الـ non-virtualizable instructions بـ instructions ثانية تحقق نفس التأثير على الهاردوير الخاص بالـ VM والذي يقوم بهذه العملية هو الـ VMM) Virtual Machine Monitor) قبل وصولها للـ virtualization layer ، أما بالنسبة للـ user level code فبيتم تشغيله مباشرة على الـ cpu بدون إستبدال ، وتسمى هذه التقنية full virtualization.
– ثاني تقنية اسمها OS assisted virtualization أو paravirtualization و يتم فيها تعديل أجزاء من الـ guest os kernel لكي تستبدل الـnon-virtualizable instructions بما يسمى hyper calls وتتعامل مع الـ virtualization layer مباشرة بدون استبدال بهدف تحسين الـperformance ويتم التعديل عن طريق إضافة drivers لنظام التشغيل احيانا ، ومن امثلتها VMware tools و PVSCSi adapters فيvSphere. ملحوظة : ليست كل أنظمة التشغيل تدعم الـ paravirtualization مثل windows 2000 .
– الفرق بين full virtualization و الـ paravitualization ان في الـ full يتم استبدال كل الـ OS calls عن طربق الـ Binary translation ، اما في الـ paravirtualization الـ OS يعرف انه virtualized وبالتالي يقل الـ virtualization overhead.
– ثالث تقنية اسمها Hardware Assisted Virtualization وتعتبر نتيجة لتطور صناعة البروسيسور واضافة دعم للـ Virtualization في البروسيسور وأول تقنية كانت intel VT-x و AMD-V وهما يسمحون للـ VMM ان يعمل في Root Mode جديد تحت ring 0 فأصبح الـguest OS instructions في ring 0 لم يعد هناك داعي للـ binary translation او الـ paravirtualization ، ومن ضمن تطبيقات هذا النوع فيvSphere هي VMDirectPath ويعتبر تطبيق لتقنية intel VT-d.