آلة النظام الافتراضية

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

الأجهزة الافتراضية للنظام

مزايا النظام الافتراضي للآلة:

  • يمكن أن تتعايش بيئات أنظمة تشغيل متعددة على نفس القرص الصلب الرئيسي، مع قسم افتراضي يسمح بمشاركة الملفات المُنشأة إما في نظام التشغيل "المضيف" أو البيئة الافتراضية "الضيف". ويمكن إنشاء عمليات تثبيت البرامج الإضافية، والاتصال اللاسلكي، والنسخ المتماثل عن بُعد، مثل الطباعة والفاكس، في أي من أنظمة التشغيل المضيفة أو الضيف. وبغض النظر عن النظام، تُخزَّن جميع الملفات على القرص الصلب لنظام التشغيل المضيف.
  • تُعدّ عمليات توفير التطبيقات وصيانتها وتوافرها العالي والتعافي من الكوارث من الأمور المتأصلة في برامج الآلات الافتراضية المختارة.
  • يمكن توفير بيئات أجهزة محاكاة مختلفة عن بنية مجموعة تعليمات المضيف (ISA)، من خلال المحاكاة أو باستخدام التجميع في الوقت المناسب .

تتمثل العيوب الرئيسية للآلات الافتراضية فيما يلي:

  • تكون الآلة الافتراضية أقل كفاءة من الآلة الفعلية عندما تصل إلى القرص الصلب المضيف بشكل غير مباشر.
  • عند تشغيل عدة أجهزة افتراضية في وقت واحد على القرص الصلب للجهاز المضيف، قد تُظهر الأجهزة الافتراضية الإضافية أداءً متفاوتًا أو غير مستقر (من حيث سرعة التنفيذ والحماية من البرامج الضارة). ويعتمد ذلك على حجم البيانات التي تُحمّلها الأجهزة الافتراضية الأخرى على النظام، ما لم يوفر برنامج الأجهزة الافتراضية المُختار عزلًا زمنيًا بينها .
  • لا تتوافق برامج الحماية من البرامج الضارة للأجهزة الافتراضية بالضرورة مع "المضيف"، وقد تتطلب برامج منفصلة.

يتم استخدام العديد من الأجهزة الافتراضية التي تعمل بنظام تشغيل ضيف خاص بها بشكل متكرر لتوحيد الخوادم من أجل تجنب التداخل من الأجهزة الافتراضية المنفصلة على نفس منصة الجهاز الفعلية.

كانت الرغبة في تشغيل أنظمة تشغيل متعددة الدافع الأساسي وراء ظهور الآلات الافتراضية، وذلك لإتاحة مشاركة الوقت بين عدة أنظمة تشغيل أحادية المهمة. ويمكن اعتبار الآلة الافتراضية للنظام، من بعض النواحي، تعميمًا لمفهوم الذاكرة الافتراضية الذي سبقها تاريخيًا. وقد طبّق نظام CP/CMS من شركة IBM ، وهو أول نظام يسمح بالمحاكاة الافتراضية الكاملة ، مشاركة الوقت من خلال تزويد كل مستخدم بنظام تشغيل أحادي المستخدم، وهو نظام CMS . وعلى عكس الذاكرة الافتراضية، فإن الآلة الافتراضية للنظام تُخوّل المستخدم كتابة تعليمات ذات امتيازات خاصة في شفرته البرمجية. وقد تميّز هذا النهج بمزايا معينة، مثل إضافة أجهزة إدخال/إخراج غير مسموح بها في النظام القياسي. [ 3 ]

مع تطور تقنية الذاكرة الافتراضية لأغراض المحاكاة الافتراضية، قد تُطبَّق أنظمة جديدة لإدارة تخصيص الذاكرة الزائد ، وذلك لمشاركة الذاكرة بين عدة أجهزة افتراضية تعمل على نظام تشغيل حاسوبي واحد. قد يكون من الممكن مشاركة "صفحات الذاكرة" ذات المحتوى المتطابق بين عدة أجهزة افتراضية تعمل على نفس الجهاز الفعلي، مما قد يؤدي إلى ربطها بنفس الصفحة الفعلية باستخدام تقنية تُعرف باسم دمج صفحات النواة المتطابقة . يُعد هذا مفيدًا بشكل خاص للصفحات للقراءة فقط، مثل تلك التي تحتوي على مقاطع برمجية؛ وينطبق هذا بشكل خاص على عدة أجهزة افتراضية تُشغِّل نفس البرامج أو برامج مشابهة، أو مكتبات برمجية، أو خوادم ويب، أو مكونات برمجية وسيطة، وما إلى ذلك. لا يشترط أن تتوافق أنظمة التشغيل الضيفة مع مكونات الجهاز المضيف، مما يُتيح تشغيل أنظمة تشغيل مختلفة على نفس الحاسوب (مثل مايكروسوفت ويندوز ، أو لينكس ، أو إصدارات سابقة من نظام التشغيل) لدعم البرامج المستقبلية.

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

