كان ينبغي أن تكون الخطة 9 صفقة أكبر بكثير. بعد كل شيء، لقد جاء من Bell Labs، نفس المكان الذي أعطى العالم Unix وC، وحاول إصلاح الكثير من مكونات Unix المعطلة بدلاً من مجرد استنساخها.
تكمن المشكلة في أنه لا أحد تقريبًا خارج المهووسين بنظام التشغيل ينتهي به الأمر باستخدامه. ومن الناحية التجارية، لم يذهب الأمر إلى أي مكان على الإطلاق. ولكن بينما تلاشى نظام التشغيل في غياهب النسيان، لا تزال بعض أفكاره قيد الاستخدام داخل البرامج التي أستخدمها كل يوم.
تم إنشاء معيار Unicode UTF-8 للخطة 9. ولا يزال بروتوكول الملف 9P الخاص به يظهر في Linux، والمحاكاة الافتراضية، وWSL. تبدو أفكارها حول الملفات والشبكات ومساحات الأسماء حديثة بشكل غريب الآن. لهذا السبب كان عليّ بالتأكيد تجربتها.
لماذا يمتلك Linux الكثير من التوزيعات؟ شرح توزيعات لينكس
هناك المئات من توزيعات Linux النشطة حاليًا والعديد منها قيد التطوير. لماذا يوجد الكثير من التوزيعات وهل نحتاجها كلها؟
لم يكن هذا يبدو وكأنه “Linux القديم” أو Unix
لم أبدأ بالخطة 9، بل بالشوكة 9front التي تمت صيانتها. وذلك لأن الخطة 9 لا تعمل على أجهزة تعتبر قديمة وفقًا لمعايير اليوم، ولم يكن لدي أي لوحات أم قديمة من نوع AMD 775 مزودة بمنافذ PS/2 في جميع أنحاء المنزل.
لقد قمت بتنزيل AMD64 ISO من موقع 9front وسرعان ما علمت أنه حتى عملية التمهيد لن تقدم أي إمكانية للإمساك باليد. أول مشكلة حقيقية كانت تحديد أي /dev/sdDx هو ISO وأي قرص افتراضي. في جهاز VMware Workstation VM الخاص بي، ظهر ISO على النحو التالي:
/dev/sdD0
بينما كان القرص الظاهري:
/dev/sdD1
على الرغم من أنه لا يوجد شيء غير طبيعي في هذا، إلا أن الاختلاف كان أنه لم يكن هناك منتقي أقراص سهل الاستخدام يحتوي على الأسماء والأحجام والمكان الواضح لتثبيت الخطة 9. وهذا يعني أيضًا أنني بحاجة إلى التمهيد من sdD0 (الأيزو). ثم قم بالتثبيت على sdD1 القرص الظاهري VMDK.
لقد قبلت هدف التمهيد وبدأت تشغيل نظام التشغيل باستخدام:
inst/start
لسوء الحظ، وجدت أن الماوس ولوحة المفاتيح لا يعملان، وبعد بعض البحث، اكتشفت أنني بحاجة إلى التعديل /n/9fat/plan9.ini وأخبر 9front بشكل صريح بالاستخدام ps2intellimouse:
mouse=ps2intellimouse
وبعد ذلك، كان قسم كبير من التثبيت مجرد تمرين على قبول التخلف عن السداد، ولكن ليس على نحو أعمى. المراحل الرئيسية هي:
partdisk: تقسيم القرص الصلب الافتراضي واختيار MBR.
prepdisk: إعداد قسم الخطة 9 للمثبت.
mountdisk: تركيب ملفات التثبيت من ISO في /dev/sdD0/data.
bootsetup: النقطة التي تتم عندها كتابة إعداد التمهيد إلى القسم 9fat الخاص بالقرص الصلب في /dev/sdD1/9fat
لم يكن هناك أي شيء صعب بشكل خاص في هذا الأمر، وكانت المطالبات منطقية لأنها كانت مشابهة جدًا لتلك الموجودة في مثبتات Linux الحديثة.
بعد اكتمال التثبيت، قمت بالتمهيد من القرص لأول مرة وشاهدت سطح مكتب Plan 9 rio. كنت أتوقع نوعًا ما من الاختلاف في أجهزة سطح المكتب Unix المبكرة، لكن ما حصلت عليه كان شيئًا مختلفًا تمامًا.
لم يكن غريبًا تمامًا مثل شيء مثل Temple OS، لكنه كان لا يزال غريبًا. كان لا بد من ظهور Windows إلى الوجود من خلال إعداد ماوس بثلاثة أزرار. لم تكن هناك قائمة تطبيقات سهلة الاستخدام، وظهرت أجزاء من النظام المباشر كملفات.
محرر Acme الخاص بالخطة 9 ليس VIM أو Notepad، لأنه يتعامل مع النص كما لو كان الواجهة
يمكن للكلمات حفظ الملفات وفتح المسارات وتشغيل الأوامر
في البداية، يبدو Acme وكأنه محرر نصوص نموذجي. يبدو الأمر عاديًا، ولكن بعد ذلك أدركت بعد الكتابة عن طريق الخطأ في المنطقة الخاطئة أنه لا يوجد نص أو قوائم أو أوامر منفصلة. يوجد في الجزء العلوي من النافذة صف من الكلمات مثل New, Cut, Paste, Snarf, Sort, Xerox، و Delcol. في محرر النصوص العادي، كنت سأفترض أن هذه أزرار. في Acme، تكون أقرب إلى “النص القابل للتنفيذ”.
وهذا بالضبط ما يجعل الخطة 9 غريبة جدًا. إن شعارات Acme عبارة عن مناطق نصية قابلة للتحرير ويمكن أيضًا استخدامها كمساحات أوامر. يؤدي النقر الأوسط (تذكر ثلاثة أزرار بالماوس) إلى تشغيل إحدى الكلمات فعليًا:
-
جديد يخلق نافذة جديدة.
-
Snarf هو جزء من نموذج النسخ واللصق الخاص بشركة Acme.
-
تقوم Xerox بإنشاء نسخة من النافذة النشطة.
-
يقوم Delcol بإزالة عمود.
في نوافذ الملفات، أوامر مثل Put و Del لا تحتاج إلى شرح، ولكنها تصبح جزءًا مهمًا من سير العمل.
ويصبح الأمر أكثر غرابة لأن الفكرة نفسها تنطبق خارج نطاق الأوامر وعلى أي نص مرئي على الشاشة تقريبًا. يصبح مسار الملف شيئًا يمكن فتحه. يمكن البحث عن كلمة . النص ليس مجرد محتوى محصور داخل المحرر. ويمكن استخدامه للتنقل وتشغيل النظام بأكمله.
ستحتاج إلى ماوس بثلاثة أزرار للتفاعل مع 9front. تأكد من استخدام ماوس USB وليس لوحة التتبع إذا كنت تستخدم جهاز كمبيوتر محمول.
أخذت الخطة 9 مبدأ “كل شيء عبارة عن ملف” على محمل الجد
قالها يونكس، لكن الخطة 9 قامت ببناء المنزل بأكمله حولها
لقد اشتهر يونكس بجعل “كل شيء ملفًا”، لكن الخطة 9 تأخذ نفس المفهوم إلى مستوى جديد تمامًا. لا تتعامل الخطة 9 مع المستندات والأجهزة كملفات فحسب، بل تتعامل أيضًا مع العمليات والشبكات والخدمات وموارد النظام. غالبًا ما تكون بمثابة واجهات حية بدلاً من الملفات الموجودة على القرص.
أصبح ذلك واضحًا وبدأ منطقيًا أكثر بمجرد إدراج /proc:
lc /proc
تتعامل الخطة 9 مع هذه الإدخالات على أنها إدخالات يمكنني تصفحها. عند النظر داخل دليل عملية واحد، وجدت أن بعضها كان طرق عرض للقراءة فقط، والبعض الآخر يمثل حالة حية يمكن تحريرها. في الأساس، قررت شركة Bell Labs أن الملفات هي الطريقة التي يجب أن تتواصل بها البرامج والأجهزة والخدمات، وجعلت هذا المفهوم يشبه بيانها تقريبًا.
لقد تخلت عن فكرة واجهات برمجة التطبيقات المعقدة ومكالمات النظام المشابهة ioctl لصالح عمليات القراءة/الكتابة البسيطة لكل تفاعل مع النظام تقريبًا. بالنظر إلى المستندات الأصلية من معهد ماساتشوستس للتكنولوجيا، يبدو أن القصد الأصلي كان مطالبة جميع مكونات النظام باستخدام نفس البنية القائمة على الملفات. وذلك لأنه عندما يتحدث كل شيء من خلال الملفات، يمكن أن تعمل نفس البنية محليًا أو عبر الشبكة.
UTF-8 هو الشيء الأقل غموضًا الذي قدمته لنا الخطة 9
ساعد نظام التشغيل الفاشل في تطبيع ترميز النص الذي يستخدمه الجميع
أغرب ما في الخطة 9 هو أن إحدى أكثر أفكارها نجاحًا ربما تكون معروضة على شاشتك الآن. تم إنشاء UTF-8، وهو ترميز النص الذي يسمح لأجهزة الكمبيوتر بالتعامل مع اللغات الإنجليزية والسيريلية واليونانية واليابانية وما إلى ذلك، دون الانهيار، للخطة 9 في أوائل التسعينيات.
يعمل UTF-8 عن طريق تخزين كل حرف على هيئة بايت واحد إلى أربعة بايت. تظل أحرف ASCII القديمة البسيطة صغيرة ومتوافقة للغاية، بينما تستخدم الأحرف خارج هذا النطاق تسلسلات بايت أطول:
|
شخصية |
ما هو عليه |
UTF-8 بايت |
الصلة |
|---|---|---|---|
|
أ |
اللاتينية الأساسية |
41 |
ASCII القديم لا يزال ساريًا |
|
ه |
معلمة لاتينية |
ج3أ9 |
يسمح بتناسب الأحرف اللاتينية الإضافية أيضًا |
|
ج |
السيريلية |
د0 96 |
لا تزال النصوص غير اللاتينية تعمل بشكل نظيف |
|
🙂 |
الرموز التعبيرية |
F0 9F 99 82 |
لا يزال من الممكن دمج الرموز الحديثة في نفس النظام |
في حين أن الأنظمة القديمة كانت تعتمد على ترميزات الأحرف المتنافسة، فإن UTF-8 أعطى توافق الخطة 9 ASCII بينما يفسح المجال أيضًا لبقية العالم. لذا، على الرغم من أن الخطة 9 لم تصبح سائدة أبدًا، إلا أن UTF-8 أصبحت كذلك بالتأكيد. في الواقع، أصبح معيار الويب. وتعتمد عليه كل صفحة ويب حديثة تقريبًا، بما في ذلك الصفحة التي تقرأها الآن.
لا يزال شبح الخطة 9 يظهر في الأنظمة الحديثة
لقد خسر نظام التشغيل، لكن أفكاره تقود الكثير من البنية التحتية التي أعتبرها أمرًا مفروغًا منه
إن أنظمة التشغيل Windows وmacOS وAndroid وiOS ليست الخطة 9 مقنعة، لكن الكثير من أفكار الخطة 9 نجت لأنها حلت مشكلات حقيقية لا تزال موجودة.
أسهل مثال هو 9P، والذي كان البروتوكول الأصلي للخطة 9. إذا سبق لك استخدام WSL على نظام التشغيل Windows، فإن P9 موجود لضمان قدرة Windows على الوصول إلى الملفات الموجودة في توزيعة Linux. في نظام التشغيل Linux، ينفذ نظام الملفات v9fs دعم 9P. في QEMU ومنصات المحاكاة الافتراضية الأخرى، يتم استخدام 9P لمشاركة المجلدات بين المضيفين والضيوف.
هذا هو بالضبط السبب وراء عدم شعور جهاز 9front VM الخاص بي وكأنه طريق مسدود تاريخيًا. نفس الأفكار التي تم تنفيذها في الخطة 9 والتي رأيتها في أغرب أشكالها تستمر في الظهور في أماكن مألوفة مثل الموارد البعيدة ومساحات الأسماء والتكنولوجيا الأساسية التي تجعل وجهات النظر المختلفة للأنظمة ممكنة.
أنا، بالطبع، لا أوصي به كبديل لأي نظام تشغيل حديث. ولكن بعد تشغيله واختراقه /proc و /net، أنا أفهم تمامًا سبب استمرار الناس في الحديث عن الخطة 9. ربما تكون قد فشلت كنظام تشغيل رئيسي، لكنها لا تزال قائمة حتى اليوم بعدة طرق أساسية.
لهذا السبب أردت تشغيل هذا الجزء الصغير الغريب من تاريخ الحوسبة بنفسي.

كانت توزيعات Linux الخمس هذه شائعة حتى اختفى مطوروها
يتحرك المصدر المفتوح بسرعة، خاصة عندما يختفي المشرفون عليه.
