<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
  <title>يوميات NoWayOS</title>
  <subtitle>كيف يُبنى NoWayOS، ولماذا: حكايات من بناء Single Purpose OS، كلها صادقة ومعظمها قابل للتحقق.</subtitle>
  <link href="https://www.nowayos.com/ar/journal/feed.xml" rel="self"/>
  <link href="https://www.nowayos.com/ar/journal"/>
  <id>https://www.nowayos.com/ar/journal</id>
  <updated>2026-11-13T00:00:00Z</updated>
  <author><name>NoWayOS</name><uri>https://www.nowayos.com/ar</uri></author>
  <entry>
    <title>React يدخل، Rust يخرج</title>
    <link href="https://www.nowayos.com/ar/journal/react-in-rust-out"/>
    <id>https://www.nowayos.com/ar/journal/react-in-rust-out</id>
    <published>2026-11-13T00:00:00Z</published>
    <updated>2026-11-13T00:00:00Z</updated>
    <summary>المصممون يحتفظون بـ React. والأجهزة تحصل على Rust أصلي. كيف يحوّل Screen Compiler الشاشات إلى شيفرة وقت البناء، فلا يبقى على الجهاز متصفح يُهاجَم.</summary>
    <content type="html">&lt;p&gt;تُصمَّم الواجهات الحديثة بـ React. ولذلك يحمل عدد كبير جدًا من الأجهزة المخصصة، من لوحات التحكم إلى آلات التذاكر، محرك متصفح كاملًا، وهو من أكبر البرامج وأكثرها تعرضًا للهجوم، ليرسم بضعة أزرار وعبارة «Touch Start to begin».&lt;/p&gt;
&lt;p&gt;أردنا أسلوب التصميم الحديث من دون المتصفح. فبنينا &lt;strong&gt;Screen Compiler&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;اكتب-الشاشة-بـ-react&quot;&gt;اكتب الشاشة بـ React&lt;/h2&gt;
&lt;p&gt;يحتفظ مصمموك ومطورو الواجهات لديك بأدواتهم: المكوّنات، والخصائص (props)، ورموز التصميم، ومحررهم. ويكتبون الشاشة بـ TSX (وهذه مختصرة من إحدى شاشات الاختبار في Screen Compiler):&lt;/p&gt;
&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-tsx&quot;&gt;&amp;lt;Column gap={SPACE_SM} padding={SPACE_LG}&amp;gt;
  &amp;lt;Text id=&amp;quot;title&amp;quot;&amp;gt;Welcome&amp;lt;/Text&amp;gt;
  &amp;lt;Text&amp;gt;Touch Start to begin.&amp;lt;/Text&amp;gt;
  &amp;lt;Spacer /&amp;gt;
  &amp;lt;Button id=&amp;quot;start&amp;quot; onPress={onStart}&amp;gt;Start&amp;lt;/Button&amp;gt;