التقنيات

تُستخدم تقنيات محاكاة افتراضية مختلفة، بناءً على الاستخدام المطلوب. يعتمد التنفيذ الأصلي على المحاكاة الافتراضية المباشرة للأجهزة الأساسية، مما يوفر نسخًا متعددة من نفس بنية الجهاز الحقيقي، قادرة على تشغيل أنظمة تشغيل كاملة. يمكن لبعض الأجهزة الافتراضية أيضًا محاكاة بنى مختلفة، مما يسمح بتشغيل تطبيقات برمجية وأنظمة تشغيل مصممة لمعالجات أو بنى أخرى. تتيح المحاكاة الافتراضية على مستوى نظام التشغيل تقسيم موارد الحاسوب عبر دعم النواة لنسخ متعددة معزولة من مساحة المستخدم ، والتي تُسمى عادةً حاويات ، وقد تبدو للمستخدمين النهائيين كأجهزة حقيقية . بعض بنى الحواسيب قادرة على المحاكاة الافتراضية المدعومة بالأجهزة ، والتي تُمكّن من محاكاة افتراضية كاملة وفعالة باستخدام إمكانيات الأجهزة الخاصة بالمحاكاة الافتراضية، وخاصةً من المعالجات المضيفة.

محاكاة الأجهزة الخام الأساسية (التنفيذ الأصلي)

يُوصف هذا النهج بأنه محاكاة افتراضية كاملة للأجهزة، ويمكن تنفيذه باستخدام مُشرف أجهزة افتراضية من النوع الأول أو الثاني : يعمل مُشرف الأجهزة الافتراضي من النوع الأول مباشرةً على الأجهزة، بينما يعمل مُشرف الأجهزة الافتراضي من النوع الثاني على نظام تشغيل آخر، مثل لينكس أو ويندوز . يمكن لكل جهاز افتراضي تشغيل أي نظام تشغيل يدعمه الجهاز الأساسي. وبالتالي، يمكن للمستخدمين تشغيل نظامي تشغيل "ضيف" مختلفين أو أكثر في وقت واحد، على أجهزة افتراضية "خاصة" منفصلة.

كان نظام CP-40 من IBM النظام الرائد الذي استخدم هذا المفهوم ، وهو الإصدار الأول (1967) من نظام CP/CMS من IBM (1967-1972) والسلف لعائلة أنظمة VM من IBM (1972-حتى الآن). في بنية VM، يُشغّل معظم المستخدمين نظام تشغيل بسيطًا نسبيًا للحوسبة التفاعلية أحادية المستخدم، وهو CMS ، كنظام "ضيف" فوق برنامج التحكم في VM ( VM-CP ). حافظ هذا النهج على بساطة تصميم CMS، كما لو كان يعمل بمفرده؛ إذ يُوفّر برنامج التحكم خدمات تعدد المهام وإدارة الموارد "خلف الكواليس". بالإضافة إلى CMS، تُنفّذ مهام الاتصال ومهام النظام الأخرى بواسطة أنظمة VM متعددة المهام (RSCS، GCS، TCP/IP، UNIX)، ويمكن للمستخدمين تشغيل أي من أنظمة تشغيل IBM الأخرى، مثل MVS ، أو حتى نظام CP الجديد نفسه أو z/OS . حتى نظام CMS البسيط كان يُمكن تشغيله في بيئة متعددة الخيوط (LISTSERV، TRICKLE). يُعدّ z/VM الإصدار الحالي من VM، ويُستخدم لدعم مئات أو آلاف الأجهزة الافتراضية على حاسوب مركزي مُحدد. تستخدم بعض الأنظمة نظام Linux على IBM Z لتشغيل خوادم الويب ، حيث يعمل Linux كنظام تشغيل داخل العديد من الأجهزة الافتراضية.

تُعدّ المحاكاة الافتراضية الكاملة مفيدةً للغاية في تطوير أنظمة التشغيل، حيث يُمكن تشغيل التعليمات البرمجية التجريبية الجديدة بالتزامن مع الإصدارات الأقدم والأكثر استقرارًا، كلٌّ منها في جهاز افتراضي منفصل. بل يُمكن أن تكون هذه العملية تكرارية : فقد قامت شركة IBM بتصحيح أخطاء الإصدارات الجديدة من نظام تشغيلها للأجهزة الافتراضية، VM ، في جهاز افتراضي يعمل بإصدار أقدم من VM، بل واستخدمت هذه التقنية لمحاكاة أجهزة جديدة. [ ملاحظة 1 ]

