5/7/2013 - ماضي الأجهزة الظاهرية (Virtual Machines)




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

ما بين العام 1965 إلى 1978 كانت شركة IBM تُنتج سلسلة من الحواسيب الكبيرة (Mainframe Computers) يُطلق عليها إسم IBM System/360 (أو للإختصار S/360)، كانت هذه السلسلة من الحواسيب تستخدم نُظم تشغيل مُتعدده، فالموديلات الصغيرة من هذه الحواسيب على تستخدم BOS/360 أو TOS/360 أو DOS/360، أما الموديلات الأكبر فكانت تستخدم نظام التشغيل OS/360.

فيما بعد أعلنت شركة IBM عن الموديل 67 ضمن هذه السلسلة من الحواسيب، و هنا تبدأ القصة، فبعكس الحواسيب الأُخرى في هذه السلسلة كان الغرض من الحاسوب 67 هو دعم المُشاركة الزمنية (Time-Sharing) (إن كنت لا تعلم ما هي المشاركة الزمنية يُمكنك قراءة التدوينة "البرمجة المُتعددة (Multiprogramming) و المشاركة الزمنية (Time-Sharing) في نُظم التشغيل" و التي تحدثت فيها عن هذا المفهوم) بالإضافة إلى دعم الذاكرة الظاهرية (Virtual Memory)، و نتيجة لذلك وَعدت شركة IBM بنظام تشغيل جديد مُخصص لحاسوب 67 بغرض إستخدام الميزات الجديدة التي لم تكن موجودة في الحواسيب الأخرى من هذه السلسلة، أطلقت IBM على نظام التشغيل الموعود إسم TSS/360 (إختصاراً لـ Time-Sharing System)، تأخرت IBM في طرح نظامها الموعود TSS/360 و مرّ النظام في عدّة مراحل كانت آخرها إلغاء المشروع تماماً في عام 1971.

تأخير طرح نظام TSS/360 أدّى إلى تحرّك مجموعة من العاملين في IBM لكتابة برنامج يُحاكي طريقة عمل سلسلة حواسيب 360 الأخرى التي لا تدعم الذاكرة الظاهرية (Virtual Machine) و ليست موجهة للمُشاركة الزمنية (Time-Sharing)، أطلقوا على هذا البرنامج إسم CP-67 (إختصاراً لـ Control Program) و يُمكننا القول إنّ هذا البرنامج هو أول جهاز ظاهري.

طُوِّر CP-67 بشكل أساسي على مشروع بحث سابق قامت به شركة IBM و كان يُطلق على هذا المشروع إسم CP-40، بالإضافة إلى برنامج CP-67 قام الفريق كذلك بإنتاج نظام تشغيل تفاعلي بسيط مُوجّه لمُستخدم واحد فقط و أطلقوا عليه إسم CMS (Cambridge Monitor System)، نظام التشغيل هذا كان يعمل على سلسلة حواسيب 360 الأخرى، و كان كذلك يعمل على حاسوب 67 من سلسلة 360 بإستخدام برنامج CP-67 (الجهاز الظاهري) و بالتالي كان يُطلق على نظام التشغيل هذا CP/CMS.

لمزيد من التوضيح، الجزء الأول من نظام التشغيل CP/CMS و الذي كان يعمل على الموديل 67 من سلسلة حواسيب 360 (و الذي أسلفنا إنه موديل مختلف عن بقية الموديلات في نفس السلسلة) هو الجهاز الظاهري CP و الذي كما أسلفنا يُحاكي طريقة عمل الموديلات الأخرى (غير 67) من سلسلة 360، أما الجزء الثاني و هو CMS فهو نظام التشغيل الحقيقي و كما أسلفت كان نظاماً بسيطاً يدعم مُستخدماً واحداً فقط و يَستخدم المُشاركة الزمنية.

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