कर्नेल निर्माण नोट्स 🧠

(RTT‑जानकारी यंत्रण, कर्नेल पुनर्लेखन नहीं)

NawderOS नहीं बदलता Linux कर्नेल।
यह इसे हल्का सा यंत्रित करता है।

यह दस्तावेज़ बताता है कि RTT‑संगत हुक कहाँ हैं, वे क्या अवलोकन करते हैं, और वे जानबूझकर क्या नहीं करते

यदि आप एक कस्टम Linux कर्नेल बना सकते हैं, तो आप NawderOS बना सकते हैं 🙂


डिज़ाइन दर्शन#

कोड को छूने से पहले, कुछ मूल नियम:

  • हम देखते हैं, हम नियंत्रण नहीं करते
  • हम संकेत भेजते हैं, हम नीति लागू नहीं करते
  • हम लॉजिक की तुलना में ट्रेसपॉइंट्स को प्राथमिकता देते हैं
  • हम पैच को छोटा और पढ़ने योग्य रखते हैं

RTT समय के साथ सामंजस्य के बारे में है — न कि कर्नेल में चालाक व्यवहार जोड़ने के बारे में।


समर्थित कर्नेल आधार#

NawderOS वर्तमान में लक्षित करता है:

  • Linux 6.x (LTS प्राथमिकता)
  • वेनिला कर्नेल स्रोत
  • कोई आउट-ऑफ-ट्री निर्भरताएँ आवश्यक नहीं हैं

यदि आप एक स्टॉक कर्नेल बना सकते हैं, तो आप पहले से ही 90% वहाँ हैं।


NawderOS कहाँ जुड़ता है 🔧#

NawderOS केवल कुछ रणनीतिक स्थानों को छूता है:

1️⃣ बूट पथ (init/)#

उद्देश्य: सब्सट्रेट संरेखण जांच

  • कर्नेल संस्करण, कॉन्फ़िग हैश, और बूट पैरामीटर कैप्चर करें
  • एक SUBSTRATE_BASELINE बैज जारी करें
  • कोई शाखा नहीं, कोई विफलता पथ नहीं

🙂 यह उत्तर देता है: “हमने वास्तव में क्या बूट किया?”


2️⃣ शेड्यूलर सीमाएँ (kernel/sched/)#

उद्देश्य: संदर्भ संक्रमणों पर जांच लपेटें

  • कार्य स्विच पर नज़र रखें
  • न्यूनतम मेटाडेटा (PID, स्थिति, टाइमस्टैम्प) कैप्चर करें
  • केवल विसंगतियों पर WRAP_CHECK बैज जारी करें

🙂 हमें परवाह नहीं है कि कौन चलाता है — हमें परवाह है कि संक्रमण कब भटकते हैं।


3️⃣ मेमोरी एक्सेस सीमाएँ (mm/)#

उद्देश्य: मान्यता गलियारे अवलोकन

  • मौजूदा दोष या सीमा तर्क में हुक करें
  • घोषित गलियारों के बाहर पहुँच का पता लगाएँ
  • CORRIDOR_BREACH बैज जारी करें

🙂 यह मेमोरी सुरक्षा नहीं है — यह मेमोरी जागरूकता है।


4️⃣ मॉड्यूल जीवनचक्र (kernel/module/)#

उद्देश्य: सब्स्ट्रेट ड्रिफ्ट पहचान

  • मॉड्यूल लोड/अनलोड पर नज़र रखें
  • घोषित अपेक्षाओं के खिलाफ तुलना करें
  • यदि असंगत हो तो SUBSTRATE_DRIFT बैज जारी करें

🙂 “क्या सिस्टम हमारे पैरों के नीचे बदल गया?”


बैज कैसे जारी किए जाते हैं 🏷️#

बैज घटनाएँ हैं, लॉग नहीं।

प्रारंभिक कार्यान्वयन में उपयोग किया जा सकता है:

  • trace_printk
  • ट्रेसपॉइंट्स
  • या एक साधारण रिंग बफर

बाद के संस्करणों में निम्नलिखित का खुलासा हो सकता है:

  • /proc/nawderian
  • tracefs एकीकरण
  • उपयोगकर्ता स्थान संग्रहकर्ता

बैज उत्सर्जन नियम#

  • केवल जोड़ें
  • कोई अवरोध नहीं
  • कोई साइड इफेक्ट नहीं
  • कोई नीति निर्णय नहीं

यदि बैज का उत्सर्जन प्रणाली को क्रैश कर सकता है, उसे उत्सर्जित न करें 😄


NawderOS क्या नहीं करता है ❌#

चीजों को सामान्य रखने के लिए:

  • कोई syscall इंटरसेप्शन नहीं
  • कोई शेड्यूलर संशोधन नहीं
  • कोई मेमोरी आवंटन परिवर्तन नहीं
  • कोई सुरक्षा प्रवर्तन नहीं
  • कोई प्रदर्शन ट्यूनिंग नहीं

यह उपकरण है, हस्तक्षेप नहीं.


न्यूनतम पैच रणनीति 🧩#

एक अच्छा NawderOS कर्नेल पैच होना चाहिए:

  • जितनी कम फाइलों को छुएं
  • एक बार में पढ़ने योग्य हो
  • कर्नेल को तोड़े बिना हटाया जा सके
  • RTT बंद होने पर साफ-सुथरा संकलित हो

यदि आपका पैच "चतुर" लगता है, तो यह शायद बहुत अधिक है।


निर्माण चरण (उच्च स्तर)#

  1. वेनिला लिनक्स कर्नेल को क्लोन करें
  2. NawderOS पैच सेट लागू करें
  3. .config में RTT ध्वज सक्षम करें
  4. कर्नेल को सामान्य रूप से बनाएं
  5. बूट करें और बैज आउटपुट देखें

विस्तृत कमांड INSTALLATION.md में हैं।


डिबगिंग और सुरक्षा 🛟#

यदि कुछ गलत होता है:

  • कॉन्फ़िग के माध्यम से RTT हुक को अक्षम करें
  • कर्नेल को पुनर्निर्माण करें
  • स्वच्छ बूट करें

NawderOS कभी भी सिस्टम को बूट करने से नहीं रोकेगा।


यह क्यों महत्वपूर्ण है#

RTT तब वास्तविकता बनता है जब:

  • धारणाएँ स्पष्ट होती हैं
  • ड्रिफ्ट देखी जा सकती है
  • संगति पर चर्चा की जा सकती है बिना अनुमान के

यह कर्नेल परत कुछ भी हल नहीं करती।
यह आपको दिखने देती है कि क्या हो रहा है।

और देखना पहला कदम है 🙂