&amp;lt;/Column&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;وسلِّم-rust-خالصًا&quot;&gt;وسلِّم Rust خالصًا&lt;/h2&gt;
&lt;p&gt;وقت البناء، على جهازك أو في CI، يحوّل Screen Compiler ذلك إلى Rust لبيئة تشغيل واجهة المستخدم في NoWayOS:&lt;/p&gt;
&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-rust&quot;&gt;let n1 = b.text(&amp;quot;Welcome&amp;quot;)?; // welcome.tsx:17:9 &amp;lt;Text&amp;gt;
let n2 = b.text(&amp;quot;Touch Start to begin.&amp;quot;)?; // welcome.tsx:18:9 &amp;lt;Text&amp;gt;
let n4 = b.spacer(None)?; // welcome.tsx:20:9 &amp;lt;Spacer&amp;gt;
let n5 = b.button(&amp;quot;Start&amp;quot;, actions::START)?; // welcome.tsx:21:9 &amp;lt;Button&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;كل سطر يشير إلى موضعه في TSX الذي جاء منه. ويحصل الجهاز على تلك الشيفرة ولا شيء غيرها: لا محرك JavaScript، ولا متصفح، ولا صفحة ويب تُهاجَم. و Screen Compiler نفسه لا يُحمَّل على الجهاز أبدًا.&lt;/p&gt;
&lt;!-- slot --&gt;&lt;h2 id=&quot;دقيق-أو-لا-شيء&quot;&gt;دقيق، أو لا شيء&lt;/h2&gt;
&lt;p&gt;المحوِّل الذي يخمّن محوِّل لا يمكن الوثوق به. يحوّل Screen Compiler مجموعته الجزئية المعلنة من TSX بدقة، ويرفض كل ما عداها مع ذكر الملف والسطر والعمود. ولا يقرّب أبدًا. و Rust الذي يكتبه لا يحوي &lt;code&gt;unsafe&lt;/code&gt; ولا &lt;code&gt;unwrap&lt;/code&gt; ولا &lt;code&gt;panic&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;ثم تُرسم كل شاشة محوَّلة بمحرك الرسم في NoWayOS وتُقارن، بكسلًا ببكسل، بصورتها المعتمدة. وإذا تحرك بكسل واحد، قال البناء ذلك.&lt;/p&gt;
&lt;h2 id=&quot;أين-وصل&quot;&gt;أين وصل&lt;/h2&gt;
&lt;p&gt;Screen Compiler قيد التطوير: مجموعته الجزئية الأولى مبنية والتالية جارية. وهو مفتوح المصدر برخصة MIT، على GitHub إلى جانب NoWayOS. وإذا كان فريقك يصمم بـ React ويبني أجهزة لها شأن، &lt;a href=&quot;mailto:partners@nowayos.com&quot;&gt;فيسرّنا أن نسمع منك&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>الاحتياط الذي لم يكن نسخة</title>
    <link href="https://www.nowayos.com/ar/journal/the-backup-that-wasnt-a-copy"/>
    <id>https://www.nowayos.com/ar/journal/the-backup-that-wasnt-a-copy</id>
    <published>2026-11-13T00:00:00Z</published>
    <updated>2026-11-13T00:00:00Z</updated>
    <summary>حلّقت أبولو 11 بنظامَي توجيه مبنيَّين على مبدأين مختلفين، واحتاجت إليهما معًا. وحلّق أريان 5 بنظامين متطابقين، فأوقف عطل واحد الاثنين. لهذا الفرق اسم، و NoWayOS مبني ليكون في الجانب الصحيح منه.</summary>
    <content type="html">&lt;p&gt;الجميع يعرف أنه ينبغي أن يكون لديك احتياط. لكن قلة تطرح السؤال المحرج التالي: احتياط &lt;em&gt;لماذا&lt;/em&gt; بالضبط؟&lt;/p&gt;
