विषय-सूचि
कर्नेल क्या है? (kernel in hindi)
कर्नेल किसी ऑपरेटिंग सिस्टम का कोर पार्ट होता है जो सिस्टम के रिसोर्सेज यानी संसाधनों का प्रबन्धन करता है।
ये कंप्यूटर के एप्लीकेशन और हार्डवेयर के बीच में एक पुल की तरह कार्य करता है। ये स्टार्टअप में लोड होने वाले सबसे पहले प्रोग्राम्स में से एक होता है (बूटलोडर के बाद)।
CPU ऑपरेशन: कर्नेल मोड और यूजर मोड
CPU कुछ ख़ास इंस्ट्रक्शन को तभी लोड कर सकता है जब वो कर्नेल मोड में हों। इन इंस्ट्रक्शन को प्रिविलेज इंस्ट्रक्शन भी कहते हैं।
ये कुछ स्पेशल ऑपरेशन को implement करने की अनुमति देते हैं जो कि यूजर प्रोग्राम द्वारा एक्सीक्यूट किया जाता है और जिसके द्वारा ऑपरेटिंग सिस्टम के फंक्शन और बांकी किसी यूजर प्रोग्राम की एक्टिविटी के साथ इंटरफ़ेस किया जा सकता है। उदाहरण के लिए, मेमोरी कि सुरक्षा का प्रबन्धन करने वाले इंस्ट्रक्शन।
- ऑपरेटिंग सिस्टम जब कर्नेल में एक्सीक्यूट कर रहा होता है तब CPU को कर्नेल मोड में डाल देता है ताकि कर्नेल कुछ ख़ास ऑपरेशन को एक्सीक्यूट कर सके।
- ऑपरेटिंग सिस्टम CPU को यूजर मोड में तब डाटा है जब कोई यूजर प्रोग्राम एक्सीक्यूट हो रहा हो, इसीलिए वो यूजर प्रोग्राम ऑपरेटिंग सिस्टम प्रोग्राम के साथ इंटरफ़ेस नहीं कर सकता।
- User-level instruction does not require special privilege. Example are ADD,PUSH,etc यूजर लेवल के इंस्ट्रक्शन को ख़ास प्रिविलेज की जरूरत नहीं होती। उदाहरण के तौर पर ADD, PUSH इत्यादि।
मोड्स के कांसेप्ट को दो से ज्यादा भी बढाया जा सकता है जिसे लिए एक से ज्यादा सिंगल मोड बिट CPU की जरूरत होगी जो virtualization को सपोर्ट करे और एक अतिरिक्त बिट का प्रयोग ये दिखाने के लिए करे कि VMM यानी वर्चुअल मशीन मेनेजर कब सिस्टम के नियंत्रण में है। एक सामान्य यूजर प्रोग्राम से VMM को ज्यादा प्रिविलेज होता है लेकिन उतना भी नहीं जितना कि एक पूरे कर्नेल को।
सिस्टम कॉल को अधिकतर सॉफ्टवेर इंटरप्ट के रूप में implement किया जाता है जिसके कारण हार्डवेयर का इंटरप्ट हैंडलर कण्ट्रोल को किसी दूसरे इंटरप्ट हैंडलर को ट्रान्सफर कर देता है जो ऑपरेटिंग सिस्टम का ही पार्ट होता है (प्रोसेस में कर्नेल मोड के मोड बिट को स्विच कर के)।
इंटरप्ट हैंडलर इस बात की जांच करता है कि कौन से इंटरप्ट को generate किया गया और अतिरिक्त पैरामीटर की भी जांच करता है (जो कि सामान्यतः रजिस्टर से होकर गुजरता है) और अगर वो सही हो तो वो सही जेर्नेल सर्विस रूटीन को बुलाता है और सिस्टम कॉल द्वारा निवेदित किये गये सर्विस को दे देता है।
यूजर प्रोग्राम अगर इल्लेगल इंस्ट्रक्शन (privileged या ऐसे इंस्ट्रक्शन जो अस्तित्व में नहीं हैं) या हटा दिए गये मेमोरी क्षेत्र को एक्सीक्यूट करने कि कोशिश करता है तब भी सॉफ्टवेर इंटरप्ट generate होता है जिसे इंटरप्ट हैंडलर द्वारा ट्रैप कर लिया जाता है और कण्ट्रोल को ऑपरेटिंग सिस्टम को ट्रान्सफर कर दिया जाता है जो फिर स्थिति के हिसाब से एरर मैसेज दिखाता है और सम्भवतः डाटा कोबाद में विश्लेषण करने के लिए किसी लॉग (कोर) में डंप कर देता है और उस प्रोग्राम को भी रोक देता है।
माइक्रोकर्नेल क्या है? (what is microkernel in os in hindi)
माइक्रोकर्नेल कर्नेल का ही एक क्लासिफिकेशन है। ये एक कर्नेल है इसीलिए ये सभी सिस्टम के संसाधनों का प्रबंधन करता है।
लेकिन माइक्रोकर्नेल में यूजर सर्विस और कर्नेल सर्विस को अलग-अलग एड्रेस स्पेस में implement किया जाता है।
यूजर सर्विसेज को यूजर एड्रेस स्पेस में रखा जाता है जबकि कर्नेल सर्विसेज को केर्नेर एड्रेस स्पेस के अंदर में रखा जाता है। इस से ऑपरेटिंग सिस्टम के कर्नेल का आकार भी घट जाता है।
ये कम से कम प्रोसेस के सर्विसेज और मेमोरी प्रबंधन की सुविधा देता है। क्लाइंट प्रोग्राम या एप्लीकेशन और यूजर एड्रेस में रन हो रहे सर्विसेज के बीच के संचार को मैसेज पक्स्सिंग के द्वारा स्थापित किया जाता है और ऐसा माइक्रोकेर्नेक की गति को घटा कर किया जाता है।
ऑपरेटिंग सिस्टम पर इन सबका कोई असर नहीं पड़ता क्योंकि यूजर सर्विसेज और कर्नेल सर्विसेज अलग-अलग होते हैं। इसी लिए अगर कोई यूजर सर्विस खराब हो जाता है या काम करना बंद कर देता है तब भी कर्नेल सर्विस पर इसका कोई असर नहीं पड़ेगा।
ये माइक्रोकर्नेल के सबसे बड़े फायदों में से भी एक है। ये आसानी से एक्सटेंड भी हो जाता है।
मतलब अगर हमे इसमें कोई नये सर्विस को जोड़ना है तो उसे यूजर एड्रेस स्पेस में जोड़ते हैं और इसीलिए कर्नेल स्पेस में किसी प्रकार से कुछ भी मोदुफ्य करने की जरूरत नहीं पड़ती। ये पोर्टेबल, सुरक्षित और भरोसेमंद यानी reliable भी होता है।
माइक्रोकर्नेल का आर्किटेक्चर (microkernel architecture in hindi)
चूँकि कर्नेल ऑपरेशन का सबसे कोर भाग होता है, इसीलिए इसे केवल महत्वपूर्ण सेविसस को ही हैंडल करने का काम दिया जाता है।
अतः आर्किटेक्चर में केवल सबसे महत्वपूर्ण सर्विसेज को ही कर्नेल के अंदर रखा जाता है और बांकी के ऑपरेटिंग सिस्टम सर्विस सिस्टम एप्लीकेशन प्रोग्राम के भीतर होते हैं।
इसके कारण यूजर जो महत्वपूर्ण नहीं है ऐसे सर्विसेज से भी सिस्टम एप्लीकेशन के अंदर संवाद कर सकते हैं।
और ऑपरेटिंग सिस्टम के सबसे महत्वपूर्ण सर्विसेज के लिए केवल और केवल माइक्रोकर्नेल ही जिम्मेदार होता है। इसके नाम निम्न हैं:
- इंटर-प्रेस कम्युनिकेशन
- मेमोरी मैनेजमेंट
- CPU-शेड्यूलिंग
माइक्रोकर्नेल के फायदे (benefits of microkernel in hindi)
माइक्रोकर्नेल के फायदे निम्नलिखित लिस्ट किये गए हैं:
- इसका आकार छोटा होता है और ये अलग होता है जिसके कारण इसे फंक्शन करने में आसानी होती है।
- सिस्टम को एक्स्पंद करना भी आसान होता है क्योंकि इसे सीधे सिस्टम एप्लीकेशन में बिना कर्नेल को डिस्टर्ब किये जोड़ा जा सकता है।
इस लेख से सम्बंधित यदि आपका कोई भी सवाल या सुझाव है, तो आप उसे नीचे कमेंट में लिख सकते हैं।