एक अखंड कर्नेल एक कर्नेल है जहां सभी सेवाएं (फाइल सिस्टम, वीएफएस, डिवाइस ड्राइवर, आदि) और साथ ही कोर कार्यक्षमता (शेड्यूलिंग, मेमोरी आवंटन, आदि) एक समान स्थान साझा करने वाला एक तंग बुना हुआ समूह है। यह सीधे तौर पर माइक्रो कर्नेल का विरोध करता है ।
एक माइक्रोकर्नल एक दृष्टिकोण को प्राथमिकता देता है जहां कोर कार्यक्षमता को सिस्टम सेवाओं और डिवाइस ड्राइवरों (जो मूल रूप से सिर्फ सिस्टम सेवाएं हैं) से अलग किया जाता है। उदाहरण के लिए, VFS (वर्चुअल फाइल सिस्टम) और ब्लॉक डिवाइस फाइल सिस्टम (यानी मिनिक्सफ्स) अलग-अलग प्रक्रियाएं हैं जो कर्नेल के स्थान के बाहर चलती हैं, कर्नेल, अन्य सेवाओं और उपयोगकर्ता प्रक्रियाओं के साथ संचार करने के लिए IPC का उपयोग करती हैं। संक्षेप में, यदि यह लिनक्स में एक मॉड्यूल है , तो यह एक माइक्रोकर्नेल में एक सेवा है, जो एक पृथक प्रक्रिया को दर्शाता है।
मॉड्यूलर कर्नेल शब्द को भ्रमित करने के लिए कुछ भी नहीं है, बल्कि अखंड। कुछ अखंड गुठली को मॉड्यूलर (जैसे लिनक्स) होने के लिए संकलित किया जा सकता है, क्या मायने रखता है कि मॉड्यूल को उसी स्थान से डाला जाता है और उसी स्थान से चलता है जो कोर कार्यक्षमता (कर्नेल स्थान) को संभालता है।
माइक्रो कर्नेल के लिए लाभ यह है कि किसी भी विफल सेवा को आसानी से फिर से शुरू किया जा सकता है, उदाहरण के लिए, रूट फाइल सिस्टम एबॉर्ट फेंकता है तो कोई कर्नेल रुकावट नहीं है। यह एक नुकसान के रूप में भी देखा जा सकता है, हालांकि, क्योंकि यह बहुत महत्वपूर्ण कीड़े छिपा सकता है (या उन्हें ऐसा करने के लिए नहीं-महत्वपूर्ण लगता है, क्योंकि समस्या लगातार खुद को ठीक करने लगती है)। इसे उन परिदृश्यों में एक बड़े लाभ के रूप में देखा जाता है जहाँ आप आसानी से किसी चीज़ को ठीक से ठीक नहीं कर सकते हैं क्योंकि इसे तैनात किया गया है।
एक माइक्रोकर्नल का नुकसान यह है कि एसिंक्रोनस आईपीसी संदेश डिबग करना बहुत मुश्किल हो सकता है, खासकर अगर फाइब्रिल लागू हो। इसके अतिरिक्त, एफएस / राइट इश्यू को ट्रैक करने का अर्थ है कि उपयोगकर्ता अंतरिक्ष प्रक्रिया, ब्लॉक डिवाइस सेवा, वीएफएस सेवा, फाइल सिस्टम सेवा और (संभवतः) पीसीआई सेवा की जांच करना। यदि आपको उस पर एक रिक्त मिलता है, तो आईपीसी सेवा को देखने का समय। एक अखंड कर्नेल में यह अक्सर आसान होता है। GNU हर्ड इन डिबगिंग समस्याओं ( संदर्भ ) से पीड़ित है । जटिल संदेश कतारों से निपटने के दौरान मैं चेकपॉइंटिंग में जाने वाला नहीं हूं। Microkernels दिल के बेहोश के लिए नहीं हैं।
एक काम करने के लिए सबसे छोटा रास्ता, स्थिर कर्नेल अखंड दृष्टिकोण है। या तो दृष्टिकोण एक POSIX इंटरफ़ेस की पेशकश कर सकता है, जहां कर्नेल का डिज़ाइन किसी के लिए थोड़े रुचि का हो जाता है, जो किसी दिए गए डिज़ाइन पर चलने के लिए कोड लिखना चाहते हैं।
मैं उत्पादन में लिनक्स (अखंड) का उपयोग करता हूं। हालांकि, कर्नेल विकास के साथ मेरी अधिकांश शिक्षा, हैकिंग या टिंकरिंग एक माइक्रोकर्नल, विशेष रूप से हेलेनओएस में जाती है ।
संपादित करें
अगर आपको मेरे बहुत लंबे-चौड़े उत्तर के माध्यम से यह पता चला है, तो आपको ' कर्नेल डिज़ाइन पर ग्रेट टॉर्वाल्ड्स-टेनबाम डिबेट ' पढ़ने में शायद कुछ मज़ा आएगा । यह 2013 में पढ़ने के लिए भी मजेदार है, इसके ट्रांसपायर होने के 20 साल बाद। अंतिम संदेशों में सबसे मजेदार हिस्सा लिनुस का हस्ताक्षर था:
Linus "my first, and hopefully last flamefest" Torvalds
जाहिर है, यह तेनबाम की भविष्यवाणी से ज्यादा सच नहीं था कि x86 जल्द ही अप्रचलित हो जाएगा।
ध्यान दें:
जब मैं "मिनिक्स" कहता हूं, तो मैं मिनिक्स 3 का अर्थ नहीं करता हूं। इसके अलावा, जब मैंने एचयूआरडी का उल्लेख किया है, तो मैं मच माइक्रोकर्नल का संदर्भ दे रहा हूं। दूसरों के हालिया काम को नापसंद करना मेरा उद्देश्य नहीं है।