الأحد، 10 أغسطس، 2014

ميزات و عيوب الاعتماد علي آلة وهمية virtual machine في العمل

حينما تستخدم حاسوبك في إنجاز أحد الأمور التي تعمل عليها، فإنك في المعتاد ستستخدم نظام التشغيل المُنصَّب عليه و البرمجيات التي تم تثبيتها علي ذلك النظام، و هو الأمر العادي و الطبعي. و لكن هناك خيار مختلف يقضي بأن تقوم بتنصيب نظام تشغيل آخر علي آلة وهمية Virtual Machine، و أن تقوم بتنصيب البرامج التي تحتاجها علي ذلك النظام؛ بحيث تستخدم تلك الآلة للعمل كأنها هي حاسوبك الرئيس و ليست مجرد آلة وهمية !، و هي الفكرة التي قد تبدو غريبة و غير ذات جدوي في النظرة الأولي (خصوصاً إذا لم يكن لك باع طويل في بناء البرمجيات متعددة المنصات cross-platform)، إلا أن لها الكثير من الفوائد في أحيان معينة.
 
لذلك ففي هذا المقال سأتحدث عن فوائد و عيوب هذه الطريقة للعمل من وجهة نظري، و الجدير بالذكر أنني جربتُ هذه الطريقة لبعض الوقت (القليل جداً من الوقت في واقع الأمر)، مما يعني أن أغلب ما سأذكره هنا (إن لم يكن كله) ليس كلاماً نظرياً، بل هو نتيجة خبرة عملية حتي و إن كانت لفترة صغيرة للغاية.


هناك أكثر من ميزة للعمل علي جهاز وهمي، منها:
  • القدرة علي العمل علي أنظمة تشغيل لا نريد تنصيبها علي أجهزتنا الشخصية (أو لا نستطيع)، و في نفس الوقت مضطرون للعمل عليها لأن الأدوات البرمجية التي نحتاجها للقيام بالعمل لا تتوفر أو لا تعمل بشكل مناسب إلا علي ذلك النظام. فلنتخيل أنك تحب الـwindows 8.1 مثلي و تظن أنه أجمل شيء تم اختراعه بعد الفراخ المشوية، و لكنك وجدتَ أحد عملائك يطلب منك العمل علي مشروع معين يستلزم أدوات برمجية لا تعمل إلا علي windows XP، ساعتها إن تجاهلتَ حل العمل علي جهاز وهمي فسيكون لزاماً عليك أن تقوم بتنصيب windows XP علي جهازك الجديد بدلاً من الإصدارة الأحدث ! (حسبما أعلم فإنه لا يمكنك ذلك عملياً بسبب الـUEFI و لكنني أفترض القدرة افتراضاَ جدلياً).
    أو سيكون لزاماً عليك أن تخصص جهازاً آخر لإتمام المهمة، و هو ما قد يكون مناسباً و عملياً و لكني لا أميل إليه؛ بسبب أنني كمطور أعتمد علي جهازي الذي بين يدي لعمل كل شيء و لا أحب التنقل بين أكثر من جهاز (انتبه إلي أن وجود أجهزة أخري للعمل قد يكون أمراً ضرورياً للقيام بمهمات عملك في بعض الأحيان).

    
    نظام XP علي آلة وهمية في برنامج VirtualBox، و المثبت علي نظام PClinuxOS 2010

    
    نظام kubuntu علي برنامج VirtualBox. المثبت علي نظام Windows8.1
  • القدرة علي الاستغناء عن الحاسوب (أو علي الأقل نظام التشغيل المثبت عليه) بمنتهي السهولة مع الاحتفاظ بكل عملك و إعداداتك كما هي، بينما في حالة الاعتماد علي نظام التشغيل المثبت علي الجهاز نفسه فإنه لا يمكنك نقل نظام
    التشغيل ببرامجه إلي جهاز جديد، أو علي الأقل لن يكون الأمر بنفس السهولة البالغة؛ حيث أن الأمر في حالة الآلة الوهمية لن يتعدي نقل ملف واحد (هو ملف القرص الصلب الوهمي، مثلاً في حالتي أنا يمكنني نقل الآلة الوهمية التي أعمل عليها بنظام XP، بمجرد نقل ملف XP.VDI، ثم عمل ألة وهمية تعتمد علي ذلك القرص الوهمي في الجهاز الجديد، و هكذا تجد أنك تعود للعمل علي نظام تشغيلك نفسه بكل الإعدادات و البرامج المثبتة في ثوان معدودات).
  • التحكم التام في بيئة العمل بشكل أبسط بكثير جداً من التحكم في نظام التشغيل المثبت علي الجهاز نفسه، فمثلاً حينما تستخدم أمر nmake في سطر أوامر الـvisual studio تجد نفسك في مطالباً في بعض الأحيان بألا يعمل علي جهازك إلا معالج واحد (صدق أو لا تصدق، و لكن هذا قد يكون ضرورياً لتفادي علة bug معينة توجد في إصدارتي 2005 و 2008 من الـvisual studio !)، و في حالة العمل علي نظام التشغيل المثبت علي الجهاز الحقيقي فستضطر في الغالب إلي إعادة التشغيل و ضبط هذا الأمر من داخل عالم الظلام و الكوابيس BIOS (لو كنت تعمل بنظام BeOS أو haiku فستكفي نقرات من الفأرة لفعل ذلك !)، بينما في حالة الجهاز الوهمي فستكفي نقرات بسيطة لضبط المسألة و إعادة تشغيل الجهاز الوهمي بمنتهي البساطة.
  • حماية نظام التشغيل الأساسي من “العك” البالغ (و أعتذر عن التعبير العامي و لكنه معبر للغاية)؛ حيث تجد أن أنظمة مثل الـwindows يصير الـregistery الخاص بها في فوضي تامة بعد عمليات التنصيب و إزالة التنصيب الكثيرة التي يقوم بها المبرمج، و ربما كذلك بسبب تجربته عملياً لبرمجياته التي يطورها. بينما الجهاز الوهمي يقدم بيئة آمنة صالحة للتجربة، و بالإمكان عمل أكثر من بيئة وهمية لعمل التجارب التي قد تضر بنظام التشغيل و/أو إعدادات مستخدميه، و لو ضرت التجارب الجهاز الوهمي فإنها لن تضر سوي القرص الوهمي الخاص بذلك الجهاز فقط، و يمكن الاحتياط لهذا عن طريق الاحتفاظ بنسخة من القرص الوهمي قبل إجراء التجارب.
 

