Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग · पाठ

कर्नेल स्पेस का परिचय

यूज़र मोड और कर्नेल मोड के बीच के अंतर तथा कर्नेल में उपलब्ध विशेषाधिकारयुक्त ऑपरेशन को समझिए।

पाठ 1, कुल 4 में से11 चरण

कर्नेल स्पेस का परिचय, CoddyKit पर Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

कर्नेल स्पेस में आपका स्वागत है

जब आप कंप्यूटर का उपयोग करते हैं, तो प्रोग्राम अलग-अलग 'मोड' या 'स्पेस' में चलते हैं। ये मोड तय करते हैं कि कोई प्रोग्राम क्या कर सकता है और क्या नहीं।

आज हम कर्नेल स्पेस को समझेंगे, जो आपके ऑपरेटिंग सिस्टम (OS) का सबसे शक्तिशाली और महत्वपूर्ण भाग है। इसे समझना निम्न-स्तरीय प्रोग्रामिंग के लिए आवश्यक है।

यूज़र मोड: सैंडबॉक्स

आप रोज़मर्रा में जिन अधिकांश अनुप्रयोगों का उपयोग करते हैं—ब्राउज़र, गेम और शब्द संसाधक—वे यूज़र मोड (जिसे यूज़र स्पेस भी कहा जाता है) में चलते हैं।

  • सीमित पहुँच: यूज़र मोड के प्रोग्रामों की हार्डवेयर और महत्वपूर्ण मेमोरी तक पहुँच प्रतिबंधित होती है।
  • सुरक्षा सर्वोपरि: यह अलगाव किसी खराब अनुप्रयोग को पूरे सिस्टम को क्रैश करने से रोकता है।
  • अप्रत्यक्ष अंतःक्रिया: फ़ाइल पढ़ने या नेटवर्क तक पहुँचने जैसे संवेदनशील कार्यों के लिए अनुप्रयोगों को OS से अनुरोध करना पड़ता है।

कर्नेल मोड: मुख्य नियंत्रण

इसके विपरीत, कर्नेल मोड (या कर्नेल स्पेस) वह स्थान है जहाँ ऑपरेटिंग सिस्टम का मूल भाग मौजूद रहता है। यह आपके कंप्यूटर का 'मुख्य नियंत्रण' है।

  • पूर्ण पहुँच: कर्नेल मोड में चल रहे कोड को सभी हार्डवेयर, मेमोरी और CPU निर्देशों तक अप्रतिबंधित पहुँच होती है।
  • महत्वपूर्ण कार्य: इसमें प्रक्रियाओं का प्रबंधन, मेमोरी संभालना, उपकरणों (ड्राइवरों) के साथ अंतःक्रिया करना और इंटरप्ट का उत्तर देना शामिल है।
  • उच्च विशेषाधिकार: यह सबसे अधिक विशेषाधिकार वाला निष्पादन स्तर है।

सुरक्षा रिंग: एक सुरक्षा मॉडल

x86 आर्किटेक्चर इन विशेषाधिकार स्तरों को लागू करने के लिए सुरक्षा रिंग का उपयोग करता है। इन्हें संकेंद्रित वृत्तों की तरह समझें, जिनके केंद्र में मौजूद रिंग 0 को सबसे अधिक विशेषाधिकार प्राप्त हैं।

सबसे सामान्य रिंग ये हैं:

  • रिंग 0: कर्नेल मोड (उच्चतम विशेषाधिकार)
  • रिंग 1 और 2: आधुनिक OS में अक्सर उपयोग नहीं की जातीं
  • रिंग 3: यूज़र मोड (सबसे कम विशेषाधिकार)

रिंग 3: प्रतिबंधित पहुँच

जब आपका प्रोग्राम रिंग 3 (यूज़र मोड) में चलता है, तो वह एक 'सैंडबॉक्स' के भीतर काम करता है। वह ऐसे निर्देशों को सीधे निष्पादित नहीं कर सकता जो सिस्टम को नुकसान पहुँचा सकते हों या सुरक्षित संसाधनों तक पहुँच दे सकते हों।

उदाहरण के लिए, कोई यूज़र प्रोग्राम मनमाने भौतिक मेमोरी पतों पर सीधे लिख नहीं सकता और न ही किसी हार्डवेयर उपकरण को कॉन्फ़िगर कर सकता है।

रिंग 0: अप्रतिबंधित शक्ति

रिंग 0 (कर्नेल मोड) में निष्पादित होने वाले कोड का सिस्टम पर पूरा नियंत्रण होता है। इसमें शामिल हैं:

  • CPU रजिस्टरों और मेमोरी प्रबंधन इकाइयों तक सीधी पहुँच।
  • इंटरप्ट को सक्षम या अक्षम करने की क्षमता।
  • हार्डवेयर I/O पोर्ट पर सीधा नियंत्रण।
  • उपकरण ड्राइवरों को लोड और अनलोड करना।

