الأحد، 18 يناير 2009

الأوساط الافتراضية.. تقنيات واعدة

نظم تشغيل تعمل داخل نظم أخرى بتكاليف أقل

نظم التشغيل الافتراضية «ويندوز إكس بي» و«لينوكس» تعمل داخل بيئة نظام «ويندوز»

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

* ولتوضيح الأمر بشكل مبسط، فإن العملية تتطلب استخدام كومبيوتر ذي مواصفات عالية، يعمل بنظام تشغيل معين، وبرنامج لصنع الوسط الافتراضي. ويطلق على هذا الجهاز اسم «جهاز التحكم» Control Host، ويطلق على برنامج صنع الوسط الافتراضي اسم «برنامج التحكم» Control Program. ويستطيع هذا الجهاز إيجاد بيئة مناسبة لنظم تشغيل مختلفة تعمل في داخل بيئة جهاز التحكم، ولكن من دون أن يعلم النظام الجديد أنه يعمل في داخل بيئة افتراضية. ويطلق على نظام التشغيل الافتراضي اسم «النظام الضيف» Guest OS، ويطلق على البيئة الافتراضية اسم «الآلة الافتراضية» Virtual Machine.

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

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

* فوائد كبيرة

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

هذا، ويرجح الخبراء هيمنتها في المستقبل الكبير، حيث تستثمر بعض الشركات الكبيرة مبالغ باهظة في تطوير نظم تشغيل اسمها «النظم السحابية»Cloud Operating System، وهي موجودة على الإنترنت، وليس على جهاز المستخدم.

هذا، وأعلنت شركة «مايكروسوفت» في نهاية العام الماضي، عن برمجتها نظام تشغيل جديد اسمه «ويندوز آزور» Windows Azure، الذي هو عبارة عن نظام تشغيل يعمل على أجهزة خادمة في مقر الشركة، ويمكن للمستخدم الاتصال به عبر الإنترنت، واستخدامه كما لو كان يعمل على كومبيوتراته الشخصية. ويمكن اعتبار نظام التشغيل هذا، نقطة تحول جذرية في عالم الكومبيوترات السحابية Cloud Computing، حيث إنه يسمح بتطوير البرامج وقدرات النظام من دون أن يشعر المستخدم بذلك، إذ تقوم الشركات بتطويرها وطرحها مباشرة.

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

هذا وسيشكل النظام الجديد منصة برمجة متطورة للمبرمجين الحاليين، حيث إنه يسمح بإضافة واجهة إنترنت للبرامج الحالية، التي لا تدعم ذلك، وبالتالي خفض التكلفة الإجمالية لبرمجة وتشغيل البرامج ومراكز المعلومات (مثل عدم تأثر النظام بانقطاع الكهرباء في مدينة المستخدم، أو حدوث الكوارث الطبيعية، وتحديث البرامج على الأجهزة الخادمة فقط، وليس على كل جهاز مستخدم). ويستخدم «آزور» نظام التشغيل «ويندوز سيرفر 2008» وبرنامج «هايبر- في» لإنشاء بيئة افتراضية للخدمات. ومن المتوقع أن تعرض الشركة النظام في بداية أو منتصف عام 2009.

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

* أنواع الأوساط الافتراضية

* وتنقسم أنواع استخدام البيئة الافتراضية إلى 5 أقسام، هي «الافتراضية الكاملة» Full Virtualization و«الافتراضية المدعمة بالدارات الكهربائية» وHardware-assisted Virtualization، و«الافتراضية الجزئية» Partial Virtualization، و«الافتراضية الخلفية» Paravirtualization، و«الافتراضية على مستوى نظام التشغيل» Operating System-level Virtualization.

ويمكن لطريقة «الافتراضية الكاملة» إيجاد بيئة افتراضية تكفي لعمل النظام الافتراضي بشكل كامل. وغالباً يتدخل برنامج صناعة الوسط الافتراضي عند إصدار النظام الافتراضي لأمر ما، ليترجمه البرنامج إلى أوامر يفهمها نظام التحكم، مثل طلب النظام الافتراضي نسخ ملف ما. أما بالنسبة لـ «الافتراضية المدعمة بالدارات الكهربائية»، فهي تحتاج إلى وجود دارات كهربائية ذات قدرات خاصة، لتعمل بشكل صحيح، وغالباً يكون الأداء مرتفعاً جداً في هذه الطريقة، إلا أن الكثير من المعالجات لا تدعم هذه التقنية، حيث تم تقديمها في المعالجات عام 2007 (مثل معالجات «إنتل في تي» Intel VT و«إيه إم دي-في» AMD-V).

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

وبالنسبة لـ «الافتراضية الخلفية»، فهي عبارة عن تقديم واجهات تفاعل برمجية Application Programming Interface API خاصة لنظام التشغيل الافتراضي، عوضاً عن محاكاة الدارات الكهربائية المطلوبة. ويمكن بهذه الطريقة الوصول إلى سرعات أداء مرتفعة جداً، من دون الحاجة إلى وجود مواصفات عالية في جهاز التحكم. إلا أن الصعوبة تكمن في أنه يجب تعديل برمجة النظام الافتراضي ليستخدم واجهات التفاعل الخاصة أثناء العمل.

ويبقى أسلوب «الافتراضية على مستوى نظام التشغيل» الذي يشابه أسلوب «الافتراضية الجزئية» من حيث التطبيق، حيث يمكن إيجاد بيئة افتراضية لكل مستخدم، إلا أن الفرق يكمن في أن المستخدم لن يستطيع الوصول إلى معلومات المستخدمين الآخرين. ومن الناحية التقنية، فإن هذه الطريقة تسمح بإيجاد أكثر من نسخة Instance من محرك نظام التشغيل Kernel بشكل آمن. وتتميز هذه الطريقة أيضاً بأنهاً لا تتطلب سرعات معالج عالية لإيجاد البيئة الافتراضية، نظراً لأنها تستخدم محرك النظام نفسه، إلا أنها حصرية على نظام التشغيل الخاص بجهاز التحكم، أي إنه لا يمكن تشغيل أكثر من نظام تشغيل مختلف في آن واحد.

* مواقع مهمة

* http://www.vmware.com http://bellard.org/qemu http://www.virtualbox.org http://xenman.sourceforge.net http://www.microsoft.com/azure/default.mspx http://www.intel.com/technology/virtualization http://www.amd.com/virtualization http://www.ibm.com/systems/virtualization http://linuxvirtualization.com http://www.hp.com/sbso/serverstorage/article/virtualization-oct.html http://www.microsoft.com/whdc/system/platform/virtual/default.mspx