छोटे जवाब:
- नहीं, यह एक प्रक्रिया नहीं है
- उपयोगकर्ता थ्रेड्स जड़ में नहीं हैं।
Init सिर्फ पहली प्रक्रिया है; यह किसी भी प्रॉसेस या थ्रेड का प्रबंधन नहीं करता है। यह कुछ बनाता है, कर्नेल syscalls कांटा () और निष्पादन का उपयोग कर।
मुझे लगता है कि आपके पास एक प्रक्रिया क्या है, इसका मैला विचार है। यह कोड निष्पादित करने का एक सा मतलब नहीं है। हाँ, कर्नेल init से पहले निष्पादित होता है (और इससे पहले भी बूट लोडर)। लेकिन 'प्रक्रिया' की एक विशिष्ट परिभाषा है:
- उपयोगकर्ता अंतरिक्ष में चलाता है
- एक प्रक्रिया आईडी के साथ चलाता है
- कर्नेल के माध्यम से जाने के लिए कई इंटरैक्शन की आवश्यकता होती है
- सभी संसाधनों को कर्नेल से आने की आवश्यकता है
- कर्नेल द्वारा निर्धारित करने की आवश्यकता है
इसलिए, जब एक बार कर्नेल इनिशियलाइज़ हो जाता है, तो यह init चलाता है, जो इसके विन्यास के बाद जो भी अन्य प्रक्रियाएँ कहती हैं, उन्हें जन्म देती है।
जहाँ तक # 2 जाता है, कर्नेल में सभी कर्नेल सामग्री अच्छी तरह से है। कोड के एक बड़े क्षेत्र के रूप में कर्नेल के बारे में सोचें। फिर, एक प्रक्रिया नहीं है, लेकिन एक बड़ा कोड बूँद। कर्नेल के कुछ हिस्से मेमोरी मैनेजमेंट के साथ आते हैं, इसके कुछ हिस्से शेड्यूलिंग भागों (जैसे ड्राइवर, आदि), और शेड्यूलिंग प्रक्रियाओं के साथ होते हैं।