कर्नेल के अलावा एक ऑपरेटिंग सिस्टम में क्या है


43

जैसा कि मैं इसे समझता हूं, कर्नेल हार्डवेयर के साथ सभी इंटरैक्शन करता है, और मेमोरी, I / O उपकरणों आदि का प्रबंधन करता है, इसलिए कर्नेल सब कुछ कर रहा है, फिर भी यह ऑपरेटिंग सिस्टम का एक हिस्सा है। तो ओएस में और क्या है? बस आने वाले अनुप्रयोग इसके साथ बंडल होते हैं? उदाहरण के लिए, उबंटू के पास कर्नेल के अलावा और क्या है? सूक्ति डेस्कटॉप, और कुछ अन्य अनुप्रयोग?

जवाबों:


54

बेशक, खोल।

मूल रूपक जो हमें पहली बार में इसके लिए "कर्नेल" शब्द मिला, बहुत बार भूल जाता है। रूपक यह है कि एक ऑपरेटिंग सिस्टम एक बीज या एक नट है। बीज का "कर्नेल" ऑपरेटिंग सिस्टम का मूल है, जो अनुप्रयोगों के कार्यक्रमों के लिए ऑपरेटिंग सिस्टम सेवाएं प्रदान करता है, जो कि बीज के "शेल" से घिरा होता है जो कि उपयोगकर्ता बाहर से देखते हैं।

कुछ लोग "कर्नेल" (और, वास्तव में, "शेल") को नीचे से अधिक विशिष्ट होना चाहते हैं। लेकिन वास्तव में ऑपरेटिंग सिस्टम में बहुत भिन्नता है। कम से कम ये विविधताएं एक "शेल" का गठन नहीं करती हैं (जो कि shनेटवेयर के कंसोल कमांड इंटरप्रेटर से ओएस / 2 के वर्कप्लेस शेल और विंडोज एनटी के एक्सप्लोरर के माध्यम से सोलारिस तक हो सकती हैं ), लेकिन इसके ऑपरेटिंग सिस्टम से दूसरे में भी बहुत अधिक विचरण है क्या है, और नहीं है, एक "कर्नेल" का एक हिस्सा (जो डिस्क I / O को शामिल नहीं कर सकता है, उदाहरण के लिए)। यह याद रखना सबसे अच्छा है कि ये शब्द रूपक हैं

अन्य शब्दावली हैं। आईबीएम मेनफ्रेम शब्दावली में, बीज / अखरोट रूपक में "कर्नेल" को नियंत्रण कार्यक्रम कहा जाता है । अन्य नामों में पर्यवेक्षक , मॉनिटर , कोर और कार्यकारी शामिल हैं । कोर एक और काफी स्पष्ट जैविक रूपक है। यह दिलचस्प है कि ऐसा ही एक और नाम है। हार्वे एम। डेइटल, अपने ऑपरेटिंग सिस्टम में , नियंत्रण कार्यक्रम को नाभिक कहते हैं, और कहते हैं

नाभिक आमतौर पर उस कोड के एक छोटे से हिस्से का प्रतिनिधित्व करता है जिसे आमतौर पर संपूर्ण ऑपरेटिंग सिस्टम माना जाता है [...]

शब्द "न्यूक्लियस" लैटिन न्यूक्लियस से आता है , और इसका मतलब है अखरोट का कर्नेल (cf लैटिन नक्स , जिसका अर्थ है "अखरोट")। तो यहां तक ​​कि नियंत्रण कार्यक्रम को "नाभिक" कहना वास्तव में इसी ऑपरेटिंग-सिस्टम-ए-नट के अनुरूप बनाना है। यह एक सादृश्य है जो केवल ऑपरेटिंग सिस्टम से अधिक के लिए उपयोग किया जाता है। यदि आप रसायन विज्ञान से परिचित हैं, उदाहरण के लिए, आपको पता चल जाएगा कि एक परमाणु नाभिक गोले में इलेक्ट्रॉनों से घिरा हुआ है ।

छद्म नाम जो व्यक्ति new123456लिखता है, वह इन रूपकों की उत्पत्ति को इस हद तक भूल जाने के परिणामस्वरूप होने वाली गलतियों से मुक्त करता है कि एक गलती पूरे के लिए हो जाती है और पूरे ऑपरेटिंग सिस्टम के लिए कर्नेल को गलत कर देता है। "यूज़रलैंड" प्रोग्राम होने के कारण शेल को ऑपरेटिंग सिस्टम के बाहर किसी भी तरह से कम नहीं किया जाता है, और न ही इसे कम बनाते हैं जो कर्नेल को घेरता है। इसके अलावा, केवल डॉस-केवल विचार होने से जो संस्करण 7 से परे यूनिक्स पर लागू नहीं होता है, यह विचार यूनिक्स दुनिया में व्यापक और वर्तमान दोनों है।