इस शक्ति के कारण, कर्नेल मोड की कोई त्रुटि पूरे OS को क्रैश कर सकती है, जिससे Windows में 'ब्लू स्क्रीन ऑफ डेथ' या Linux में 'कर्नेल पैनिक' हो सकता है।

मोड के बीच संक्रमण: सिस्टम कॉल

तो यूज़र मोड में चलने वाला प्रोग्राम किसी विशेषाधिकार वाले कार्य, जैसे फ़ाइल खोलना, कर्नेल से कैसे करवाता है?

वह सिस्टम कॉल (syscall) का उपयोग करता है। syscall एक विशेष तंत्र है, जो किसी यूज़र प्रोग्राम को ऑपरेटिंग सिस्टम के कर्नेल से सेवा का अनुरोध करने देता है।

CPU रिंग 3 से रिंग 0 में जाता है, कर्नेल अनुरोधित कार्य करता है और फिर CPU रिंग 3 में लौट आता है, जिससे नियंत्रण वापस यूज़र प्रोग्राम को मिल जाता है।

दो मोड क्यों? सुरक्षा और स्थिरता

आधुनिक ऑपरेटिंग सिस्टम के लिए यूज़र और कर्नेल मोड का अलगाव इन कारणों से मूलभूत है:

  • सुरक्षा: यह दुर्भावनापूर्ण यूज़र प्रोग्रामों को पूर्ण नियंत्रण प्राप्त करने से रोकता है।
  • स्थिरता: यह यूज़र अनुप्रयोगों को एक-दूसरे से और मूल OS से अलग रखता है। किसी एक अनुप्रयोग का क्रैश पूरे सिस्टम को बंद नहीं करेगा।
  • संसाधन प्रबंधन: इससे OS कई अनुप्रयोगों के बीच संसाधनों का उचित और सुरक्षित ढंग से प्रबंधन तथा आवंटन कर सकता है।

विशेषाधिकार का चित्रण (अवधारणात्मक)

यहाँ असेंबली कोड का एक अवधारणात्मक अंश दिया गया है। यदि यूज़र मोड का कोई प्रोग्राम कर्नेल मोड के लिए आरक्षित निर्देश को निष्पादित करने का प्रयास करे, जैसे नई ग्लोबल डिस्क्रिप्टर टेबल (GDT) लोड करना, तो सुरक्षा त्रुटि उत्पन्न होगी।

यह कोड केवल समझाने के लिए है; विशेषाधिकार संबंधी प्रतिबंधों के कारण यह यूज़र मोड में सफलतापूर्वक नहीं चलेगा।

  ; Example: Attempting a privileged instruction from user mode
  ; (This would cause a General Protection Fault in user mode)
  
  mov ax, KERNEL_DATA_SELECTOR ; Try to load a kernel segment
  mov ds, ax
  
  ; Or try to load a new GDT (LGDT is a privileged instruction)
  ; lgdt [gdt_ptr] 

त्वरित जाँच

यूज़र मोड और कर्नेल मोड के बारे में निम्नलिखित में से कौन-सा कथन TRUE है?

पुनरावलोकन: यूज़र बनाम कर्नेल

अब आपने यूज़र मोड और कर्नेल मोड के बीच का मूलभूत अंतर सीख लिया है!

  • यूज़र मोड (रिंग 3) अनुप्रयोगों के लिए होता है और सिस्टम की स्थिरता सुनिश्चित करने के लिए इसकी पहुँच सीमित होती है।
  • कर्नेल मोड (रिंग 0) OS के मूल भाग के लिए होता है और इसे पूरे सिस्टम तक पहुँच प्राप्त होती है।
  • सुरक्षा रिंग इन विशेषाधिकार स्तरों को लागू करती हैं।
  • सिस्टम कॉल यूज़र मोड द्वारा कर्नेल से विशेषाधिकार वाले कार्यों का अनुरोध करने का माध्यम हैं।

यह अलगाव आधुनिक ऑपरेटिंग सिस्टम की सुरक्षा और स्थिरता के लिए अत्यंत महत्वपूर्ण है।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Assembly सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “कर्नेल स्पेस का परिचय” पाठ निःशुल्क है?

हाँ—“कर्नेल स्पेस का परिचय” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“कर्नेल स्पेस का परिचय” में मैं क्या सीखूँगा?

यूज़र मोड और कर्नेल मोड के बीच के अंतर तथा कर्नेल में उपलब्ध विशेषाधिकारयुक्त ऑपरेशन को समझिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“कर्नेल स्पेस का परिचय” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. कर्नेल स्पेस का परिचय
  2. सरल डिवाइस ड्राइवर लिखना
  3. हार्डवेयर के साथ सीधे इंटरफेस करना
  4. कर्नेल स्पेस में सिंक्रोनाइज़ेशन और समवर्तीता
← Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग पर वापस जाएँ