الخطة 9 من مختبرات بل
المحتويات

قبل الخوض في التفاصيل، الخطة 9 من مختبرات بل هو نظام تشغيل صممه مركز أبحاث علوم الحاسوب (CSRC) في مختبرات بل في منتصف ثمانينيات القرن الماضي، وهو مبني على مفاهيم نظام يونكس التي طُوّرت هناك لأول مرة في أواخر ستينيات القرن الماضي. ومنذ عام 2000، أصبح الخطة 9 مجانيًا ومفتوح المصدر. وكان الإصدار الرسمي الأخير في أوائل عام 2015. وفيما يلي تفاصيل أوسع عن ذلك.
وفي هذا الصدد، في نظام الخطة 9، تم توسيع مفهوم «» في نظام يونكس ليشمل نظام ملفات موزّعًا (مركزيًا على الشبكة) واسع الانتشار، واستُبدل نظام الإدخال والإخراج القائم على المؤشر والطرفية، والذي كان جوهر نظام يونكس، بنظام نوافذ،واجهة مستعمل رسومية بدون استخدام المؤشر (مع أن ، وهو مظرف الخطة 9، يعتمد على النصوص). كما قدّم الخطة 9 نظام أمان قائم على القدرات ونظام ملفات مُهيكل على شكل سجلات يُسمى ، والذي يوفر إمكانية التقاط لقطات وسجلات إصدارات الملفات.
من جانب آخر، اسم «الخطة 9 من مختبرات بل» هو إشارة إلى فيلم الخيال العلمي الشهير «الخطة 9 من الفضاء الخارجي» للمخرج إد وود عام 1957. ولا يزال النظام قيد الاستخدام والتطوير من قبل باحثي أنظمة التشغيل وهواة هذا المجال.
التاريخ
وفي هذا الصدد، طُوِّر نظام الخطة 9 من مختبرات بل في الأصل، بدءًا من أواخر ثمانينيات القرن الماضي، على يد أعضاء مركز أبحاث علوم الحاسوب في مختبرات بل، وهو نفس الفريق الذي طوّر نظام يونكس ولغة البرمجة سي. قاد فريق الخطة 9 في البداية كلٌّ من روب بايك، وكين تومسن، وديف بريسوتو، وفيل وينتربوتوم، بدعم من دينيس ريتشي بصفته رئيس قسم أبحاث تقنيات الحوسبة. على مرّ السنين، ساهم الكثير من المطورين البارزين في المشروع، بمن فيهم براين كيرنيغان، وتوم داف، ودوغ ماكلروي، وبيارن ستروستروب، وبروس إليس.
وعلى صعيد آخر، قام مجتمع من المستعملين والمطورين، بمن فيهم موظفون حاليون وسابقون في مختبرات بل، بإصدار تحديثات يومية صغيرة على شكل صور آي إس أو. واستضافت مختبرات بل عملية التطوير. يمكن الوصول إلى شجرة مصدر التطوير عبر بروتوكولي 9P وبروتوكول نقل النصوص الترابطية (HTTP)، وتُستعمل لتحديث الأنظمة المثبتة. إلى جانب المكونات الرسمية لنظام التشغيل المضمنة في صور آي إس أو، تستضيف مختبرات بل كذلك مستودعًا للتطبيقات والأدوات المطورة خارجيًا.
وفي هذا السياق، حلّ نظام التشغيل الخطة 9 محلّ نظام يونكس كمنصة أساسية لأبحاث أنظمة التشغيل في مختبرات بل. وقد استكشف النظام الكثير من التغييرات على نموذج يونكس الأصلي لتسهيل استخدام النظام وبرمجته، لا سيما في بيئات المستعملين المتعددين الموزعة. بعد سنوات من التطوير والاستخدام الداخلي، قامت مختبرات بل بتوزيع نظام التشغيل على الجامعات عام 1992. وبعد ثلاث سنوات، أتاحت شركة إيه تي أند تي نظام الخطة 9 للجهات التجارية عبر دار نشر هاركورت بريس. وبسعر 350 دولارًا أمريكيًا لرخصة المصدر، استهدفت إيه تي أند تي سوق الأنظمة المدمجة بدلًا من سوق الحواسيب بشكل عام. وعلّق ريتشي قائلًا إن المطورين لم يتوقعوا إحداث «إزاحة كبيرة» نظرًا لرسوخ أنظمة التشغيل الأخرى.
ومن ناحية أخرى، مع انتقال مختبرات بل إلى مشاريع لاحقة في السنوات الأخيرة، توقف تطوير نظام الخطة 9 الرسمي. في 23 مارس 2021، استؤنف التطوير بعد نقل حقوق النشر من مختبرات بل إلى مؤسسة الخطة 9. نشر جيف كولير، أحد القائمين على صيانة الخطة 9، عمله على النظام على صفحته الشخصية، والذي يتضمن نواة 9k ذات 64 بت ومنفذ ريسك-فايف. يستمر التطوير غير الرسمي للنظام كذلك على فرع 9front، حيث يقدم المساهمون النشطون إصدارات شهرية ووظائف جديدة. حتى الآن، وفر فرع 9front للنظام برامج تشغيل واي فاي، وبرامج تشغيل الصوت، ودعم يو إس بي، ومحاكي ألعاب مدمج، إلى جانب ميزات أخرى. تشمل أنظمة التشغيل الأخرى المستوحاة من الخطة 9 نظام هارفي أو إس ونظام جيهان أو إس.
من جهة ثانية، بحلول أوائل عام 1996، أوقفت شركة إيه تي أند تي مشروع الخطة 9 مؤقتًا لصالح مشروع إنفيرنو، الذي كان من المفترض أن يكون منافسًا لمنصة جافا التابعة لشركة صن ميكروسيستمز. في أواخر التسعينيات، تخلت شركة لوسنت تكنولوجيز، المالكة الجديدة لمختبرات بل، عن الدعم التجاري للمشروع، وفي سنة 2000، تم توزيع الإصدار الثالث بموجب ترخيص مفتوح المصدر. وصدر إصدار رابع بموجب ترخيص برمجيات حرة جديد في عام 2002. وفي أوائل عام 2015، صدر الإصدار الرسمي الأخير من الخطة 9.
المشتقات والتفرعات
إضافةً إلى ذلك، 9front هو نسخة معدلة من الخطة 9. وقد بدأ العمل عليه لمعالجة النقص الملحوظ في موارد التطوير المخصصة داخل مختبرات بل، وقد تراكمت فيه الكثير من الإصلاحات والتحسينات.
من جهة ثانية، تم تصميم أكاروس لأنظمة المعالجات متعددة النوى وأنظمة إس إم بيه واسعة النطاق.
من جانب آخر، نظام التشغيل هارفي (المتوقف) هو جهد لجعل كود الخطة 9 يعمل مع gcc وclang.
وفي هذا الصدد، صُممت الخطة البديلة للعمل في بيئات موزعة حيث تختلف مجموعة الموارد المتاحة باختلاف الأوقات. كانت الخطة البديلة، التي استندت في الأصل إلى نواة الإصدار الثالث من الخطة 9، قد نُقلت إلى مساحة المستعمل لتشغيلها على أنظمة الخطة 9 الحالية.
كذلك، إن آي إكس هو نسخة معدلة من Plan9 موجهة لأنظمة متعددة النوى والحوسبة السحابية.
كذلك، يُضيف توزيع 9atom إلى توزيعة الخطة 9 نواة 386 PAE، ونواة معالج إكس86-64 ونواة طرفية، وnupas، ودعم إضافي لعتاد الحاسوب الشخصي، وبروتوكول IL، ونظام ملفات Ken. لم يتم تحديث صفحته الرئيسية منذ عام 2013، ولا يُعرف إلا القليل جدًا عن تطويره أو مجتمعه.
ومن جهة أخرى، آر9 هو إعادة تنفيذ لنواة الخطة 9 على رست (على الرغم من عدم وجود منفذ لمترجم لغة البرمجة رست إلى الخطة 9).
وفي السياق ذاته، يُعدّ node9 نسخةً برمجيةً مشتقةً من Plan9/إنفيرنو، حيث يستبدل لغة البرمجة ليمبو والآلة الافتراضية DIS بلغة لوا والآلة الافتراضية لوا جيت. كما يستبدل نظام الإدخال/الإخراج المُستضاف لكل منصة في إنفيرنو بنظام ليبوف الخاص بـNode.js، والذي يعتمد على الأحداث والإدخال/الإخراج، لتوفير استضافة متسقة عبر المنصات. وهو بمثابة إثبات للمفهوم يُبيّن إمكانية إنشاء نظام تشغيل موزّع من مساحات أسماء خاصة بكل عملية وعناصر سحابية عامة، وذلك لإنشاء صورة نظام واحدة بأي حجم.
وفي هذا السياق، جيهان أو إس هو نظام تشغيل تجريبي مشتق من الخطة 9. يتم اشتقاق مساحة المستعمل والوحدات النمطية الخاصة به في الغالب من 9front، ونظام البناء الخاص به من هارفي أو إس، ونواة النظام الخاصة به هي نسخة معدلة من نواة Plan9 9k 64 بت.
ومن ناحية أخرى، يُعدّ نظام التشغيل إنفيرنو امتدادًا لنظام الخطة 9، ويشترك معه في الكثير من مفاهيم التصميم، بل وحتى في شفرة المصدر في النواة، لا سيما فيما يتعلق بالأجهزة وبروتوكول Styx/9P2000. كما يتشارك إنفيرنو مع الخطة 9 في إرث يونكس من مختبرات بل وفلسفة يونكس. الكثير من أدوات سطر الأوامر في إنفيرنو كانت في الأصل أدوات الخطة 9 التي تم تحويلها إلى ليمبو.
ومن ناحية أخرى، 9legacy هو توزيعة بديلة. وهي تتضمن مجموعة من التصحيحات المستندة إلى توزيعة الخطة 9 الحالية.
/proc
وفي السياق ذاته، بدلاً من استخدام استدعاءات النظام المخصصة لإدارة العمليات، يوفر نظام الخطة 9 نظام الملفات . تظهر كل عملية كدليل يحتوي على معلومات وملفات تحكم يمكن معالجتها باستخدام استدعاءات نظام إدخال/إخراج الملفات العادية.
وفي هذا الصدد، يسمح نهج نظام الملفات بإدارة عمليات الخطة 9 باستخدام أدوات إدارة ملفات بسيطة مثل ls وcat؛ ومع ذلك، لا يمكن نسخ العمليات ونقلها كملفات.
bind -b /usr/alice/bin /bin
من جهة ثانية، في المثال أعلاه، يتم تثبيت في ، حيث تحل محتويات محل محتويات السابقة. ثم يتم تثبيت مجلد الخاص بأكمي بعد ، ويتم تثبيت مجلد الشخصي الخاص بأليس قبله. عند طلب ملف من ، يتم البحث عنه أولاً في ، ثم في ، وأخيراً في .
من جهة ثانية، عادةً ما تحل مساحات أسماء العمليات المنفصلة محل مفهوم مسار البحث في الصدفة. لا يزال متغير بيئة المسار موجودًا في مظرف (الصدفة المستعملة بشكل أساسي في الخطة 9)؛ ومع ذلك، فإن متغير بيئة المسار في آر سي يحتوي تقليديًا على الدليلين و فقط، ويُنصح بعدم تعديل المتغير، وبدلاً من ذلك، يجب إضافة أوامر إضافية عن طريق ربط عدة أدلة معًا كدليل واحد. على عكس الخطة 9، يجب ضبط متغير بيئة المسار في صدفات يونكس ليشمل الأدلة الإضافية التي يلزم إضافة ملفاتها التنفيذية كأوامر.
نظام ملفات افتراضي خاص
في هذا الإطار، علاوة على ذلك، يمكن لنواة النظام الاحتفاظ بجداول ربط منفصلة لكل عملية، وبالتالي يمكنها تزويد كل عملية بنطاق اسم نظام ملفات خاصة بها. يمكن إنشاء مساحات أسماء العمليات بشكل مستقل، ويمكن للمستعمل العمل في وقت واحد مع برامج ذات مساحات أسماء غير متجانسة. يمكن استخدام مساحات الأسماء لإنشاء بيئة معزولة مشابهة لبيئة Chroot، ولكن بطريقة أكثر أمانًا.
وفي السياق ذاته، استوحت أنظمة الملفات الموحدة في نظامي التشغيل 4.4BSD ولينكس من بنية الدليل الموحد في نظام الخطة 9، على الرغم من أن مطوري خاصية الربط الموحد في نظام BSD وجدوا أن دمج الأدلة غير المتكرر في نظام الخطة 9 «مُقيِّد للغاية للاستخدام العام».
التوافق مع أنظمة يونكس
الاستقبال
كذلك، يدعم نظام التشغيل الخطة 9 تطبيقات بوزيكس، ويمكنه محاكاة واجهة منافذ بيركلي عبر بيئة أنسي/بوزيكس (APE) التي تُنفذ واجهة قريبة من أنسي سي وبوزيكس، مع بعض الإضافات المشتركة (لا تتوافق واجهات C الأصلية في الخطة 9 مع أي من المعيارين). كما يتضمن غلافًا متوافقًا مع بوزيكس. ويدّعي مطورو أنسي/بوزيكس أنهم استعملوها لنقل نظام النافذة إكس (X11) إلى الخطة 9، على الرغم من أنهم لا يُضمّنون X11 «لأن دعمه بشكل كامل مهمة ضخمة للغاية». يمكن استخدام بعض ملفات لينكس الثنائية بمساعدة تطبيق «لينكس إيمو» (محاكي لينكس)؛ ومع ذلك، لا يزال هذا التطبيق قيد التطوير. في المقابل، تسمح الآلة الافتراضية بتشغيل نواة الخطة 9 مُعدّلة قليلاً كعملية مستعمل في لينكس، مما يدعم برامج الخطة 9 غير المُعدّلة.
ومن جهة أخرى، على الرغم من أن الخطة 9 كان من المفترض أن تكون تطويرًا إضافيًا لمفاهيم يونكس، إلا أن التوافق مع برامج يونكس الموجودة مسبقًا لم يكن هدفًا للمشروع. تشترك الكثير من أدوات سطر الأوامر في الخطة 9 في أسماء نظيراتها في يونكس، لكنها تعمل بشكل مختلف.
الترخيص
ومن جهة أخرى، في 23 مارس 2021، انتقلت ملكية الخطة 9 من مختبرات بل إلى مؤسسة الخطة 9، وتم إعادة ترخيص جميع الإصدارات السابقة بموجب ترخيص إم آي تي.
وفي هذا الصدد، ابتداءً من إصدار النسخة الرابعة في أبريل 2002، أصبح الكود المصدري الكامل للخطة 9 من مختبرات بل متاحًا مجانًا بموجب رخصة لوسنت العامة 1.02، والتي تعتبر رخصة مفتوحة المصدر من قبل مبادرة المصدر المفتوح (OSI)، ورخصة برمجيات حرة من قبل مؤسسة البرمجيات الحرة، كما أنها تتوافق مع إرشادات دبيان للبرمجيات الحرة.
- انظر كذلك
- ألف
- إنفيرنو
- المراجع
وفي هذا السياق، في فبراير 2014، حصلت جامعة كاليفورنيا، بركلي، على إذن من مالك حقوق الطبع والنشر الحالي للخطة 9 –شركة ألكاتل-لوسنت– لإصدار جميع برامج الخطة 9 التي كانت تخضع سابقًا لرخصة لوسنت العامة، الإصدار 1.02، بموجب رخصة جي بيه إل-2.0 فقط.
التأثير
في هذا الإطار، أثبت نظام التشغيل الخطة 9 إمكانية تطبيق مفهوم أساسي في نظام يونكس –وهو إمكانية تمثيل كل واجهة نظام كمجموعة من الملفات– بنجاح في نظام موزع حديث. وقد تم تطبيق بعض ميزات الخطة 9، مثل صيغة التحويل الموحد-8 لأحرف يونيكود، في أنظمة تشغيل أخرى. كما طبقت أنظمة التشغيل الشبيهة بيونكس، مثل لينكس، بروتوكول 9P2000 الخاص بنظام الخطة 9 للوصول إلى الملفات البعيدة، واعتمدت ميزات rfork، آلية إنشاء العمليات في الخطة 9. فضلًا عن ذلك، في الخطة 9 من مساحة المستعمل، تم نقل الكثير من تطبيقات وأدوات الخطة 9، بما في ذلك acme وسلفه sam، إلى أنظمة يونكس ولينكس، وحققت بعض الشهرة. وتسعى الكثير من المشاريع إلى استبدال برامج نظام التشغيل جنو المحيطة بنواة لينكس ببرامج نظام التشغيل الخطة 9. وقد استُلهم مدير النوافذ 9wm من 8½، نظام النوافذ الأقدم في الخطة 9. يتأثر نظام مدير نوافذ مبلط إلى حدّ كبير بنظام الخطة 9. في أبحاث علوم الحاسوب، استُخدم نظام الخطة 9 كمنصة حوسبة شبكية وكأداة لأبحاث الحوسبة المنتشرة دون برمجيات وسيطة. في المجال التجاري، يُعد نظام الخطة 9 أساس أنظمة تخزين كوريد. مع ذلك، لم يقترب نظام الخطة 9 من شعبية نظام يونكس، وظل في المقام الأول أداة بحثية.
وفي هذا السياق، منذ إصدار ويندوز 10 رقم 1903، يقوم نظام ويندوز الفرعي لنظام لينكس بتنفيذ بروتوكول نظام الملفات الخطة 9 كخادم، ويعمل نظام التشغيل ويندوز المضيف كعميل.
إضافةً إلى ذلك، يزعم مؤيدو ومطورو الخطة 9 أن المشاكل التي تعيق اعتمادها قد تم حلها، وأن أهدافها الأصلية كنظام موزع وبيئة تطوير ومنصة بحث قد تحققت، وأنها تحظى بشعبية معتدلة ولكنها متزايدة. شكّلت منصة إنفيرنو، من خلال إمكانياتها الاستضافة، وسيلةً لنقل تقنيات الخطة 9 إلى أنظمة أخرى كجزء مُستضاف من شبكات الحوسبة غير المتجانسة.
من جهة ثانية، تعمل عدة مشاريع على تطوير الخطة 9، بما في ذلك 9atom و9front. تُضيف هذه النسخ المُعدّلة من الخطة 9 برامج تشغيل إضافية للأجهزة وبرامج أخرى، بما في ذلك نسخة مُحسّنة من نظام البريد الإلكتروني أوباس، ومُصرّف غو، ودعم نظام التحكم في الإصدارات ميركوريال (وأيضًا تطبيق غيت)، وبرامج أخرى. تم نقل الخطة 9 إلى حاسوب راسبيري باي أحادي اللوحة. ويحاول مشروع هارفي، الذي توقف تطويره، استبدال مُصرّف سي المُخصّص للخطة 9 بمُصرّف مجموعة مصرفات جنو، للاستفادة من أدوات التطوير الحديثة مثل غيت هاب و، وتسريع عملية التطوير.
ومن جهة أخرى، تشمل العوامل الأخرى التي ساهمت في انخفاض معدل تبني الخطة 9 عدم وجود نسخ احتياطية تجارية، وقلة عدد تطبيقات المستعمل النهائي، وعدم وجود برامج تشغيل للأجهزة.
تطوير البرمجيات
إضافةً إلى ذلك، كانت لغة برمجة متزامنة تسمى ألف متاحة في الإصدارين الأولين، ولكن تم إسقاطها لاحقًا لأسباب تتعلق بالصيانة واستبدالها بمكتبة تشعب للغة سي.
وعلى صعيد آخر، تتضمن حزمة توزيع الخطة 9 إصدارات خاصة من المُصرّف ولغات برمجة، وتوفر مجموعة مكتبات مُخصصة فضلًا عن نظام واجهة مستعمل نوافذ خاص بالخطة 9. كُتب الجزء الأكبر من النظام بلهجة من لغة سي (أنسي سي مع بعض الإضافات وبعض الميزات الأخرى المحذوفة). صُممت مُصرّفات هذه اللغة خصيصًا مع مراعاة قابلية النقل؛ وبحسب مُصممها، فإنها «تُصرّف بسرعة، وتُحمّل ببطء، وتُنتج رمزًا برمجيًا متوسط الجودة».
دمج مفاهيم التصميم
وفي السياق ذاته، على الرغم من كونها مثيرة للاهتمام في حد ذاتها، إلا أن مفاهيم تصميم الخطة 9 كان من المفترض أن تكون أكثر فائدة عند دمجها. مثلًا، لتنفيذ خادم ترجمة عنوان الشبكة (NAT)، يمكن إنشاء دليل موحد، يغطي دليل الخاصة بالموجّه بدليل الخاص به. وبالمثل، يُمكن تنفيذ شبكة خاصة افتراضية (VPN) عن طريق تغطية تسلسل هرمي لـ من بوابة بعيدة في دليل مُوحّد، باستخدام بروتوكول 9P الآمن عبر الإنترنت العام. يُمكن استخدام دليل مُوحّد يحتوي على التسلسل الهرمي لـ والمرشحات لعزل تطبيق غير موثوق به أو لتنفيذ جدار حماية. وبنفس الطريقة، يُمكن تكوين شبكة حوسبة موزعة باستخدام دليل مُوحّد لتسلسلات هرمية لـ من مضيفين بعيدين، مما يسمح بالتفاعل معها كما لو كانت محلية.
إضافةً إلى ذلك، عند استخدامها معًا، تسمح هذه الميزات بتجميع بيئة حوسبة موزعة معقدة عن طريق إعادة استخدام نظام الأسماء الهرمي الحالي.
نظام التخزين
ومن ناحية أخرى، يدعم نظام التشغيل الخطة 9 أنظمة الملفات Kfs وPaq وCwfs وFAT و. صُمم الأخير خصيصًا لنظام الخطة 9 في مختبرات بل، ويوفر إمكانية تخزين اللقطات. يمكن استخدامه مباشرةً مع القرص الصلب أو مع نظام ، وهو نظام ملفات أرشيفي ونظام تخزين بيانات دائم.
/net
كذلك، لا يحتوي نظام التشغيل الخطة 9 على استدعاءات نظام متخصصة أو أوامر للوصول إلى حزمة بروتوكولات الشبكة أو أجهزة الشبكة. بدلاً من ذلك، يُستعمل نظام الملفات . يتم التحكم في اتصالات الشبكة عن طريق قراءة وكتابة رسائل التحكم إلى ملفات التحكم. تُستعمل الدلائل الفرعية مثل و كواجهة لبروتوكولاتها الخاصة.
الترميز الموحد
ومن ناحية أخرى، لتبسيط إدارة ترميزات الأحرف، يستعمل نظام الخطة 9 ترميز الترميز الموحد في جميع أنحائه. كان التطبيق الأولي لترميز Unicode هو . ابتكر كين تومسون صيغة التحويل الموحد-8، الذي أصبح الترميز الأصيل في الخطة 9. تم تحويل النظام بأكمله للاستخدام العام في عام 1992. يحافظ صيغة التحويل الموحد-8 على التوافق مع الإصدارات السابقة من السلاسل النصية التقليدية المنتهية بـnull، مما يتيح معالجة معلومات أكثر موثوقية وربط بيانات السلاسل النصية متعددة اللغات باستخدام قنوات يونكس بين عمليات متعددة. استخدام صيغة التحويل الموحد-8 واحد مع أحرف لجميع الثقافات والمناطق يلغي الحاجة إلى التبديل بين مجموعات الترميز.
مفاهيم التصميم
في هذا الإطار، نظام التشغيل الخطة 9 هو نظام تشغيل موزّع، مصمم لجعل شبكة من أجهزة الكمبيوتر غير المتجانسة والمتباعدة جغرافيًا تعمل كنظام واحد. في تثبيت نموذجي لنظام الخطة 9، يعمل المستعملون على محطات طرفية تُشغّل نظام النوافذ ريو، ويصلون إلى خوادم وحدة المعالجة المركزية التي تتولى العمليات الحسابية المكثفة. يتم توفير تخزين البيانات الدائم من خلال مضيفات شبكة إضافية تعمل كخوادم ملفات ووحدات تخزين أرشيفية.
يقول مصمموها إن،
وفي هذا الصدد، الفكرة الأولى (مساحة أسماء خاصة بكل عملية) تعني أنه، على عكس أغلب أنظمة التشغيل، لكل عملية (برنامج قيد التشغيل) رؤيتها الخاصة «لنطاق الأسماء»، والتي تُشابه ما تُسميه أنظمة التشغيل الأخرى نظام الملفات؛ فقد يُشير اسم مسار واحد إلى موارد مختلفة لعمليات مختلفة. ويتم التحكم في التعقيد المُحتمل لهذا الإعداد من خلال مجموعة من المواقع التقليدية للموارد المشتركة.
وفي هذا الصدد، مثلًا، استغل نظام النوافذ الأصلي، المسمى 8½، هذه الإمكانيات على النحو التالي. يُمثل نظام الخطة 9 واجهة المستعمل على طرفية باستخدام ثلاثة ملفات وهمية: ، الذي يمكن للبرنامج قراءته لتلقي إشعارات بحركات الماوس ونقرات الأزرار؛ و، الذي يُستعمل لإدخال/إخراج النصوص؛ و، الذي تُنفذ عمليات الرسومات عند الكتابة إليه (انظر بيت بليت). يقوم نظام النوافذ بتعدد إرسال هذه الأجهزة: فعند إنشاء نافذة جديدة لتشغيل برنامج ما، يُنشئ أولًا مساحة اسم جديدة يتم فيها ربط و و بنفسه، مُخفيًا ملفات الأجهزة الفعلية التي يمكنه الوصول إليها. وبالتالي، يستقبل نظام النوافذ جميع أوامر الإدخال والإخراج من البرنامج ويتعامل معها بشكل مناسب، عن طريق إرسال الإخراج إلى جهاز الشاشة الفعلي ومنح البرنامج المُركز عليه في الوقت الحالي مدخلات لوحة المفاتيح والماوس. لا يحتاج البرنامج إلى معرفة ما إذا كان يتواصل مباشرةً مع برامج تشغيل أجهزة نظام التشغيل، أو مع نظام النوافذ؛ كل ما عليه فعله هو افتراض أن مساحة الاسم الخاصة به مهيأة بحيث توفر هذه الملفات الخاصة نوع المدخلات وتقبل نوع الرسائل التي يتوقعها.
وفي هذا الصدد، الفكرة الثانية (نظام ملفات موجه نحو الرسائل) تعني أن العمليات يمكنها تقديم خدماتها لعمليات أخرى من خلال توفير ملفات افتراضية تظهر في مساحة أسماء تلك العمليات. يصبح إدخال/إخراج عملية العميل على هذا الملف بمثابة اتصال بين العمليتين. وبهذه الطريقة، يعمم نظام الخطة 9 مفهوم يونكس لنظام الملفات باعتباره نقطة الوصول المركزية لموارد الحوسبة. فهو ينقل فكرة يونكس عن ملفات الأجهزة لتوفير الوصول إلى الأجهزة الطرفية (الفأرة، الوسائط القابلة للإزالة، إلخ) وإمكانية ربط أنظمة الملفات الموجودة على أنظمة ملفات منفصلة فعليًا في مساحة أسماء هرمية، ولكنه يضيف إمكانية ربط اتصال ببرنامج خادم يستعمل بروتوكولًا موحدًا والتعامل مع خدماته كجزء من نطاق الأسماء.
من جانب آخر، يعتمد التشغيل الموزع لخطة 9 كذلك على مساحات الأسماء الخاصة بكل عملية، مما يسمح لعمليات العميل والخادم بالتواصل عبر الأجهزة بالطريقة الموضحة للتو. مثلًا، يبدأ الأمر جلسة عن بُعد على خادم الحوسبة. ويُصدّر الأمر جزءًا من مساحة الاسم المحلية الخاصة به، بما في ذلك أجهزة طرفية المستعمل (، ، )، إلى الخادم، بحيث يمكن للبرامج البعيدة إجراء عمليات الإدخال/الإخراج باستخدام فأرة الطرفية ولوحة المفاتيح والشاشة، مما يجمع بين تأثيرات تسجيل الدخول عن بُعد ونظام ملفات الشبكة المشترك.
البرامج الرسومية
ومن جهة أخرى، على عكس نظام يونكس، صُمم نظام الخطة 9 مع مراعاة الرسومات. بعد الإقلاع، سيُشغّل طرفية الخطة 9 نظام النوافذ ريو، حيث يمكن للمستعمل إنشاء نوافذ جديدة لعرض rc. تحل البرامج الرسومية التي يتم استدعاؤها من هذه الصدفة محلها في نافذتها.
سام وأكمي هما محررا النصوص في برمجيات الخطة 9.
في هذا الإطار، يوفر آلية اتصال بين العمليات تسمح بالربط التشعبي على مستوى النظام بأكمله.
بروتوكول 9P
ومن جهة أخرى، على عكس أغلب أنظمة التشغيل الأخرى، لا يوفر نظام التشغيل الخطة 9 واجهات برمجة تطبيقات خاصة (مثل منافذ بيركلي أو أو استدعاءات نظام ) للوصول إلى الأجهزة. بدلاً من ذلك، تُنفذ برامج تشغيل أجهزة الخطة 9 واجهة التحكم الخاصة بها كنظام ملفات، بحيث يمكن الوصول إلى الأجهزة من خلال عمليات إدخال/إخراج الملفات العادية (القراءة والكتابة). وبالتالي، يمكن مشاركة الجهاز عبر الشبكة عن طريق ربط شجرة الدليل المقابلة بالجهاز المستهدف.
وعلى صعيد آخر، تستعمل جميع البرامج التي ترغب في تقديم خدمات على شكل ملفات لبرامج أخرى بروتوكولًا موحدًا يُسمى 9P. بالمقارنة مع الأنظمة الأخرى، يُقلل هذا من عدد واجهات البرمجة المخصصة. 9P هو بروتوكول عام، لا يعتمد على وسيط تخزين محدد، ويعتمد على البايتات، ويوفر إمكانية تبادل الرسائل بين الخادم والعميل. يُستعمل هذا البروتوكول للإشارة إلى العمليات والبرامج والبيانات والتواصل معها، بما في ذلك واجهة المستعمل والشبكة. مع إصدار النسخة الرابعة، تم تعديله وإعادة تسميته إلى 9P2000.
الأدلة الاتحادية ومساحات الأسماء
- يمكن إنشاء دليل موحد باستخدام سلسلة من أوامر الربط:
- bind /arm/bin /bin
- bind -a /acme/bin/arm /bin
ومن ناحية أخرى، يُمكّن الخطة 9 المستعمل من جمع الملفات (المسماة بالأسماء) من هياكل مجلدات مختلفة في موقع واحد. يعمل المجلد الموحد الناتج كسلسلة من المجلدات الأساسية (مع إمكانية التحكم في ترتيب الدمج)؛ إذا احتوت المجلدات المكونة على ملفات تحمل نفس الاسم، فإن عرض محتويات المجلد المُدمج ( or ) سيُظهر ببساطة أسماءً مُكررة. يتم حل اسم المسار الواحد من الأعلى إلى الأسفل: فإذا تم دمج المجلدين و في المجلد u مع بدء المجلد ، فإن يُشير إلى إن وُجد، وإلى إن وُجد فقط، بينما لا يُشير إلى ، ولا يُشير إلى أي ملف إن لم يكن أي منهما موجودًا. لا يتم دمج المجلدات الفرعية بشكل متكرر، لذا إذا كان موجودًا، فلن يكون الوصول إلى الملفات الموجودة في ممكنًا من خلال هذا الدمج.
مقارنة بأنظمة التشغيل المعاصرة
وفي هذا الصدد، في أوساط البحث في أنظمة التشغيل، وكذلك في عالم يونكس التجاري، بُذلت محاولات أخرى لتحقيق الحوسبة الموزعة والوصول عن بُعد إلى نظام الملفات بالتزامن مع مشروع تصميم الخطة 9. وشملت هذه المحاولات نظام ملفات الشبكة (NFS) وبنية مؤشرات الفهرسة المرتبطة به، والتي طُوّرت في شركة صن مايكروسيستمز، فضلًا عن تحولات جذرية أخرى عن نموذج يونكس، مثل نظام التشغيل من جامعة كاليفورنيا في بيركلي. ويشير برنت ويلش، مطور سبرايت، إلى أن بنية مؤشرات الفهرسة في نظام صن أو إس محدودة مقارنةً بقدرات الخطة 9، إذ لا تدعم الوصول عن بُعد إلى الأجهزة والتواصل بين العمليات عن بُعد بسلاسة، على الرغم من إمكانية ذلك لو تم دمج مقابس نطاق يونكس الموجودة مسبقًا (والتي «يمكن استخدامها أساسًا لتسمية خوادم مستوى المستعمل») مع بنية مؤشرات الفهرسة.
ومن ناحية أخرى، أشارت إحدى الانتقادات الموجهة لتصميم «كل شيء عبارة عن ملف» والتواصل عبر الرسائل النصية في نظام التشغيل الخطة 9 إلى محدودية هذا النموذج مقارنة بالواجهات المكتوبة لنظام التشغيل الموجه للكائنات من شركة صن:
من جانب آخر، أظهرت مقارنة لاحقة بين نظام التشغيل الخطة 9 ونظام التشغيل سبرايت ونظام التشغيل البحثي الموزع المعاصر الثالث أميبا
إضافةً إلى ذلك، في سنة 1991، قارن مصممو نظام التشغيل الخطة 9 نظامهم بأنظمة تشغيل أخرى من أوائل التسعينيات من حيث الحجم، موضحين أن الشفرة المصدرية لنسخة مصغرة «عاملة، وإن لم تكن ذات فائدة كبيرة») كانت أقل من خُمس حجم نواة الدقيقة بدون أي برامج تشغيل للأجهزة (5899 أو 4622 سطرًا من الشفرة للخطة 9، حسب المقياس، مقابل 25530 سطرًا). تألفت النواة الكاملة من 18000 سطر من الشفرة. (بحسب إحصاء عام 2006، بلغ حجم النواة آنذاك قرابة 150،000 سطر، ولكن تمت مقارنة ذلك بأكثر من 4.8 مليون سطر في نظام لينكس.)
برمجيات الخطة 9
علاوةً على ذلك، هو خادم مصادقة وإدارة المفاتيح لنظام الخطة 9. وهو يتولى المصادقة نيابة عن البرامج الأخرى بحيث لا يحتاج إلا فاكتوتوم إلى معرفة كل من المفاتيح السرية وتفاصيل التنفيذ.
وعلى صعيد آخر، كإحدى مزايا تصميم النظام، يمكن إنجاز أغلب المهام في الخطة 9 باستخدام أدوات ls وcat وgrep وcp وrm إلى جانب (مظرف الخطة 9 الافتراضي).
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