(यह विडंबना है कि new123456यह एक डॉसिज़्म के लिए गलतियाँ करता है। कर्नेल / शेल रूपक अपने शुरुआती वर्षों में डॉस के लिए काफी विदेशी था, जो सीपी / एम जैसे सीपीसी / एम से पहले, कमांड प्रोसेसर और इसी तरह का पक्ष लेता था, एमएस-डॉस विभाजित था। में बुनियादी डिस्क ऑपरेटिंग सिस्टम (बीडीओ), बुनियादी इनपुट-आउटपुट सिस्टम (BIOS - नहीं प्रणाली फर्मवेयर, नोट), आदेश प्रोसेसर , और गृह व्यवस्था उपयोगिताओं । कोड वास्तव में इस तरह फ़ाइलों में parceled गया था यह एक और है। उदाहरण, वास्तव में, कर्नेल / शेल रूपक वास्तव में कई प्रणालियों में वास्तविक विभाजनों के साथ कवर या पूरी तरह से मेल नहीं खाता है ।)

new123456यह भूल रहा है कि न्यूटैलस के बारे में डीटेल ने जो लिखा है वह समग्र ऑपरेटिंग सिस्टम का एक हिस्सा है। एक ऑपरेटिंग सिस्टम कर्नेल और शेल दोनों हैअर्थात्, आखिर रूपक। डीटेल अकेले भी नहीं है। 1980 के दशक के बाद से यूनिक्स के रूप में यूनिक्स पुस्तकों के बारे में व्याख्या की गई है। मैं अर्बन एंड टिएमैन के टीच योरसेल्फ फ्रीबीएसडी इन 24 घंटे (एसईएम, आईएसबीएन 9780672324246) का सुझाव देता हूं, इस सरल कारण के लिए कि पृष्ठ 54 पर इसका आरेख ऑपरेटिंग-सिस्टम-ए-बीज रूपक को दर्शाता है, और - आश्चर्यजनक रूप से - में से एक है ऐसा करने के लिए कुछ किताबें।

"नाभिक" नाम शायद पुराना नाम है; निश्चित रूप से यूनिक्स की भविष्यवाणी करना, जो कि कर्नेल / शेल शब्दावली का पक्षधर है कि आज - शायद यूनिक्स के लिए कोई छोटा हिस्सा नहीं है - अधिक प्रचलित है। यहाँ उदाहरण के लिए एलन सी। शॉ की 1974 की पुस्तक द लॉजिकल डिज़ाइन ऑफ़ ऑपरेटिंग सिस्टम (प्रेंटिस-हॉल, आईएसबीएन 9780135401125) है:

सिस्टम का वह हिस्सा जो स्थायी रूप से मुख्य भंडारण में रहता है, ऐतिहासिक रूप से नाभिक कहलाता है । नाभिक में आमतौर पर प्रक्रियाओं, संसाधनों और इनपुट-आउटपुट के प्रबंधन के लिए प्राथमिकताओं और प्रक्रियाओं का एक न्यूनतम सेट शामिल होगा।
शॉ का आरेख भी है। ☺


7
मुझे लगता है कि यह एक शानदार जवाब है, केवल इसलिए कि यह मेरे दिमाग में रूपकों "खोल" और "कर्नेल" के बीच संबंध लाया। मैं दोनों को जानता था, मैंने उन्हें कभी नहीं जोड़ा। मैं सवाल का जवाब जानता था लेकिन फिर भी इस जवाब से कुछ सीखने में कामयाब रहा। इसलिए अपवित्र। धन्यवाद!
एंड्रयू जे। Brehm

मुझे यह कहने में संकोच होगा, क्योंकि संस्करण 7 के बाद से UNIX शेल कर्नेल से ही अमूर्त था, और शब्द के हर अर्थ में एक यूजरलैंड प्रोग्राम के बाद से है। हालाँकि, आप जो कहते हैं, वह एक डॉस का सच है (जो एक विशेष रूप से भयानक डिजाइन विकल्प है)।
new123456

अच्छा खेला, सर। हालाँकि, कृपया @मेरे उपयोगकर्ता नाम का उल्लेख करते समय कहीं छोड़ दें ताकि यह मेरी प्रतिक्रिया कतार में पोस्ट हो जाए।
new123456

बहुत सारे दिलचस्प इतिहास के साथ इस तरह के एक व्यापक जवाब होने के कारण (मुझे कंप्यूटर शब्द - या इसके लैटिन व्युत्पत्ति विज्ञान के रूप में नाभिक के बारे में पता नहीं था)। हालाँकि, मुझे लगता है कि यह एक स्टैंड-अलोन उत्तर के रूप में बहुत बेहतर पढ़ेगा यदि यह स्पष्ट रूप से किसी अन्य उपयोगकर्ता (अब हटाए गए) उत्तर को संदर्भित नहीं करता है।
एंथनी जी -

