NoWayOS
AR
GitHub
القائمةإغلاق

الأسئلة

أسئلة، وأجوبة واضحة.

ما يسأل عنه الناس بشأن NoWayOS، والإجابة المختصرة أولًا. إن لم تجد سؤالك هنا، فاطرحه على GitHub.

عن NoWayOS

ما هو NoWayOS؟

إنه Single Purpose OS: نظام تشغيل للأجهزة المخصصة، مثل أنظمة التحكم في شبكات الكهرباء والمياه، والطرفيات في غرف التحكم، وصمامات البيانات أحادية الاتجاه، مبني للمهمة الوحيدة التي يؤديها كل جهاز. تكتب تطبيق الجهاز بلغة Rust، فيبنيه NoWayOS، مع برامج التشغيل التي يستخدمها فقط، فوق النواة المصغرة seL4. وتحوي الصورة ذلك ولا شيء غيره: لا محرك متصفح ولا نظام نوافذ ولا صدفة أوامر ولا مدير حزم ولا حساب مستخدم.

حاسوب لا يشغله شيء آخر.

ما هو Single Purpose OS؟

نظام تشغيل مبني لمهمة واحدة يؤديها جهاز واحد، بدلًا من نظام مبني لتشغيل أي شيء ثم يُقيَّد بشيء واحد. وثلاثة أمور تجعل نظام التشغيل Single Purpose OS:

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

وليس Single Purpose OS وضعَ الكشك، الذي يقيّد نظامًا عام الأغراض بتطبيق واحد ويترك كل ما عداه في مكانه، ولا نظامَ تشغيل أحادي المستخدم، الذي يقيّد من يستخدم الحاسوب لا ما يحويه. NoWayOS هو Single Purpose OS: حاسوب لا يشغله شيء آخر.

لماذا سُمّي NoWayOS؟

لأنه لا سبيل لاستغلال ما لم يُبنَ فيه أصلًا. يتحدث الاسم عما استُبعد من الجهاز، وليس وعدًا بأن شيئًا لن يسوء أبدًا فيما بقي فيه. فما بُني فيه قد يحوي أخطاء؛ والادعاء هو أن حجمه أقل بكثير، وأن الخطأ يبقى في حجرته.

لماذا لا نكتفي بتقييد Linux أو Windows أو جهاز لوحي؟

التقييد يجعل الجهاز آمنًا بحكم الإعدادات: فالمتصفح وسطح المكتب وصدفة الأوامر تبقى موجودة خلف الإعدادات، وتظل بحاجة إلى الترقيع، وقد يتجاوز خلل واحد كل الإعدادات دفعة واحدة. أما NoWayOS فهو آمن بحكم البناء: تلك الأجزاء لم تُبنَ في الجهاز قط، وما يبقى يعمل في حجرات معزولة، ولذلك صُمّم ليبقى العطل في أي جزء محصورًا في ذلك الجزء.

هل هو مهيأ للاستخدام في الإنتاج؟

لا. NoWayOS قيد التطوير، وكل واجهات API فيه مؤقتة وستتغير. أكثر من خمسين نظامًا تُقلع وتتحقق من نفسها في QEMU، وتعمل واجهة المستخدم ولوحة المفاتيح والفأرة عبر USB والمؤقتات ومؤقت المراقبة والمشرف على Raspberry Pi 5. أما الإقلاع الآمن، والتحديثات الموقّعة التي تُطبَّق على الجهاز، والعتاد الإنتاجي، فما زالت قادمة.

هل هو مفتوح المصدر؟

نعم. يخضع NoWayOS و Showcase و Defence Agent لترخيص MIT OR Apache-2.0 بحسب اختيارك، أما Screen Compiler فترخيصه MIT. والمشاريع الأربعة كلها عامة تحت مؤسسة NoWayOS على GitHub: يمكنك استنساخها وبناؤها وفتح بلاغ (issue) فيها.

الأمان والبرهان

هل NoWayOS “متحقق منه رسميًا”؟