لا يفي تصميم مجموعة تعليمات x86 القياسي المستخدم في أجهزة الكمبيوتر الحديثة بمتطلبات المحاكاة الافتراضية لبوبك وغولدبيرغ . ومن الجدير بالذكر أنه لا يوجد وضع تنفيذ يتم فيه اعتراض جميع تعليمات الآلة الحساسة، وهو ما كان سيسمح بالمحاكاة الافتراضية لكل تعليمة على حدة.

على الرغم من هذه القيود، تمكنت العديد من حزم البرامج من توفير المحاكاة الافتراضية على معمارية x86 ، مع أن إعادة تجميع التعليمات البرمجية ذات الامتيازات ديناميكيًا، كما طبقتها VMware لأول مرة ، تتسبب في بعض التكاليف الإضافية على الأداء مقارنةً بجهاز افتراضي يعمل على معمارية قابلة للمحاكاة الافتراضية أصلاً مثل IBM System/370 أو Motorola MC68020 . والآن، تمكنت العديد من حزم البرامج الأخرى، مثل Virtual PC و VirtualBox و Parallels Workstation و Virtual Iron، من تطبيق المحاكاة الافتراضية على أجهزة x86.

أضافت شركتا إنتل وإيه إم دي ميزات إلى معالجات x86 الخاصة بهما لتمكين المحاكاة الافتراضية في الأجهزة .

بالإضافة إلى محاكاة موارد جهاز واحد، يمكن دمج عدة عقد مستقلة في مجموعة والوصول إليها كجهاز NUMA افتراضي واحد . [ 5 ]

محاكاة نظام غير أصلي

يمكن للآلات الافتراضية أيضًا أن تؤدي دور المحاكي ، مما يسمح بتشغيل تطبيقات البرامج وأنظمة التشغيل المكتوبة لبنية معالج كمبيوتر أخرى.

المحاكاة الافتراضية على مستوى نظام التشغيل

تُعدّ تقنية المحاكاة الافتراضية على مستوى نظام التشغيل إحدى تقنيات محاكاة الخوادم ، حيث تُحاكي الخوادم على مستوى نظام التشغيل (النواة). ويمكن تشبيهها بتقسيم النظام: إذ يُقسّم خادم فعلي واحد إلى عدة أقسام صغيرة (تُسمى أيضًا بيئات افتراضية، أو خوادم افتراضية خاصة ، أو ضيوف، أو مناطق، وما إلى ذلك)؛ ويبدو كل قسم من هذه الأقسام وكأنه خادم حقيقي من وجهة نظر مستخدميه.

على سبيل المثال، تدعم مناطق سولاريس تشغيل أنظمة تشغيل ضيف متعددة ضمن نظام تشغيل واحد، مثل سولاريس  10. [ 6 ] يمكن لأنظمة التشغيل الضيفة استخدام نفس مستوى النواة مع نفس إصدار نظام التشغيل، أو يمكن أن تكون نسخة منفصلة من نظام التشغيل بإصدار نواة مختلف باستخدام مناطق نواة سولاريس. [ 7 ] تتطلب مناطق سولاريس الأصلية أيضًا أن يكون نظام التشغيل المضيف إصدارًا من سولاريس؛ ولا تدعم أنظمة التشغيل الأخرى من شركات مصنعة أخرى. مع ذلك، يلزم استخدام مناطق تحمل علامة سولاريس التجارية لإضافة أنظمة تشغيل أخرى كمناطق.

ومن الأمثلة الأخرى أقسام أحمال العمل النظامية (WPARs)، التي تم تقديمها في الإصدار 6.1 من نظام التشغيل IBM AIX. أقسام أحمال العمل النظامية هي أقسام برمجية تعمل ضمن نسخة واحدة من بيئة نظام التشغيل AIX العالمية.

