NoWayOS
HI
GitHub
मेन्यूबंद करें

सवाल

सवालों के साफ़-साफ़ जवाब।

लोग NoWayOS के बारे में जो पूछते हैं, वह सब यहाँ है, और हर बार पहले छोटा जवाब। अगर आपका सवाल यहाँ नहीं है, तो GitHub पर पूछें।

NoWayOS के बारे में

NoWayOS क्या है?

Single Purpose OS: समर्पित डिवाइसों के लिए एक ऑपरेटिंग सिस्टम, जैसे बिजली और पानी के नेटवर्क के कंट्रोल सिस्टम, कंट्रोल रूम के टर्मिनल और एकतरफ़ा डेटा डायोड, जो हर डिवाइस के एक काम के लिए बना है। आप डिवाइस का एप्लिकेशन Rust में लिखते हैं, और NoWayOS उसे, सिर्फ़ उन्हीं ड्राइवरों के साथ जिन्हें वह इस्तेमाल करता है, seL4 माइक्रोकर्नेल पर बिल्ड करता है। इमेज में बस वही होता है, और कुछ नहीं: न ब्राउज़र इंजन, न विंडो सिस्टम, न शेल, न पैकेज मैनेजर, न यूज़र अकाउंट।

एक कंप्यूटर, जिसे और कुछ नहीं करना।

Single Purpose OS क्या है?

एक ऑपरेटिंग सिस्टम, जो एक डिवाइस के एक काम के लिए बना है, न कि कुछ भी चलाने के लिए बनाकर फिर एक चीज़ तक लॉक किया गया। तीन बातें किसी ऑपरेटिंग सिस्टम को एक मक़सद वाला बनाती हैं:

  • एक काम के लिए बना। इसकी इमेज में एप्लिकेशन, वे ड्राइवर जिन्हें वह एप्लिकेशन इस्तेमाल करता है, और कर्नेल होते हैं, और कुछ नहीं: न ब्राउज़र, न डेस्कटॉप, न शेल, न पैकेज मैनेजर, न यूज़र अकाउंट।
  • भीतर से सील। हर हिस्सा अपने अलग कम्पार्टमेंट में चलता है और सिर्फ़ उसी तक पहुँचता है जो उसे दिया गया है, इसलिए एक हिस्से की खराबी को वहीं रुके रहने के लिए डिज़ाइन किया गया है।
  • अपना हिसाब दिखाता है। इसके साथ सबूत आता है कि भीतर क्या है और हर हिस्सा क्या कर सकता है: हर ग्रांट दर्ज, हर कंपोनेंट सूचीबद्ध, और ऐसी जाँचें जिन्हें कोई भी चला सकता है।

Single Purpose OS कियोस्क मोड नहीं है, जो किसी जनरल-पर्पज़ सिस्टम को एक ऐप तक लॉक करता है और बाकी सब जस का तस छोड़ देता है, और न ही यह सिंगल-यूज़र OS है, जो यह सीमित करता है कि कंप्यूटर कौन इस्तेमाल करे, न कि यह कि उसमें क्या है। NoWayOS एक Single Purpose OS है: एक कंप्यूटर, जिसे और कुछ नहीं करना।

इसका नाम NoWayOS क्यों है?

क्योंकि जो कभी बनाया ही नहीं गया, उसे एक्सप्लॉइट करने का कोई रास्ता (no way) नहीं। यह नाम इस बारे में है कि डिवाइस से क्या बाहर छोड़ा गया है, यह वादा नहीं कि जो भीतर बचा है उसमें कभी कुछ ग़लत नहीं हो सकता। जो भीतर बना है, उसमें अब भी बग हो सकते हैं; दावे ये हैं कि वह बहुत कम है, और कि एक बग अपने कम्पार्टमेंट में ही रहता है।

Linux, Windows या किसी टैबलेट को ही लॉक डाउन क्यों न कर दें?

लॉक डाउन करने का मतलब है कॉन्फ़िगरेशन से सुरक्षित बनाना: ब्राउज़र, डेस्कटॉप और शेल सेटिंग्स के पीछे अब भी मौजूद हैं, उन्हें अब भी पैच करना पड़ता है, और एक बग एक ही झटके में हर सेटिंग को दरकिनार कर सकता है। NoWayOS बनावट से सुरक्षित है: वे हिस्से डिवाइस में कभी बनाए ही नहीं गए, और जो बचता है वह सील किए गए कम्पार्टमेंट में चलता है, इसलिए एक हिस्से की खराबी को उसी हिस्से में रुके रहने के लिए डिज़ाइन किया गया है।

क्या यह प्रोडक्शन के लिए तैयार है?

नहीं। NoWayOS अभी विकास के दौर में है, और सभी API अस्थायी हैं और इनमें बदलाव होंगे। पचास से ज़्यादा सिस्टम QEMU में बूट होते हैं और खुद को जाँचते हैं, और यूज़र इंटरफ़ेस, USB कीबोर्ड और माउस, टाइमर, वॉचडॉग और सुपरवाइज़र Raspberry Pi 5 पर चलते हैं। सिक्योर बूट, डिवाइस पर लागू होने वाले साइन किए गए अपडेट और प्रोडक्शन हार्डवेयर अभी आने बाकी हैं।

क्या यह ओपन सोर्स है?