45

ऑपरेटिंग सिस्टम के अन्य हिस्सों में ड्राइवर शामिल हैं जो कर्नेल के साथ बातचीत करते हैं, सहायक प्रोग्राम की कई परतें होती हैं जो उपयोगकर्ता इंटरफ़ेस, नेटवर्किंग और ओएस के अन्य मुख्य भागों से संबंधित होती हैं जो कर्नेल और वास्तविक एप्लिकेशन के बीच बैठते हैं।

एक उदाहरण देने के लिए, मैंने OS X की संरचना दिखाई है , जैसा कि आप कर्नेल (हल्का नीला) के ऊपर देख सकते हैं, आपके सामने "कोर" कार्यक्षमता, सिस्टम टूल्स, सेवाओं और एपीआई (एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस) की कई परतें हैं। यहां तक ​​कि GUI पर जाएं जो आप आमतौर पर वास्तविक अनुप्रयोगों में स्वयं के साथ काम करते हैं।

यहाँ छवि विवरण दर्ज करें

अधिकांश ऑपरेटिंग सिस्टम में एक समान संरचना होती है, लेकिन वास्तव में कर्नेल का कितना हिस्सा है, इस संबंध में मतभेद की व्यापक गुंजाइश है। तुलना के लिए माइक्रोकर्नेल पर विकिपीडिया लेख देखें ।

EDIT - आपकी टिप्पणी का जवाब देने के लिए (मेरी टिप्पणी थोड़ी लंबी है)

आप सिर्फ एक लिनक्स कर्नेल को बूट कर सकते हैं , लेकिन आप वास्तव में बहुत कुछ हासिल नहीं कर पाएंगे, यह उन सभी सहायक अनुप्रयोगों है जो आपके द्वारा देखे और उपयोग किए जाने वाले सभी इंटरफ़ेस प्रदान करते हैं।

एक बार जब कर्नेल को बूट किया जाता है (और हार्डवेयर को इनिशियलाइज़ किया जाता है) यह GNU / Linux ऑपरेटिंग सिस्टम के अन्य हिस्सों को सौंपने का प्रयास करेगा जो शुरुआती सेवाओं के लिए कार्यक्षमता प्रदान करते हैं (जैसे कि UDEV जो /devप्रोग्रामों के उपयोग के लिए कच्चे डिवाइस इंटरफेस के साथ पॉपुलेट करता है जैसे हार्ड ड्राइव और सीरियल पोर्ट वगैरह ) और प्रोग्राम सेट अप करने के लिए नेटवर्क ( dhcpcd ) और API जैसे X.org जैसे कि विंडो और आइकॉन दिखाने में सक्षम हों, हालांकि विंडो मैनेजर जैसे कि GNOME या KDE

लेकिन हां, आप केवल कर्नेल को बूट कर सकते हैं, यह सिर्फ "मैं बूट किया है, अब क्या?" शीघ्र।


तो क्या मैं सिर्फ एक कर्नेल को बूट कर सकता हूं और कोई भी अतिरिक्त सामान जो ओएस आमतौर पर नहीं है?
अंकुरज

सिद्धांत रूप में, मुझे लगता है कि है, लेकिन यह नहीं होता कर यह की चोटी पर अन्य कार्यक्रमों के बिना कुछ भी। छोटे ऑपरेटिंग सिस्टम हैं जो लोगों ने मज़े के लिए बनाए हैं जो एक कर्नेल, शेल के अलावा कुछ नहीं हैं, और शायद एक कंपाइलर या असेंबलर (मुझे लगता है कि लिनक्स ने इस तरह से शुरू किया था, वास्तव में)।
user55325

@AnkurVj मैंने अपने उत्तर में जोड़ा है।
Mokubai

3
मुझे नहीं लगता कि आप सिर्फ लिनक्स कर्नेल को बूट कर सकते हैं। कर्नेल उस बिंदु पर पहुंचता है, जहां इसे init कहते हैं, जिस समय सिस्टम कर्नेल मोड से उपयोगकर्ता मोड में स्विच करता है। यदि init उपलब्ध नहीं है (या एक नकली init, जैसे bash), कर्नेल पैनिक और क्रैश। तो घबराहट से बचने के लिए कुछ init प्रक्रिया चल रही है, जिस बिंदु पर यह वास्तव में सिर्फ कर्नेल नहीं चल रहा है।
जो इंटरनेट

1
आप एक नंगे कर्नेल को बूट कर सकते हैं, लेकिन ओएस के शेष के बिना, उपयोगकर्ता के साथ कोई बातचीत नहीं होगी।
कल्टारी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.