&lt;h2 id=&quot;خمسة-إنذارات&quot;&gt;خمسة إنذارات&lt;/h2&gt;
&lt;p&gt;في 20 يوليو 1969 كانت المركبة القمرية لأبولو 11 على بعد دقائق من سطح القمر حين أطلق حاسوب التوجيه فيها إنذارًا اضطر الطاقم إلى سؤال مركز التحكم عنه. ثم إنذارًا آخر. خمسة في المجموع، في المرحلة الأخيرة من الهبوط.&lt;/p&gt;
&lt;p&gt;كان الحاسوب تحت حمل زائد. وما فعله بعد ذلك من أعظم الأعمال الهندسية في هذه القصة: في كل مرة أعاد التشغيل، وأسقط العمل الذي يحتمل الانتظار، واستعاد فورًا العمل الذي لا يحتمله. واستمر الهبوط.&lt;/p&gt;
&lt;p&gt;هذا هو الجزء الذي يرويه الجميع. أما الجزء الذي يستحق أن يُروى بعده فقد حدث في اليوم التالي.&lt;/p&gt;
&lt;h2 id=&quot;النظام-الثاني&quot;&gt;النظام الثاني&lt;/h2&gt;
&lt;p&gt;كانت المركبة القمرية تحمل نظام توجيه ثانيًا، ولم يكن نسخة احتياطية من الأول. بنته شركة أخرى، على مبدأ آخر. كان النظام الرئيسي يحفظ اتجاهه بمنصة تدور بحرية على حلقات جيمبال. أما الثاني فلم تكن فيه حلقات جيمبال على الإطلاق: كانت مستشعراته مثبتة مباشرة في المركبة، وكان يعرف أين الأعلى بالحساب.&lt;/p&gt;
&lt;p&gt;كان موجودًا ليعيد الطاقم إلى المدار إذا توقف النظام الرئيسي يومًا. وأثناء الهبوط لم تدعُ الحاجة إليه.&lt;/p&gt;
&lt;p&gt;ثم، في طريق الصعود للالتحام بمركبة القيادة، أوصلت سلسلة من المناورات منصة النظام الرئيسي إلى الوضع الوحيد الذي لا تستطيع المنصة ذات الجيمبال التعامل معه، ففقد مرجع وضعيته. فانتقل الطاقم إلى النظام الثاني لتثبيت المركبة، والتحم.&lt;/p&gt;
&lt;p&gt;لم يكن للنظام الثاني أن يتعطل بالطريقة نفسها. فلم تكن فيه تلك القطعة.&lt;/p&gt;
&lt;h2 id=&quot;اثنان-متطابقان&quot;&gt;اثنان متطابقان&lt;/h2&gt;
&lt;p&gt;والآن القصة الأخرى. في عام 1996 انطلق أول صاروخ أريان 5 بوحدتَي مرجع قصوري تخبرانه باتجاهه: واحدة عاملة وواحدة في وضع الاستعداد. وكانتا متطابقتين، حتى في البرمجيات.&lt;/p&gt;
&lt;p&gt;بعد سبع وثلاثين ثانية، كبر رقم داخل تلك البرمجيات عن الحيّز المخصص له. فتوقفت وحدة الاستعداد. والوحدة العاملة، التي تشغّل الشيفرة نفسها في الرحلة نفسها، توقفت هي الأخرى. وتقرير لجنة التحقيق منشور، وهو صريح: لم يكن هناك ما يُنتقل إليه، لأن الاحتياط كان قد سلك الطريق نفسه.&lt;/p&gt;
&lt;p&gt;نسختان. عطل واحد. ولم يبقَ شيء.&lt;/p&gt;
&lt;h2 id=&quot;ماذا-يسميه-المهندسون&quot;&gt;ماذا يسميه المهندسون&lt;/h2&gt;
&lt;p&gt;العطل الذي يُسقط النظام واحتياطه معًا هو &lt;em&gt;عطل السبب المشترك&lt;/em&gt;. والوقاية منه هي &lt;em&gt;التكرارية المتنوعة&lt;/em&gt;: نظام ثانٍ مبني بطريقة مختلفة بما يكفي كي لا يكون ما يوقف الأول موجودًا في الثاني.&lt;/p&gt;
&lt;p&gt;هكذا كان مكوك الفضاء يطير. أربعة من حواسيب الطيران فيه كانت تشغّل برمجيات شركة واحدة؛ والخامس كان يشغّل برمجيات كتبتها شركة أخرى على نحو مستقل. أربع نسخ تحميك من حاسوب يتعطل. لكنها لا تحميك من برنامج خاطئ، لأن الأربعة كلها تشغّله.&lt;/p&gt;
&lt;p&gt;وليس ذلك بلا ثمن. فقد أُلغي الإطلاق الأول للمكوك حين لم يتفق الحاسوب الخامس والأربعة الأخرى على الوقت. تصميمان يتطلبان عملًا أكثر من تصميم واحد، ولا بد من جعلهما يلتقيان.&lt;/p&gt;
&lt;h2 id=&quot;أين-يأتي-دور-nowayos&quot;&gt;أين يأتي دور NoWayOS&lt;/h2&gt;
&lt;p&gt;معظم الأجهزة المخصصة تعمل اليوم بواحد من عدد قليل جدًا من أنظمة التشغيل عامة الأغراض. وكذلك احتياطاتها. فحين يظهر عيب في محرك متصفح أو سطح مكتب أو نواة من عشرات ملايين الأسطر، أو حين يصدر تحديث معيب، يظهر في كل مكان تعمل فيه تلك البرمجيات، في اليوم نفسه.&lt;/p&gt;
&lt;p&gt;جهاز NoWayOS مختلف في أعماقه. نواته seL4، نحو 10,000 سطر. وكل ما كتبناه فوقها مكتوب بلغة Rust. وليس فيه محرك متصفح ولا سطح مكتب ولا صدفة أوامر، فالعيب في أحدها ليس موجودًا فيه.&lt;/p&gt;
&lt;p&gt;ومعنى ذلك أن NoWayOS لا يحتاج إلى أن يستبدل ما تشغّله ليكون نافعًا. يستطيع أن يقف إلى جانبه: طريقة ثانية لأداء مهمة أساسية واحدة، مبنية على مبدأ آخر.&lt;/p&gt;
&lt;h2 id=&quot;ما-لا-يفعله&quot;&gt;ما لا يفعله&lt;/h2&gt;
&lt;p&gt;للتنوع حدود، ونفضّل أن تسمعها منا.&lt;/p&gt;
&lt;p&gt;يمنح جهاز NoWayOS أعطالًا مختلفة، لا انعدام الأعطال. ولا يفعل شيئًا حيال ما يتشاركه النظامان: الطاقة، والشبكة، والخدمات التي خلفهما، أو خطأ في تحديد ما كان يجب أن تكونه المهمة. وبعض أجزاء NoWayOS مفتوحة المصدر تُستخدم في برمجيات أخرى أيضًا، ولهذا تسرد كل صورة كل مكوّن تحويه، لتقرأ ما تشترك فيه مع النظام المجاور لها.&lt;/p&gt;
&lt;p&gt;NoWayOS قيد التطوير، ولذلك فهذا دور صُمِّم له، لا دور أدّاه بعد. &lt;a href=&quot;/ar/security#diverse-redundancy&quot;&gt;وصفحة الأمان تقول على ماذا يقوم&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;لم يحمل مهندسو أبولو نظامًا ثانيًا لأنهم توقعوا أن يتعطل الأول. بل حملوه لأنهم لم يستطيعوا أن يبرهنوا على أنه لن يتعطل، وحرصوا على ألا يجد ما يوقف الأول شيئًا مألوفًا في الثاني.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>نهاجم بناءنا نحن عند كل تغيير</title>
    <link href="https://www.nowayos.com/ar/journal/we-attack-our-own-build"/>
    <id>https://www.nowayos.com/ar/journal/we-attack-our-own-build</id>
    <published>2026-11-13T00:00:00Z</published>
    <updated>2026-11-13T00:00:00Z</updated>
    <summary>اختبار الأمان الذي لا يمكن أن يفشل لا يثبت شيئًا. لذلك تأتي اختبارات NoWayOS مع نسخ بُنيت لتفشل، وتوجد بواباته حيث لا يستطيع طلب سحب أن يصل إليها.</summary>
    <content type="html">&lt;p&gt;هذا سؤال مزعج لأي اختبار أمان: هل فشل يومًا؟ الاختبار الذي لم يفشل قط ربما ينجح لأن النظام سليم، أو لأن الاختبار لا يرى شيئًا على الإطلاق. ومن الخارج، يبدو الأمران متطابقين تمامًا.&lt;/p&gt;