हाँ। NoWayOS, Showcase और Defence Agent आपकी पसंद से MIT OR Apache-2.0 के तहत हैं, और Screen Compiler MIT के तहत है। चारों GitHub पर NoWayOS संगठन में सार्वजनिक हैं: आप इन्हें क्लोन कर सकते हैं, बिल्ड कर सकते हैं और issue खोल सकते हैं।

सुरक्षा और प्रूफ़

क्या NoWayOS “फ़ॉर्मली वेरिफ़ाइड” है?

नहीं, और हम सावधान रहते हैं कि ऐसा कोई संकेत भी न दें। NoWayOS seL4 पर चलता है, जिसके पास इसके हार्डवेयर पर विशिष्ट कॉन्फ़िगरेशन के लिए शुद्धता और सुरक्षा के मशीन-जाँचे प्रूफ़ हैं। NoWayOS seL4 का मिक्स्ड-क्रिटिकैलिटी कॉन्फ़िगरेशन इस्तेमाल करता है, जिसके AArch64 प्रूफ़ पर काम जारी है, इसलिए आज कोई भी NoWayOS इमेज seL4 के पूरे हो चुके प्रूफ़ के दायरे में नहीं है। NoWayOS का अपना कोड seL4 के प्रूफ़ के दायरे में बिल्कुल नहीं आता; यह Rust, आइसोलेशन, टेस्टिंग और अपने खुद के बाउंडेड प्रूफ़ पर निर्भर करता है। हर इमेज अपना सटीक seL4 कॉन्फ़िगरेशन दर्ज करती है (सुरक्षा)।

अगर कोई भी कोड पढ़ सकता है, तो क्या यह कम सुरक्षित नहीं है?

नहीं। NoWayOS की सुरक्षा उसके डिज़ाइन से आती है, गोपनीयता से नहीं: क्या बाहर छोड़ा गया है, और जो भीतर है उसके चारों ओर के कम्पार्टमेंट। खुला होने से कोई भी दावों को जाँच सकता है, सबूत खुद चलाकर देख सकता है और जो मिले उसकी रिपोर्ट कर सकता है।

जब कोई सुरक्षा खामी मिलती है, तो क्या होता है?

उसे उसी कम्पार्टमेंट में रुके रहने के लिए डिज़ाइन किया गया है जिसमें वह है, जिससे सुधार तैयार होने तक नुकसान सीमित रहता है, और बहुत कम कोड होने से सुधारने के लिए भी बहुत कम चीज़ें होती हैं। सुधार ऐसे साइन किए गए अपडेट के रूप में आने हैं, जो गड़बड़ी होने पर सुरक्षित रूप से पिछली स्थिति पर लौट सकें: यह डिज़ाइन किया गया है, अभी बनाया नहीं गया। किसी खामी की रिपोर्ट करने के लिए, कृपया निजी तौर पर लिखें, जैसा कि हर रिपॉज़िटरी की SECURITY.md बताती है, किसी सार्वजनिक इशू में नहीं।

इस्तेमाल

क्या यह हमारा मौजूदा एप्लिकेशन चला सकता है?

अपने मौजूदा रूप में नहीं। NoWayOS उन्हीं एप्लिकेशन को चलाता है जो इसके लिए Rust में लिखे गए हैं; यह Linux या Windows प्रोग्राम, या कोई वेब ऐप नहीं चला सकता, क्योंकि उन्हें जो कुछ चाहिए, उसमें से कुछ भी इसके भीतर बना ही नहीं है। स्क्रीन आसान हिस्सा हैं: Screen Compiler के समर्थित सबसेट में लिखी React स्क्रीन बिल्ड के समय नेटिव Rust में बदल जाती हैं। एप्लिकेशन का लॉजिक NoWayOS प्रोटेक्शन डोमेन के रूप में दोबारा बनाया जाता है।

क्या इसमें वेब ब्राउज़र है?

नहीं। असल बात ही यही है। NoWayOS डिवाइस पर न कोई ब्राउज़र इंजन है, न WebView, न JavaScript। स्क्रीन नेटिव Rust में होती हैं, जिन्हें NoWayOS का अपना छोटा यूज़र इंटरफ़ेस ड्रॉ करता है, और उन्हें फिर भी React में डिज़ाइन करके बिल्ड के समय बदला जा सकता है।

यह किस हार्डवेयर पर चलता है?

QEMU की AArch64 मशीन पर, जहाँ हर सिस्टम सबसे पहले बूट होता है, और Raspberry Pi 5 पर, जो कम लागत वाला रेफ़रेंस बोर्ड है। NXP का i.MX8 परिवार इच्छित प्रोडक्शन हार्डवेयर है, हार्डवेयर रूट ऑफ़ ट्रस्ट के साथ; यह अभी समर्थित नहीं है। NoWayOS बिल्ड करने के लिए आपको Podman (या Docker) और make चाहिए: इसे Apple silicon पर विकसित किया जाता है, और x86-64 होस्ट अभी टेस्ट नहीं किए गए हैं।

मैं इसे कैसे आज़माऊँ?

nowayos रिपॉज़िटरी क्लोन करें, एक बार make container चलाएँ, फिर make demo: क्लिक किए जा सकने वाले डेमो का स्क्रिप्टेड सेशन आपकी मशीन पर चलता है, हर फ़्रेम की जाँच के साथ, बिना किसी हार्डवेयर के। इसके बाद make qemu-test SYSTEM=hello QEMU में seL4 बूट करता है। शुरुआत करें पेज आपको पूरी प्रक्रिया से गुज़ारता है।