تتميز بنية نظام التشغيل بانخفاض الحمل الزائد، مما يُسهم في الاستخدام الأمثل لموارد الخادم. ولا تُضيف المحاكاة الافتراضية سوى حمل زائد ضئيل، وتتيح تشغيل مئات الخوادم الافتراضية الخاصة على خادم فعلي واحد. في المقابل، لا تستطيع أساليب مثل المحاكاة الافتراضية الكاملة (مثل VMware ) والمحاكاة الافتراضية الجزئية (مثل Xen أو UML ) تحقيق هذا المستوى من الكثافة، نظرًا للحمل الزائد لتشغيل أنوية متعددة. من جهة أخرى، لا تسمح المحاكاة الافتراضية على مستوى نظام التشغيل بتشغيل أنظمة تشغيل مختلفة (أي أنوية مختلفة)، على الرغم من إمكانية استخدام مكتبات وتوزيعات مختلفة، وما إلى ذلك. وتُستخدم تقنيات محاكاة افتراضية مختلفة، بناءً على الاستخدام المطلوب. يعتمد التنفيذ الأصلي على المحاكاة الافتراضية المباشرة للأجهزة الخام الأساسية، وبالتالي يوفر "نسخًا" متعددة من نفس البنية التي يعتمد عليها الجهاز الحقيقي، قادرة على تشغيل أنظمة تشغيل كاملة. كما يمكن لبعض الأجهزة الافتراضية محاكاة بنى مختلفة، والسماح بتشغيل تطبيقات برمجية وأنظمة تشغيل مصممة لوحدة معالجة مركزية أو بنية أخرى. تتيح تقنية المحاكاة الافتراضية على مستوى نظام التشغيل تقسيم موارد الحاسوب عبر دعم النواة لعدة نسخ معزولة من مساحة المستخدم، والتي تُسمى عادةً بالحاويات، وقد تبدو للمستخدمين النهائيين وكأنها أجهزة حقيقية. بعض بنى الحواسيب قادرة على المحاكاة الافتراضية المدعومة بالأجهزة، مما يُمكّن من تحقيق محاكاة افتراضية كاملة وفعّالة باستخدام إمكانيات الأجهزة الخاصة بالمحاكاة الافتراضية، وخاصةً من وحدات المعالجة المركزية للمضيف.

الأجهزة التي تدعم المحاكاة الافتراضية

تتضمن أمثلة الأجهزة التي تدعم تقنية المحاكاة الافتراضية ما يلي:

أمثلة على الأجهزة التي تحتوي على ميزات لدعم محاكاة الأنظمة غير الأصلية:

انظر أيضاً

ملحوظات

  1. انظر تاريخ نظام التشغيل CP/CMS للاطلاع على استخدام شركة IBM للآلات الافتراضية في تطوير أنظمة التشغيل ومحاكاة الأجهزة الجديدة

مراجع

  1. "حول التعبير عن نماذج التزامن المختلفة على أنظمة التنفيذ الافتراضية" . وقائع المؤتمر السنوي الثالث والثلاثين لمعهد مهندسي الكهرباء والإلكترونيات الدولي لبرمجيات وتطبيقات الحاسوب، COMPSAC 2009. سياتل، واشنطن، الولايات المتحدة الأمريكية. يناير 2009. doi : 10.1109/COMPSAC.2009.102 .
  2. "الآلات الافتراضية: المحاكاة الافتراضية مقابل المحاكاة" . مؤرشف من الأصل بتاريخ 15 يوليو 2014. تم الاطلاع عليه بتاريخ 11 مارس 2011 .
  3. سميث ونير، الصفحات 395-396
  4. "إعادة تشغيل الخوادم بسرعة فائقة - سبب آخر لروعة تقنية المحاكاة الافتراضية" . vmwarez.com . 9 مايو 2006. مؤرشف من الأصل في 14 يونيو 2006. تم الاطلاع عليه في 14 يونيو 2013 .
  5. ماثيو تشابمان؛ جيرنوت هايزر (يونيو 2009). "vNUMA: معالج متعدد افتراضي بذاكرة مشتركة" (ملف PDF) . وقائع المؤتمر التقني السنوي لـ USENIX لعام 2009. سان دييغو، كاليفورنيا، الولايات المتحدة الأمريكية. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 13 سبتمبر 2009.
  6. "نظرة عامة على مناطق أوراكل سولاريس" . docs.oracle.com . تم الاطلاع عليه بتاريخ 26-06-2015 .
  7. "حول مناطق نواة أوراكل سولاريس" . docs.oracle.com . تم الاطلاع عليه بتاريخ 26-06-2015 .

للمزيد من القراءة

  • جيمس إي. سميث، رافي ناير، الآلات الافتراضية: منصات متعددة الاستخدامات للأنظمة والعمليات ، مورغان كوفمان، مايو 2005، رقم ISBN 1-55860-910-5، 656 صفحة (تغطي كلاً من العمليات والآلات الافتراضية للنظام)
  • كريج، إيان د. الآلات الافتراضية . سبرينغر ، 2006، رقم ISBN 1-85233-969-1، 269 صفحة (تغطي فقط الآلات الافتراضية للعمليات)
  • إعادة إحياء الآلات الافتراضية، مقال منشور على موقع ACM Queue بقلم مندل روزنبلوم، المؤسس المشارك لشركة VMware