13 نوفمبر 2026
الاحتياط الذي لم يكن نسخة
حلّقت أبولو 11 بنظامَي توجيه مبنيَّين على مبدأين مختلفين، واحتاجت إليهما معًا. وحلّق أريان 5 بنظامين متطابقين، فأوقف عطل واحد الاثنين. لهذا الفرق اسم، و NoWayOS مبني ليكون في الجانب الصحيح منه.
في هذه الصفحة
الجميع يعرف أنه ينبغي أن يكون لديك احتياط. لكن قلة تطرح السؤال المحرج التالي: احتياط لماذا بالضبط؟
خمسة إنذارات
في 20 يوليو 1969 كانت المركبة القمرية لأبولو 11 على بعد دقائق من سطح القمر حين أطلق حاسوب التوجيه فيها إنذارًا اضطر الطاقم إلى سؤال مركز التحكم عنه. ثم إنذارًا آخر. خمسة في المجموع، في المرحلة الأخيرة من الهبوط.
كان الحاسوب تحت حمل زائد. وما فعله بعد ذلك من أعظم الأعمال الهندسية في هذه القصة: في كل مرة أعاد التشغيل، وأسقط العمل الذي يحتمل الانتظار، واستعاد فورًا العمل الذي لا يحتمله. واستمر الهبوط.
هذا هو الجزء الذي يرويه الجميع. أما الجزء الذي يستحق أن يُروى بعده فقد حدث في اليوم التالي.
النظام الثاني
كانت المركبة القمرية تحمل نظام توجيه ثانيًا، ولم يكن نسخة احتياطية من الأول. بنته شركة أخرى، على مبدأ آخر. كان النظام الرئيسي يحفظ اتجاهه بمنصة تدور بحرية على حلقات جيمبال. أما الثاني فلم تكن فيه حلقات جيمبال على الإطلاق: كانت مستشعراته مثبتة مباشرة في المركبة، وكان يعرف أين الأعلى بالحساب.
كان موجودًا ليعيد الطاقم إلى المدار إذا توقف النظام الرئيسي يومًا. وأثناء الهبوط لم تدعُ الحاجة إليه.
ثم، في طريق الصعود للالتحام بمركبة القيادة، أوصلت سلسلة من المناورات منصة النظام الرئيسي إلى الوضع الوحيد الذي لا تستطيع المنصة ذات الجيمبال التعامل معه، ففقد مرجع وضعيته. فانتقل الطاقم إلى النظام الثاني لتثبيت المركبة، والتحم.
لم يكن للنظام الثاني أن يتعطل بالطريقة نفسها. فلم تكن فيه تلك القطعة.
اثنان متطابقان
والآن القصة الأخرى. في عام 1996 انطلق أول صاروخ أريان 5 بوحدتَي مرجع قصوري تخبرانه باتجاهه: واحدة عاملة وواحدة في وضع الاستعداد. وكانتا متطابقتين، حتى في البرمجيات.
بعد سبع وثلاثين ثانية، كبر رقم داخل تلك البرمجيات عن الحيّز المخصص له. فتوقفت وحدة الاستعداد. والوحدة العاملة، التي تشغّل الشيفرة نفسها في الرحلة نفسها، توقفت هي الأخرى. وتقرير لجنة التحقيق منشور، وهو صريح: لم يكن هناك ما يُنتقل إليه، لأن الاحتياط كان قد سلك الطريق نفسه.
نسختان. عطل واحد. ولم يبقَ شيء.
ماذا يسميه المهندسون
العطل الذي يُسقط النظام واحتياطه معًا هو عطل السبب المشترك. والوقاية منه هي التكرارية المتنوعة: نظام ثانٍ مبني بطريقة مختلفة بما يكفي كي لا يكون ما يوقف الأول موجودًا في الثاني.
هكذا كان مكوك الفضاء يطير. أربعة من حواسيب الطيران فيه كانت تشغّل برمجيات شركة واحدة؛ والخامس كان يشغّل برمجيات كتبتها شركة أخرى على نحو مستقل. أربع نسخ تحميك من حاسوب يتعطل. لكنها لا تحميك من برنامج خاطئ، لأن الأربعة كلها تشغّله.
وليس ذلك بلا ثمن. فقد أُلغي الإطلاق الأول للمكوك حين لم يتفق الحاسوب الخامس والأربعة الأخرى على الوقت. تصميمان يتطلبان عملًا أكثر من تصميم واحد، ولا بد من جعلهما يلتقيان.
أين يأتي دور NoWayOS
معظم الأجهزة المخصصة تعمل اليوم بواحد من عدد قليل جدًا من أنظمة التشغيل عامة الأغراض. وكذلك احتياطاتها. فحين يظهر عيب في محرك متصفح أو سطح مكتب أو نواة من عشرات ملايين الأسطر، أو حين يصدر تحديث معيب، يظهر في كل مكان تعمل فيه تلك البرمجيات، في اليوم نفسه.
جهاز NoWayOS مختلف في أعماقه. نواته seL4، نحو 10,000 سطر. وكل ما كتبناه فوقها مكتوب بلغة Rust. وليس فيه محرك متصفح ولا سطح مكتب ولا صدفة أوامر، فالعيب في أحدها ليس موجودًا فيه.
ومعنى ذلك أن NoWayOS لا يحتاج إلى أن يستبدل ما تشغّله ليكون نافعًا. يستطيع أن يقف إلى جانبه: طريقة ثانية لأداء مهمة أساسية واحدة، مبنية على مبدأ آخر.
ما لا يفعله
للتنوع حدود، ونفضّل أن تسمعها منا.
يمنح جهاز NoWayOS أعطالًا مختلفة، لا انعدام الأعطال. ولا يفعل شيئًا حيال ما يتشاركه النظامان: الطاقة، والشبكة، والخدمات التي خلفهما، أو خطأ في تحديد ما كان يجب أن تكونه المهمة. وبعض أجزاء NoWayOS مفتوحة المصدر تُستخدم في برمجيات أخرى أيضًا، ولهذا تسرد كل صورة كل مكوّن تحويه، لتقرأ ما تشترك فيه مع النظام المجاور لها.
NoWayOS قيد التطوير، ولذلك فهذا دور صُمِّم له، لا دور أدّاه بعد. وصفحة الأمان تقول على ماذا يقوم.
لم يحمل مهندسو أبولو نظامًا ثانيًا لأنهم توقعوا أن يتعطل الأول. بل حملوه لأنهم لم يستطيعوا أن يبرهنوا على أنه لن يتعطل، وحرصوا على ألا يجد ما يوقف الأول شيئًا مألوفًا في الثاني.