&lt;p&gt;لذلك لا يكتفي NoWayOS باختبار أمانه. بل يهاجمه، عند كل تغيير، ويتحقق من أن الهجمات تُصَدّ.&lt;/p&gt;
&lt;h2 id=&quot;مدّ-اليد-إلى-ما-ليس-لك&quot;&gt;مدّ اليد إلى ما ليس لك&lt;/h2&gt;
&lt;p&gt;كل جزء من نظام NoWayOS يعمل في حجرته الخاصة على seL4، ولا يملك إلا ما مُنح له. واختبارات العزل ترسل مجسّات عبر تلك الحدود عمدًا. أحدها يقرأ عنوانًا لم يُعطَ له قط. وآخر يكتب في صفحة لا يحق له إلا قراءتها. وآخر، يملك ما تملكه واجهة المستخدم بالضبط، يحاول الكتابة في صفحة التحكم الخاصة بالعرض، التي لا يحق للواجهة إلا قراءتها. وآخر، يملك ما يملكه عميل الشبكة بالضبط، يحاول الكتابة في ذاكرة مشغل الشبكة.&lt;/p&gt;
&lt;p&gt;وعلى seL4 أن توقفها كلها، وعلى جزء لا علاقة له بالأمر أن يواصل العمل من دون أن يُمَسّ.&lt;/p&gt;
&lt;h2 id=&quot;اختبار-بُني-ليفشل&quot;&gt;اختبار بُني ليفشل&lt;/h2&gt;
&lt;p&gt;ثم تأتي المفاجأة. إلى جانب اختبار العزل الخاص بواجهة المستخدم توجد نسخة وُسِّع فيها إذن واحد عمدًا: يُعطى بديل الواجهة الصفحة الخاصة بالعرض. واختبار تلك النسخة &lt;strong&gt;يجب أن يفشل&lt;/strong&gt;. ولو نجح يومًا لكان اختبار العزل أعمى، ولقال البناء ذلك.&lt;/p&gt;
&lt;p&gt;والفكرة نفسها تسري في بقية الفحوص. لكل مفكك للرسائل بين الأجزاء براهين محدودة، من مدقق النماذج Kani، على أنه لا ينهار ولا يفيض ولا يقرأ خارج الحدود أبدًا. ثم تُفسد فحوص الطفرات المفككات عمدًا، لتبيّن أن البراهين تنتبه. وكل محلل لمدخلات خارجية يخضع لاختبار التشويش ببيانات معادية.&lt;/p&gt;
&lt;p&gt;وكل ذلك جزء من &lt;code&gt;make ci&lt;/code&gt;، البوابة التي يجب أن يمر بها كل تغيير. اختبارات العزل تعمل في كل مرة؛ أما البرهان أو جولة التشويش فيُعادان كلما تغيرت الشيفرة التي يغطيانها.&lt;/p&gt;
&lt;!-- slot --&gt;&lt;h2 id=&quot;بوابات-بعيدة-عن-المتناول&quot;&gt;بوابات بعيدة عن المتناول&lt;/h2&gt;
&lt;p&gt;البوابة قوية بقدر قوة اليد التي تستطيع تغييرها. لذلك فإن الفحوص التي يجب أن تجتازها كل مساهمة في NoWayOS معرَّفة في &lt;strong&gt;Defence Agent&lt;/strong&gt;، وهو مستودع عام مستقل. وطلب السحب الذي يمس بوابة يُعلَّم لينظر فيه المشرف على المشروع.&lt;/p&gt;
&lt;p&gt;ويختبر Defence Agent نفسه بالطريقة ذاتها: عشرون طلب سحب مدسوسًا، يخفي كل منها شيئًا قد يفوت المراجع. فيها نص مخفي من اليمين إلى اليسار داخل تعليق، وحرف استُبدل به شبيهه السيريلي، واعتمادية تُجلب مباشرة من مستودع git، ومسار عمل كان سيشغّل شيفرة غير موثوقة. ويجب أن يُكشف كل واحد منها، بينما يجب أن تمر ثلاثة تغييرات حقيقية سابقة.&lt;/p&gt;
&lt;h2 id=&quot;أدلة-لا-نعوت&quot;&gt;أدلة، لا نعوت&lt;/h2&gt;
&lt;p&gt;لا شيء من هذا يجعل الجهاز “غير قابل للاختراق”. لا شيء يفعل ذلك، ولن نقوله أبدًا. ما يعطيك إياه هو الأدلة: سجل بما جُرِّب، وما أُوقف، والأمر الذي يُظهر ذلك. اقرأ &lt;a href=&quot;/ar/security#read-one-images-evidence&quot;&gt;الأدلة الخاصة بصورة حقيقية واحدة&lt;/a&gt;، أو &lt;a href=&quot;https://github.com/NoWayOS/defence-agent&quot;&gt;البوابات نفسها&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>ما الذي يستطيع البرهان أن يعد به</title>
    <link href="https://www.nowayos.com/ar/journal/what-a-proof-can-promise"/>
    <id>https://www.nowayos.com/ar/journal/what-a-proof-can-promise</id>
    <published>2026-11-13T00:00:00Z</published>
    <updated>2026-11-13T00:00:00Z</updated>
    <summary>الاختبار يجرّب الحالات التي خطرت لأحدهم. والبرهان يغطيها كلها. ما تقوله براهين seL4 الرياضية، وما تفترضه، وأين يقف NoWayOS منها.</summary>
    <content type="html">&lt;p&gt;نثق بالبرمجيات في العادة لأنها اختُبرت. فكّر أحدهم في الطرق التي قد تتعطل بها، وجرّبها، ورآها تتجاوزها. وهذا ينجح جيدًا، إلى أن تأتي الحالة التي لم تخطر لأحد.&lt;/p&gt;