أما عيوب هذا الأمر فمنها بالنسبة لي:
  • استهلاك الموارد بشدة، و خصوصاً حينما يكون نظامك الأساسي ثقيلاً مثل windows 8، و تقوم بتنصيب نظام آخر ثقيل مثل windows 7 علي جهاز حاسوب متواضع الإمكانيات قليلاً، بل حتي و إن كان النظام الذي ستنصبه علي جهاز وهمي أخف من الأنظمة سالفة الذِكر (مثل توزيعة kubuntu) فربما تحس بثقل الجهاز عند العمل علي أمور عادية، و هو ما سيحيل حياتك إلي كابوس بشع عند محاولة القيام بأمور تستلزم ذاكرة و وقت معالَجة كبيرين. لذلك سيكون لزاماً عليك إما أن تنصب علي الجهاز الوهمي أنظمة تشغيل خفيفة (مثل XP و توزيعات الـGNU\linux الخفيفة)، أو أن تشتري جهازاً أكبر من حيث الذاكرة و أقوي من حيث المعالج.
  • الأقراص الصلبة الخاصة بالأجهزة الوهمية ستأخذ حيزاً غير صغير من القرص الصلب لجهازك، خصوصاً حينما تكون تلك الأنظمة و/أو البرمجيات التي تستخدمها كبيرة الحجم (تخيل آلة وهمية تعمل بـwindows 8 مع تنصيب visual studio و Microsoft SDK و MS SQL server و ما شابههن من برمجيات عليه!) صحيح أن هذا الأمر يمكن التغلب عليه بمنتهي البساطة عن طريق زيادة الذاكرة (حتي و إن كانت الزيادة عن طريق قرص خارجي). و لكنه يظل عيباً يجب ذِكره.
 
أنا عن نفسي أعتمد علي نظام التشغيل الأساسي حينما أقوم بتطوير برنامج من برامجي الخاصة، و لكني أفضل التعامل مع الأجهزة الوهمية في الأحيان التي أجد فيها أن المميزات أكبر من العيوب. و الأمر في النهاية يرجع لطبيعة العمل المطلوب القيام به، و لطبيعة المبرمج نفسه و تفضيلاته الشخصية. أما بخصوص البرمجيات التي يمكن استخدامها لهذا الغرض، فأنا أفضِّل استخدام برنامج Oracle VM virtualbox بحكم المجانية و الاعتياد لا أكثر، بينما يفضل أحد أصدقائي (و هو يعتمد علي الأجهزة الوهمية في عمله بشكل تام كما أخبرني من قبل) برنامج VMware، و بإمكانك تجربة الاثنين لتري أيهما أفضل بالنسبة لك.
 
الآلات الوهمية التي علي جهازي، و غالباً ما أستخدمها بغرض تجربة أنظمة التشغيل المختلفة لا أكثر
 
 

ليست هناك تعليقات:

إرسال تعليق