لا، ونحرص على ألا نوحي بذلك. يعمل NoWayOS على seL4، الذي يملك براهين متحققًا منها آليًا على صحته وأمانه لإعدادات محددة على العتاد الذي يعمل عليه NoWayOS. ويستخدم NoWayOS إعداد الحرجية المختلطة في seL4، الذي ما زالت براهينه لمعمارية AArch64 قيد الإنجاز، ولذلك لا تقع اليوم أي صورة من صور NoWayOS ضمن براهين seL4 المكتملة. أما شيفرة NoWayOS نفسها فلا تشملها براهين seL4 على الإطلاق؛ بل تعتمد على Rust والعزل والاختبار وبراهين محدودة خاصة بها. وتسجّل كل صورة إعداد seL4 الدقيق الذي تستخدمه (الأمان).

إذا كان بوسع أي أحد قراءة الشيفرة، أفلا يجعله ذلك أقل أمانًا؟

لا. يستمد NoWayOS أمانه من تصميمه لا من السرية: مما استُبعد منه، ومن الحجرات المحيطة بما بقي فيه. وكونه مفتوحًا يتيح لأي أحد أن يتحقق من ادعاءاته، ويشغّل الأدلة بنفسه، ويبلغ عما يجده.

ماذا يحدث عند اكتشاف ثغرة؟

صُمّم النظام بحيث تبقى الثغرة حبيسة الحجرة التي هي فيها، ما يحدّ من الضرر ريثما يُعدّ الإصلاح، ومع شيفرة أقل بكثير تكون الإصلاحات المطلوبة أقل بكثير. ومن المقرر أن تصل الإصلاحات في صورة تحديثات موقّعة تتراجع بأمان عند الإخفاق: هذا مصمَّم، ولم يُبنَ بعد. وللإبلاغ عن ثغرة، يُرجى الكتابة بصورة خاصة، كما يوضح ملف SECURITY.md في كل مستودع، لا في بلاغ علني.

الاستخدام

هل يمكنه تشغيل تطبيقنا الحالي؟

ليس بصورته الحالية. يشغّل NoWayOS التطبيقات المكتوبة له بلغة Rust؛ ولا يستطيع تشغيل برامج Linux أو Windows أو تطبيقات الويب، لأن شيئًا مما تحتاجه غير مبني فيه. أما الشاشات فهي الجزء السهل: شاشات React المكتوبة ضمن المجموعة الجزئية التي يدعمها Screen Compiler تتحول إلى Rust أصلية وقت البناء. ويُعاد بناء منطق التطبيق في صورة نطاقات حماية في NoWayOS.

هل فيه متصفح ويب؟

لا. وهذا بيت القصيد. لا يوجد على جهاز NoWayOS محرك متصفح ولا WebView ولا JavaScript. الشاشات مكتوبة بلغة Rust أصلية، ترسمها واجهة المستخدم الصغيرة الخاصة بـ NoWayOS، ومع ذلك يمكن تصميمها بـ React وتحويلها وقت البناء.

على أي عتاد يعمل؟

على آلة AArch64 في QEMU، حيث يُقلع كل نظام أولًا، وعلى Raspberry Pi 5، اللوحة المرجعية منخفضة التكلفة. أما عائلة i.MX8 من NXP فهي العتاد المزمع استخدامه في الإنتاج، مع جذر ثقة في العتاد؛ وهي غير مدعومة بعد. لبناء NoWayOS تحتاج إلى Podman (أو Docker) وأداة make: فهو يُطوَّر على أجهزة Apple silicon، ولم تُختبر الأجهزة المضيفة بمعمارية x86-64 بعد.

كيف أجرّبه؟

استنسخ مستودع nowayos، وشغّل make container مرة واحدة، ثم make demo: تجري الجلسة المُعدّة مسبقًا للعرض التوضيحي القابل للنقر على جهازك مع فحص كل إطار، دون حاجة إلى أي عتاد. بعدها يُقلع make qemu-test SYSTEM=hello نواة seL4 في QEMU. وتشرح صفحة البدء ذلك خطوة بخطوة.