&lt;p&gt;أما البرهان فيبدأ من الطرف الآخر. إنه لا يجرّب حالات. بل يبيّن، بالرياضيات، أن عبارةً ما تصح فيها كلها.&lt;/p&gt;
&lt;h2 id=&quot;كل-الحالات-لا-التي-جرّبناها-فقط&quot;&gt;كل الحالات، لا التي جرّبناها فقط&lt;/h2&gt;
&lt;p&gt;خذ وعدًا صغيرًا: هذه الشيفرة لا تقرأ أبدًا ما بعد نهاية مخزنها المؤقت. يستطيع الاختبار أن يعطيها ألف مدخل، أو مليار مدخل، ثم يفيد بأن أيًّا منها لم يُفشلها. أما البرهان فيقول شيئًا من نوع آخر: لا يوجد مدخل يُفشلها. لم يُعثر على واحد، ولا وجود لواحد.&lt;/p&gt;
&lt;p&gt;والثمن هو الصرامة. يحتاج البرهان إلى عبارة دقيقة لما ينبغي أن تفعله الشيفرة، تسمى المواصفات، وإلى حجة تربط كل سطر من الشيفرة بها. وفي البرمجيات الحقيقية تكون هذه الحجة أطول كثيرًا من أن يراجعها إنسان بعينه. لذلك يتحقق منها حاسوب.&lt;/p&gt;
&lt;!-- slot --&gt;&lt;h2 id=&quot;متحقق-منه-آليًا&quot;&gt;متحقق منه آليًا&lt;/h2&gt;
&lt;p&gt;هذا معنى «متحقق منه آليًا». يُكتب البرهان كاملًا، بلغة يستطيع قراءتها برنامج يسمى مساعد البراهين، ويتحقق البرنامج من كل خطوة وفق قواعد المنطق. لا يتعب عند الصفحة التسعمئة، ولا يأخذ بكلام أحد.&lt;/p&gt;
&lt;p&gt;وهكذا يُتحقق من براهين seL4، في مساعد براهين اسمه Isabelle/HOL. وهي منشورة للعموم، ويستطيع أي أحد أن يعيد تشغيلها.&lt;/p&gt;
&lt;h2 id=&quot;ما-تقوله-براهين-sel4&quot;&gt;ما تقوله براهين seL4&lt;/h2&gt;
&lt;p&gt;seL4 هي النواة التي يعمل عليها كل نظام من أنظمة NoWayOS: نحو 10,000 سطر من الشيفرة، وهي الشيفرة الوحيدة التي تتحكم بالجهاز تحكمًا كاملًا. وحجمها هو بيت القصيد. فالحجة حول عشرة آلاف سطر يمكن إتمامها. أما الحجة حول عشرات الملايين فلا يمكن إتمامها بعد.&lt;/p&gt;
&lt;p&gt;تعرض seL4 Foundation &lt;a href=&quot;https://sel4.systems/Verification/proofs.html&quot;&gt;هذه البراهين&lt;/a&gt; في طبقات:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;الشيفرة تفعل ما تنص عليه المواصفات، ولا شيء غيره.&lt;/strong&gt; ويترتب على ذلك قائمة بأشياء لا تستطيع النواة فعلها: تجاوز حدود مخزن مؤقت، أو تتبّع مؤشر فارغ، أو تسريب الذاكرة، أو القسمة على صفر.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;البرنامج الذي يعمل يطابق الشيفرة التي بُرهن عليها.&lt;/strong&gt; فبينهما مصرِّف، ولذلك يتحقق برهان إضافي من مخرجاته.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;النواة تستطيع أن تُبقي أجزاء النظام منفصلة.&lt;/strong&gt; فلا يستطيع جزء أن يغيّر بيانات جزء آخر، ولا أن يقرأها، ولا أن يأخذ الموارد التي يحتاج إليها، إلا إذا مُنح الحق في ذلك.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;النظام يستطيع أن يبدأ في الحالة التي صُمم ليكون عليها،&lt;/strong&gt; بالصلاحيات المذكورة في وصفه بالضبط.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;وليست كل طبقة مكتملة لكل معالج ولكل إعداد. وهذا مهم، وسنعود إليه.&lt;/p&gt;
&lt;h2 id=&quot;ما-يسلّم-به-البرهان&quot;&gt;ما يسلّم به البرهان&lt;/h2&gt;
&lt;p&gt;البرهان واسع بقدر عبارته تمامًا، وهو يقوم على افتراضاته. وتدوّن seL4 افتراضاتها: أن العتاد يتصرف كما يقول نموذجه، وأن بضع مئات من أسطر الشيفرة في أدنى مستوى صحيحة، وأن الشيفرة التي تعمل قبل بدء النواة قد أدّت عملها. وبرهان السرية لا يغطي التوقيت.&lt;/p&gt;
&lt;p&gt;وهو لا يقول شيئًا عمّا إذا كانت المواصفات تطلب الشيء الصحيح، ولا شيئًا عن البرمجيات التي فوق النواة. فالنواة المبرهَن عليها ستعزل بأمانة برنامجًا فيه خلل. والخلل ما زال هناك. لكنه لا يستطيع الوصول إلى أي شيء آخر.&lt;/p&gt;
&lt;p&gt;وليس هذا ضعفًا في البراهين. بل هو ما يجعلها جديرة بالاقتناء: إنها تقول بدقة ما تغطيه، فتعرف بدقة ما الذي بقي.&lt;/p&gt;
&lt;h2 id=&quot;أين-يقف-nowayos&quot;&gt;أين يقف NoWayOS&lt;/h2&gt;
&lt;p&gt;هذا هو الموقف بوضوح. يعمل NoWayOS على seL4، لكن لا توجد اليوم صورة من صور NoWayOS داخل براهين seL4 المكتملة. يستخدم NoWayOS إعداد الحرجية المختلطة في seL4، وبراهينه لمعالجاتنا ما زالت جارية. وبراهين seL4 لم تغطِّ قط شيفرة NoWayOS نفسه. لذلك لا نصف NoWayOS بأنه “متحقق منه رسميًا”، ولن نفعل.&lt;/p&gt;
&lt;p&gt;وكل صورة تقول أين تقف. فإلى جانبها ملف يسرد إعداد نواتها، خيارًا خيارًا، مقابل الإعداد الذي برهنت عليه seL4. وصفحة &lt;a href=&quot;/ar/security#what-sel4s-proofs-cover-and-what-they-dont&quot;&gt;الأمان&lt;/a&gt; تعرض ملفًا حقيقيًا.&lt;/p&gt;
&lt;h2 id=&quot;براهين-أصغر-من-صنعنا&quot;&gt;براهين أصغر من صنعنا&lt;/h2&gt;
&lt;p&gt;تحصل شيفرة NoWayOS على ضمانها بطريق آخر: Rust، والعزل، والمراجعة، والاختبار، وبراهين من نوع أكثر تواضعًا.&lt;/p&gt;
&lt;p&gt;لكل مفكك للرسائل التي تنتقل بين أجزاء النظام &lt;strong&gt;براهين محدودة&lt;/strong&gt;، مصنوعة بمدقق نماذج اسمه Kani. والبرهان المحدود يغطي كل مدخل حتى حجم مُعلن، وهو هنا أطول سجل يقبله المفكك. وداخل ذلك الحد هو برهان حقيقي: لا يوجد مدخل يجعل المفكك ينهار أو يفيض أو يقرأ خارج الحدود. وخارج الحد لا يقول شيئًا، ولهذا جعلنا الحد أطول مدخل ممكن.&lt;/p&gt;
&lt;p&gt;ثم نُفسد المفككات عمدًا، لنتأكد من أن البراهين تنتبه. فالبرهان الذي لا يمكن أن يفشل ليس أفضل من &lt;a href=&quot;/ar/journal/we-attack-our-own-build&quot;&gt;اختبار لا يمكن أن يفشل&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;حجمه-الصادق&quot;&gt;حجمه الصادق&lt;/h2&gt;
&lt;p&gt;البرهان لا يجعل شيئًا “غير قابل للاختراق”. إنه يجعل عبارة واحدة صحيحة، في كل الحالات، وفق افتراضات تستطيع قراءتها. اعرف العبارة والافتراضات، تعرف ما لديك.&lt;/p&gt;
&lt;p&gt;ولهذا بُني NoWayOS على النواة التي تملك هذه البراهين، ولهذا يخبرك، صورةً صورة، إلى أين تصل.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>لماذا لا توجد صدفة أوامر في أجهزة NoWayOS</title>
    <link href="https://www.nowayos.com/ar/journal/why-a-nowayos-device-has-no-shell"/>
    <id>https://www.nowayos.com/ar/journal/why-a-nowayos-device-has-no-shell</id>
    <published>2026-11-13T00:00:00Z</published>
    <updated>2026-11-13T00:00:00Z</updated>
    <summary>معظم الأجهزة المخصصة حاسوب للأغراض العامة، فوقه مهمة واحدة وتحته كل ما عداها ما زال موجودًا. نحن سلكنا الطريق الآخر: نبني كل جهاز مما تحتاجه مهمته فقط، ونترك الباقي خارجًا.</summary>
    <content type="html">&lt;p&gt;معظم الهجمات على الأجهزة المخصصة لا تستهدف المهمة التي يؤديها الجهاز. بل تستهدف بقية الحاسوب الذي يعمل عليه: صدفة الأوامر المتروكة للصيانة، وخدمة الوصول عن بعد التي لم يوقفها أحد، والمتصفح الذي خلف التطبيق، وسطح المكتب الذي لا يفصلك عنه إلا تعطل واحد.&lt;/p&gt;
