وحدة المعالجة المركزية الافتراضية
المعلوماتية >>>> عام
في هذه المقالة، سنلقي نظرة على كيفية قيام مراقبات الأجهزة الافتراضية بتوفير وحدات معالجة افتراضية تعتمد على المعالجات ذات البينية X86 .
تم تصميم أنظمة التشغيل المخصصة للبنية x86 لتعمل مباشرة على العتاد الحاسوبي، و بالتالي فإن هذه الأنظمة تفترض عادة أنها تمتلك بشكل كامل مكونات العتاد الحاسوبي للجهزة التي تعمل عليها.
في الواقع، كما يظهر الشكل فإن البنية X86 تقدم أربعة مستويات من الامتيازات في استخدام أو تنفيذ التعليمات التي توفرها هذه البينة و حيث تدعى مستويات الامتيازات هذه عادة بالحلقات (الحلقة 3 ،2 ،1 ،0)، و التي تمكن بنية المعالجات هذه من التحكم بإمكانية الوصول إلى موارد العتاد الحاسوبي.
تتوقع أنظمة التشغيل أن تعمل في الحلقة رقم صفر و التي تعتبر الأكثر امتيازا، في حين أنه عادة ما يتم تشغيل تطبيقات المستخدم في الحلقة رقم 3 ( الأقل امتيازاً ).
يتطلب توفير الحوسبة الافتراضية في الأنظمة ذات البنية x86 وضع طبقة تحت نظام التشغيل تقوم بمهمة إنشاء و إدارة الأجهزة الافتراضية على الرغم من كون الموارد مشتركة بين العديد من هذه الأجهزة، فكيف يتم ذلك ؟
الحوسبة الافتراضية الكاملة Full virtualizaion ، الحوسبة شبه-الافتراضية Para-virtualization، و الحوسبة الافتراضية المدعومة من العتاد :Hardware-Assisted virtualization
للأسف، شكلت عدم القدرة على محاكاة بعض تعليمات بنية المعالجات x86 بشكل فعَّال تحديا كبيراً لتحقيق الحوسبة الافتراضية على الأنظمة الحاسوبية التي تعتمد هذه البنية. ولقد كانت التحديات تكمن بشكل أساسي في صعوبة حصر و ترجمة طلبات أنظمة التشغيل المستضافة لتنفيذ التعليمات الحساسة و التعليمات ذات الامتيازات التي لا يمكن أن تحقق الغاية المطلوبة منها إلا إذا تم تنفيذها في حلقة الامتيازات رقم صفر ضمن بيئة الحوسبة الفتراضية.
تم استخدام تقنيتين لمواجهة هذه التحديات و هما: الحوسبة الفتراضية الكاملة Full virtualizaion ، و الحوسبة شبه-الافتراضية Para-virtualization.
الحوسبة الافتراضية الكاملة هي مزيج بين التنفيذ المباشر للتعليمات المطلوبة من الجهاز الافتراضي مع ترجمة ثنائية (Binary Translation) للتعليمات الغير قابلة للتنفيذ في حلقة الامتيازات التي يعمل ضمنها الجهاز الافتراضي.
كما هو موضح في الشكل، يتم تشغيل مراقب الأجهزة الافتراضية في حلقة الامتيازات رقم صفر بينما يتم تنفيذ تعليمات نظام التشغيل الذي يعمل على الجهاز الافتراضي في حلقة الامتيازات فوق الحلقة صفر لكنها تحت الحلقة رقم 3 التي تعمل فيها التطبيقات التي يتم تنفيذها ضمن نظام التشغيل هذا (حلقة الامتيازات رقم 1 في الشكل).
بعد ذلك يقوم مراقب الأجهزة الافتراضية بالسماح بتنفيذ التعليمات التي تتم في الحلقة 3 بشكل مباشر على العتاد الحاسوبي، بينما يقوم بترجمة ثنائية لتعليمات نظام التشغيل المستضاف و التي تتم في حلقة الامتيازات رقم 1 ليتم تنفيذها في الحلقة رقم 0.
من خلل عملية الترجمة هذه يتم استبدال التعليمات الحساسة بسلسلة تعليمات جديدة تضمن تحقيق نفس الغاية المطلوبة لكن دون التأثير على سير عمل الأجهزة الافتراضية الأخرى الموجودة على نفس النظام الحاسوبي.
يضمن هذا الأسلوب استقللاً تاماً لنظام التشغيل المستضاف عن بيئة الحوسبة الافتراضية التي يعمل ضمنها بحيث يعمل نظام التشغيل هذا دون الحاجة لأن يدرك أنه يعمل ضمن بيئة افتراضية و دون الحاجة إلى أي تعديل فيه.
أما الحوسبة شبه الافتراضية فتسمح لنظام التشغيل المستضاف بالعمل ضمن حلقة الامتيازات رقم 0 (كما هو موضح بالشكل) لكنها تتضمن تعديل لنواة نظام التشغيل هذا بحيث تستبدل التعليمات الحساسة باستدعاء تعليمات بديلة (Hypercalls) من مراقب الأجهزة الافتراضية، و الذي بدوره يقوم بتنفيذ تعليماته البديلة هذه على العتاد الحاسوبي لتحقيق الغاية المطلوبة من نظام التشغيل المستضاف.
على الرغم من أن الحوسبة شبه الافتراضية تتجنب الحمل الناتج عن ترجمة التعليمات و بالتالي تعطي أداءا أفضل، إلا أن الجانب السلبي الواضح يبقى ضرورة تعديل نظام التشغيل المستضاف، و لا يعد هذا خياراً مقبولاً بالنسبة لأنظمة التشغيل غير مفتوحة المصدر مثل Windows الأمر الذي لا يتيح مثل هذه التعديلات.
كأسلوب بديل لأسلوبَي الحوسبة الافتراضية السابقين ظهرت الحوسبة الافتراضية المدعومة من العتاد، والتي تعتبر حديثةً نسبياً، حيث يمكن تطبيق حوسبة افتراضية كاملة فعّالة بالاعتماد على مساعدة من قدرات يوفرها العتاد الحاسوبي الذي تعمل ضمنه البيئة الافتراضية، و التي يتم توفيرها في المقام الأول من قبل بنية وحدات المعالجة الفيزيائية (الحقيقية) المستخدمة.
في الحوسبة الافتراضية المدعومة من العتاد يتم توفير حلقة امتيازات إضافية تدعى نمط الجذر (Root Mode) تقع تحت الحلقة 0 يعمل ضمنها مراقب الأجهزة الافتراضية، فيما يتم تنفيذ نظام التشغيل المستضاف غير المعدل في الحلقة 0، و دون الحاجة إلى ترجمة ثنائية أو استبدال التعليمات يتولى العتاد الحاسوبي توجيه تنفيذ التعليمات الحساسة التي يطلبها نظام التشغيل المستضاف و المستدعاة في الحلقة 0 إلى مراقب الأجهزة الافتراضية الذي يعمل في نمط الجذر، و بالتالي يتولى المراقب تنفيذ هذه التعليمات.
تعتبر تقنية الحوسبة الافتراضية في معالجات انتل (Intel VT-x ) و معالجات( AMD )(AMD-V ) أمثلة على المعالجات التي
توفر دعما للحوسبة الافتراضية من خلل العتاد.
سنستكمل في مقالتنا القادمة مكونات الخادم الفتراضية بالحديث عن الذاكرة الافتراضية و أجهزة الادخال و الإخراج الافتراضية، فانتظرونا ...
المصدر هنا