एक ऑपरेटिंग सिस्टम, जहाँ अधिकार रखा जाता है, मान नहीं लिया जाता
लगभग हर सेंध एक ही तरह लगती है: कोई प्रोग्राम उस चीज़ तक पहुँच जाता है जिसे उसे छूना ही नहीं था। ParanoidBSD ऐसा ऑपरेटिंग सिस्टम है जो यह होने ही नहीं देता। हर प्रोग्राम को सिर्फ़ उतना थमाया जाता है जितनी उसे ज़रूरत है, और बाक़ी सब महज़ मना नहीं है — वह पहुँच से ही बाहर है। HardenedBSD पर बना, आधुनिक C++ में दोबारा लिखा गया, और मूल कोड साथ रखा गया है ताकि हर बदलाव उससे मिलाकर जाँचा जा सके।
यह क्या है, एक मिनट में
कोई संगठन जो कुछ चलाता है, उस सबके नीचे एक ऑपरेटिंग सिस्टम बैठा होता है। ज़्यादातर दशकों पुराने कोड पर बने हैं, और वे किसी भी प्रोग्राम को कुछ भी माँगने देते हैं — इजाज़त देनी है या नहीं, यह सिस्टम बाद में तय करता है। यही वजह है कि किसी हानिरहित चीज़ की एक ख़ामी, जैसे स्क्रीन पर फ़ॉन्ट बनाने वाला कोड, पासवर्ड चोरी पर जाकर ख़त्म हो सकती है।
ParanoidBSD यह बदल देता है कि कोई प्रोग्राम शुरू में माँग ही क्या सकता है। माँग के बाद इजाज़त जाँचने के बजाय, वह हर प्रोग्राम को उन चीज़ों की एक छोटी सूची थमा देता है जिन्हें वह छू सकता है, और बाक़ी किसी का नाम लेने का रास्ता ही नहीं देता। एक हिस्से की ख़ामी बाक़ी सब तक पहुँचने का रास्ता नहीं रह जाती।
रक्षा और सरकारी आपूर्तिकर्ता, जिनसे अब ज़्यादा सुरक्षित भाषाओं में लिखा सॉफ़्टवेयर माँगा जा रहा है। वे उपकरण जो सालों मैदान में लगे रहते हैं और जिन्हें जल्दी पैच नहीं किया जा सकता — कारख़ाने के कंट्रोलर, चिकित्सा मशीनें, बिजली-पानी का हार्डवेयर। वे शिक्षक और शोधकर्ता जिन्हें ऐसा असली ऑपरेटिंग सिस्टम चाहिए जो शुरू से आख़िर तक पढ़ा जा सके।
परिवेशी अधिकार वह बग है जिसे आप पैच नहीं कर सकते
किसी पारंपरिक Unix पर, किसी प्रोसेस के पास होता नहीं है वह हक़ जिससे वह खोल सके
/etc/master.passwd। वह बस माँगता है, और कर्नेल बाद में तय करता है, इस आधार पर कि प्रोसेस ख़ुद को कौन बताता है। हर प्रोसेस सिस्टम के हर संसाधन का नाम ले सकता है। नामस्थान वैश्विक और परिवेशी है; जाँच देर से आई एक सोच भर है।
यही वजह है कि किसी फ़ॉन्ट रेंडरर में पार्सिंग का एक अकेला बग क्रेडेंशियल चोरी बन सकता है। रेंडरर को पासवर्ड फ़ाइल की कभी ज़रूरत नहीं थी — पर संरचना में ऐसा कुछ नहीं था जो उसे माँगने से रोकता।
HardenedBSD यहाँ पहले से गंभीर काम करता है: पता-स्थान विन्यास यादृच्छिकीकरण (ASLR), जो प्रोग्राम को हर बार कहीं और लोड करता है ताकि हमलावर अंदाज़ा न लगा सके कि कौन-सी चीज़ कहाँ है; नियंत्रण-प्रवाह अखंडता (CFI), जो प्रोग्राम को ऐसे कोड की ओर मोड़े जाने से रोकती है जिसे चलाने के लिए वह बना ही नहीं था; और इनके साथ PaX से निकले बचाव, SafeStack तथा कठोर किए गए मेमोरी आवंटक। PBSD यह सब बनाए रखता है और नीचे पड़े सवाल की शक्ल बदल देता है — “क्या इस प्रोसेस को इजाज़त है?” से “क्या इस प्रोसेस के पास उसका हैंडल है?” तक
एक syscall के दो जवाब
// Ambient authority — the traditional path int fd = open("/etc/master.passwd", O_RDONLY); // kernel walks a global namespace, then // checks uid/gid/MAC after the fact // Handle nucleus — the PBSD path auto f = dir_handle.open("master.passwd", Rights::Read); // there is no global namespace to walk. // no handle, no name, no operation.
फ़र्क़ की एक उदाहरणात्मक शक्ल, न कि उन कॉलों की अक्षरशः सूची जो कोई प्रोग्राम कर्नेल में करता है — यानी उसका अनुप्रयोग प्रोग्रामिंग इंटरफ़ेस, या API। आधिकारिक मॉडल यहाँ है: docs/.
एक syscall को नाभिक से होकर चलाइए
प्रोसेस को कुछ हैंडल दीजिए, उससे कोई काम करवाने के लिए चुनिए, और दोनों अधिकार-मॉडलों के बीच स्विच कीजिए। फ़ैसला और उसकी वजह आपके ब्राउज़र में ही तुरंत निकाले जाते हैं — यह डिज़ाइन का एक शिक्षण मॉडल है, कोई कर्नेल एमुलेटर नहीं।
कैपेबिलिटी नाभिक — रेफ़रेंस मॉनिटर
प्रोसेस कोशिश करता है…
ट्रेस
प्रोसेस के पास मौजूद हैंडल
फ़ैसला
“पहुँच में” यह गिनता है कि मौजूदा मॉडल के तहत यह प्रोसेस गिनाए गए कामों में से कितने कर भी सकता है। परिवेशी अधिकार में पहुँच पहचान से तय होती है; नाभिक में, उन हैंडलों से जो उसके पास सचमुच हैं।
pbsd/; विनिर्देश यहाँ है:
docs/specs/.
चार चरण, और एक मॉडल जो ख़ुद को कभी प्रमाणित नहीं करता
किसी बर्कले सॉफ़्टवेयर डिस्ट्रिब्यूशन (BSD) के यूज़रलैंड और कर्नेल को हाथ से C++23 में पोर्ट करना दस साल का काम है। किसी भाषा मॉडल से फ़ाइलें दोबारा लिखवाकर पोर्ट करना, भरोसेमंद दिखने वाला कचरा बनाने का तेज़ रास्ता है। PBSD इनमें से कुछ भी नहीं करता।
सूची
tools/inventory_c_sources.py और clang_cxx23_port.py हर C फ़ाइल को कठिनाई के हिसाब से अंक देते हैं और नतीजा लिखते हैं c_inventory.csv। दायरे के बारे में कुछ भी अंदाज़े से तय नहीं होता।
नियतात्मक चरण
run_todo_passes.py श्रेणी 0–4 में सुरक्षित यांत्रिक पुनर्लेखन लागू करता है। इसमें कोई मॉडल नहीं आता। कोई चरण जिस चीज़ से इनकार कर दे, उसे ज़बरदस्ती थोपा नहीं जाता, बल्कि दर्ज कर दिया जाता है
refusals.jsonl में।
एजेंट लूप
pbsd.py स्टब और इनकार की गई फ़ाइलों को DeepSeek Flash से भरता है, और ज़रूरत पड़ने पर अधिकतम रीज़निंग प्रयास के साथ Pro तक ले जाता है — तयशुदा तौर पर 48 Flash और 24 Pro वर्कर।
Kickstarter इसी के लिए पैसा जुटा रहा है।
सत्यापन पहरा
कंपाइल, ASan, UBSan, विभेदक निष्पादन, और कंपाइलर के मध्यवर्ती निरूपण (IR) के स्तर पर तुलना। जो फ़ाइल सिर्फ़ कंपाइल होती है वह
असत्यापित है। नाकामियाँ यहाँ जाती हैं:
agent_port_failures.jsonl.
पोर्ट होना बराबरी का दावा है
यह कहना कि कोई फ़ाइल पोर्ट हो गई, यह कहना है कि नई फ़ाइल पुरानी जैसा ही बर्ताव करती है। यह एक दावा है, और दावों को सबूत चाहिए। जो C++23 पुनर्लेखन कंपाइल हो जाता है, वह भरोसेमंद दिखने वाला वायरफ़्रेम है; वह अभी वही डीमन नहीं है।
इसलिए बराबर का चिह्न ही पहरा है। विभेदक निष्पादन दोनों को चलाकर दिखने वाले बर्ताव की तुलना करता है। IR तुलना जाँचती है कि कंपाइलर के लिए दोनों का मतलब एक ही है। जब तक इनमें से कोई एक पास नहीं होता, फ़ाइल माइग्रेशन लॉग में खुली रहती है और प्रगति में नहीं गिनी जाती — चाहे वह कितनी भी पूरी दिखती हो।
वे नियम जिनसे यह रिपॉज़िटरी सचमुच बँधी है
कोई फ़ाइल तब तक पूरी नहीं, जब तक विभेदक या IR सत्यापन पास न हो
ईमानदारी से पोर्ट कीजिए — मूल के बग चुपचाप “ठीक” मत कीजिए
पहले नियतात्मक औज़ार; मॉडल सिर्फ़ बचा हुआ भरते हैं
कर्नेल का C++ फ़्रीस्टैंडिंग है: -fno-exceptions -fno-rtti
docs/specs/KERNEL_CXX_ABI.md में, ताकि कोई योगदानकर्ता बिना अंदाज़ा लगाए बता सके कि कर्नेल के संदर्भ में क्या जायज़ है।
पूरा माने जाने से पहले हर मॉड्यूल को एक उत्पत्ति प्रविष्टि चाहिए
docs/PROVENANCE.md दर्ज करता है कि हर मॉड्यूल कहाँ से आया और किस लाइसेंस के अंतर्गत। यही वह चीज़ है जो नीचे लिखे लाइसेंस के बयान को महज़ इरादा नहीं, बल्कि जाँचने लायक़ बनाती है — आप मॉड्यूल दर मॉड्यूल जाँच सकते हैं कि कौन-सा कोड HardenedBSD से निकला है और कौन-सा नया PBSD का काम है।
दो लाइसेंस, ईमानदारी से अलग किए हुए
PBSD का नया कोड — नाभिक, C++23 मॉड्यूल, औज़ार — Imortek की मानक शर्तों पर दिया जाता है: GNU Affero जनरल पब्लिक लाइसेंस (AGPL-3.0+), जो व्यक्तिगत उपयोग, दान-संस्थाओं, शिक्षा और सालाना 50,000 ऑस्ट्रेलियाई डॉलर (AUD) से कम कमाने वाले संगठनों के लिए मुफ़्त है, और उससे ऊपर श्रेणीबद्ध वाणिज्यिक लाइसेंस।
HardenedBSD से निकला कोड अपने मूल BSD लाइसेंस पर ही रहता है। उसका लाइसेंस बदला नहीं जा सकता और Imortek ऐसा दावा भी नहीं करता। docs/PROVENANCE.md में दर्ज है कि कौन-सा कौन-सा है।
नया PBSD काम
pbsd/, tools/, scripts/, कैपेबिलिटी नाभिक, UDA, BIFROST, कंपोज़िटर और थीम।
HardenedBSD से निकला हुआ
hbsd/ और हर वह पोर्ट की गई फ़ाइल जो उसी तक जाती है। मूल शर्तें, मूल श्रेय।
एक ऑपरेटिंग सिस्टम जिसमें सेंध लगाना ज़्यादा मुश्किल है
ज़्यादातर सेंधें एक ही तरह की ग़लती का फ़ायदा उठाती हैं: कोई प्रोग्राम उस मेमोरी तक पहुँच जाता है जहाँ उसे कभी जाना ही नहीं था। ParanoidBSD एक आज़माए हुए सिस्टम को ऐसी भाषा में दोबारा बनाता है जिसमें वह ग़लती कहीं ज़्यादा मुश्किल है, और हर प्रोग्राम को सिर्फ़ उतनी ही पहुँच देता है जितनी उसे सचमुच चाहिए।
रक्षा और सरकारी आपूर्तिकर्ता
ख़रीदार अब ऐसी भाषाओं में बने सॉफ़्टवेयर पर ज़ोर देने लगे हैं जो हमलों की पूरी-की-पूरी श्रेणियाँ बंद कर देती हैं। शून्य से दोबारा शुरू करने में दस साल लगते हैं। यह उसकी जगह एक आज़माए हुए सिस्टम को पार ले जाता है, और हर बदली गई फ़ाइल का तथा वह बदलाव कैसे जाँचा गया, इसका लिखित रिकॉर्ड रखता है।
ऐसे उपकरण जो सालों तक मैदान में लगे रहते हैं
फ़ैक्टरी के कंट्रोलर, मेडिकल मशीनें, बिजली-पानी का हार्डवेयर। जब कोई ख़ामी निकलती है, तो अक्सर आप यूँ ही अपडेट नहीं भेज सकते। यह इस बात की हद बाँधता है कि घुसपैठिया अंदर आने के बाद कितनी दूर तक जा सकता है, क्योंकि कोई भी प्रोग्राम उससे आगे नहीं पहुँच सकता जो उसे सौंपा गया है।
विश्वविद्यालय और सुरक्षा शोधकर्ता
एक असली ऑपरेटिंग सिस्टम, इतना छोटा कि शुरू से आख़िर तक पढ़ा जा सके, और तुलना के लिए मूल उसके बगल में रखा हुआ। पढ़ाने के लिए और ऐसी चीज़ पर विचार आज़माने के लिए उपयोगी, जो सचमुच चलती है।
पोर्ट उस कंप्यूट पर चलता है जो उसके पास नहीं है
नियतात्मक चरण मुफ़्त हैं। जो एजेंट लूप बचा हुआ हिस्सा भरता है — और जो सत्यापन रन उस पर पहरा देते हैं — वे मुफ़्त नहीं। माँग बस इतनी ही है।