<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hi">
  <title>NoWayOS जर्नल</title>
  <subtitle>NoWayOS कैसे बनता है, और क्यों: एक Single Purpose OS बनाने की कहानियाँ, हर एक सच्ची और ज़्यादातर ऐसी जिन्हें जाँचा जा सकता है।</subtitle>
  <link href="https://www.nowayos.com/hi/journal/feed.xml" rel="self"/>
  <link href="https://www.nowayos.com/hi/journal"/>
  <id>https://www.nowayos.com/hi/journal</id>
  <updated>2026-11-13T00:00:00Z</updated>
  <author><name>NoWayOS</name><uri>https://www.nowayos.com/hi</uri></author>
  <entry>
    <title>React अंदर, Rust बाहर</title>
    <link href="https://www.nowayos.com/hi/journal/react-in-rust-out"/>
    <id>https://www.nowayos.com/hi/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;आपके डिज़ाइनर और फ़्रंट-एंड डेवलपर अपने औज़ार रखते हैं: कंपोनेंट, प्रॉप्स, डिज़ाइन टोकन, अपना एडिटर। वे स्क्रीन 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 इसे NoWayOS के यूज़र इंटरफ़ेस रनटाइम के लिए Rust में बदल देता है:&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/hi/journal/the-backup-that-wasnt-a-copy"/>
    <id>https://www.nowayos.com/hi/journal/the-backup-that-wasnt-a-copy</id>
    <published>2026-11-13T00:00:00Z</published>
    <updated>2026-11-13T00:00:00Z</updated>
    <summary>Apollo 11 दो गाइडेंस सिस्टम लेकर उड़ा, जो अलग-अलग सिद्धांतों पर बने थे, और उसे दोनों की ज़रूरत पड़ी। Ariane 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 को Apollo 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 में पहला Ariane 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;/hi/security#diverse-redundancy&quot;&gt;सुरक्षा पेज बताता है कि यह किस पर टिकी है&lt;/a&gt;।&lt;/p&gt;
&lt;p&gt;Apollo के इंजीनियरों ने दूसरा सिस्टम इसलिए नहीं रखा कि उन्हें पहले के विफल होने की उम्मीद थी। उन्होंने इसलिए रखा कि वे साबित नहीं कर सकते थे कि वह विफल नहीं होगा, और उन्होंने पक्का किया कि जो चीज़ पहले को रोके, उसे दूसरे में कुछ भी जाना-पहचाना न मिले।&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>हम हर बदलाव पर अपने ही बिल्ड पर हमला करते हैं</title>
    <link href="https://www.nowayos.com/hi/journal/we-attack-our-own-build"/>
    <id>https://www.nowayos.com/hi/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;/hi/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/hi/journal/what-a-proof-can-promise"/>
    <id>https://www.nowayos.com/hi/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;/hi/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;/hi/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/hi/journal/why-a-nowayos-device-has-no-shell"/>
    <id>https://www.nowayos.com/hi/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;चीज़ें बाहर छोड़ना आधा काम है। जो भी हिस्सा बचता है (नेटवर्क, स्क्रीन, इनपुट, ऐप्लिकेशन), वह अपने अलग कम्पार्टमेंट में चलता है, जिसे seL4 की भाषा में &lt;em&gt;प्रोटेक्शन डोमेन&lt;/em&gt; कहते हैं, और सिर्फ़ उसी तक पहुँचता है जो उसे दिया गया है। नेटवर्क ड्राइवर पैकेट पहुँचाता है। डिस्प्ले ड्राइवर चित्र बनाता है। ऐप्लिकेशन दोनों से तय आकार के मैसेजों के ज़रिए बात करता है।&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;/hi/security#read-one-images-evidence&quot;&gt;सुरक्षा पेज&lt;/a&gt; पर है। न साइन-अप, न स्क्रिप्ट। बस फ़ाइलें।&lt;/p&gt;
</content>
  </entry>
</feed>