&lt;p&gt;و«بقية الحاسوب» هذه في كل مكان. البوابة التي تنقل القراءات من محطة مياه، والطرفية في غرفة التحكم بشبكة كهرباء، والأجهزة التي يعتمد عليها مستشفى، واللوحة على جانب آلة، والشاشة في بهو محطة: كثير منها يعمل بنظام تشغيل للأغراض العامة، فوقه مهمة واحدة، وتحته كل ما عداها ما زال موجودًا، معطَّلًا بالإعدادات. ووضع الكشك أبسط صور ذلك. وكل اختراق هو أن يجد أحدهم الإعداد الوحيد الذي فات.&lt;/p&gt;
&lt;h2 id=&quot;اتركه-خارجًا-بدلًا-من-ذلك&quot;&gt;اتركه خارجًا بدلًا من ذلك&lt;/h2&gt;
&lt;p&gt;يبدأ NoWayOS من الطرف الآخر. صورة NoWayOS تضم تطبيق الجهاز، والمشغلات التي يستخدمها ذلك التطبيق، والنواة المصغرة seL4. وهذه هي القائمة كلها.&lt;/p&gt;
&lt;p&gt;لا توجد صدفة أوامر يُنفَذ إليها، لأن أي صدفة لم تُبنَ فيه أصلًا. ولا تسجيل دخول عن بعد تُخمَّن كلمة مروره. ولا سطح مكتب يُهرَب إليه. ولا محرك متصفح ينتظر صفحة خبيثة. ولا يمكن أن يُخطأ في إعداد برنامج غير موجود.&lt;/p&gt;
&lt;p&gt;كل ذلك يخص نظام التشغيل. أما التطبيق الذي يعمل فوقه فشأن آخر: يستطيع أن يسجّل دخول مستخدميه، وأن يسجّل الدخول إلى أنظمة أخرى، كلما اقتضت مهمته ذلك. لكنه لا يقوم على نظام تشغيل يستطيع أحد أن يسجّل الدخول إليه.&lt;/p&gt;
&lt;p&gt;نسمي ذلك &lt;strong&gt;Single Purpose OS&lt;/strong&gt;: حاسوب لا يشغله شيء آخر.&lt;/p&gt;
&lt;h2 id=&quot;وما-هو-موجود-معزول&quot;&gt;وما هو موجود معزول&lt;/h2&gt;
&lt;p&gt;ترك الأشياء خارجًا هو نصف الأمر. فكل جزء يبقى (الشبكة، والشاشة، والإدخال، والتطبيق) يعمل في حجرة خاصة به، أي &lt;em&gt;نطاق حماية&lt;/em&gt; بمصطلح seL4، ولا يصل إلا إلى ما مُنح له. مشغل الشبكة ينقل الحزم. ومشغل العرض يرسم. والتطبيق يخاطب كلًّا منهما برسائل ثابتة الحجم.&lt;/p&gt;
&lt;p&gt;وكل إذن مدوَّن في ملف، حقيقةً واحدة في كل سطر، ويفشل البناء إذا اختلف النظام والملف. وهو مبني بحيث يبقى العطل في جزء ما داخل ذلك الجزء.&lt;/p&gt;
&lt;h2 id=&quot;لكن-كيف-تصلحه-بلا-صدفة-أوامر&quot;&gt;«لكن كيف تصلحه بلا صدفة أوامر؟»&lt;/h2&gt;
&lt;p&gt;هذا أول ما يسأله المهندسون، وهو سؤال في محله. لا يُسجَّل الدخول إلى نظام التشغيل في جهاز NoWayOS: فليس فيه حسابات، ولا يوجد مستخدم يُسجَّل الدخول باسمه. بل تبني صورة جديدة وتستبدل بها القديمة. واليوم يعني ذلك بناءها وتحميلها على اللوحة؛ أما التحديثات الموقعة، التي يتحقق منها الجهاز وتستطيع التراجع بأمان، فهي مصممة وفي الطريق.&lt;/p&gt;
&lt;p&gt;وما تحصل عليه في المقابل جهاز يبدأ مباشرة في مهمته الواحدة، وفيه أقل بكثير مما يحتاج إلى ترقيع وأقل بكثير مما يمكن مهاجمته. وللأنظمة التي تقوم عليها البلاد، هذه المبادلة هي الغاية كلها.&lt;/p&gt;
&lt;h2 id=&quot;انظر-بنفسك&quot;&gt;انظر بنفسك&lt;/h2&gt;
&lt;p&gt;الأدلة الخاصة بصورة حقيقية واحدة من NoWayOS، أي ملف أذوناتها وقائمة مكوناتها وسجل إعداد seL4 الخاص بها، موجودة في &lt;a href=&quot;/ar/security#read-one-images-evidence&quot;&gt;صفحة الأمان&lt;/a&gt;. لا تسجيل، ولا سكربت. الملفات فقط.&lt;/p&gt;
</content>
  </entry>
</feed>
