लिनक्स कर्नेल इंजीनियरिंग का एक जटिल टुकड़ा है। बूट-अप से रनलेवल 5 बहु-उपयोगकर्ता मोड तक, लिनक्स कर्नेल प्रोसेसर, मेमोरी, नेटवर्किंग, वीडियो आउटपुट और स्थानीय स्टोरेज सहित पीसी के संसाधनों को प्रारंभ और प्रबंधित करता है। चूंकि कर्नेल इन सभी विभिन्न उपप्रणालीओं और संसाधनों के साथ काम करता है, इसलिए यह विभिन्न उच्च स्तरीय संदेशों को लॉग करता है ताकि सिस्टम प्रशासकों को यह पता चल सके कि यह क्या कर रहा है। इन संदेशों को " dmesg " कमांड का उपयोग करके देखा जा सकता है। समस्या यह है कि कर्नेल से आउटपुट अनियंत्रित आंखों के लिए जटिल और अस्पष्ट लग सकता है। हालांकि, बुनियादी बातों को समझने में थोड़ी मदद के साथ, " dmesg " कमांड सिस्टम एडमिन के टूल-सेट में एक बहुत ही शक्तिशाली टूल बन सकता है।

बूट

कर्नेल संदेशों के बारे में जानने का सबसे तेज़ तरीका बूट प्रक्रिया से पहले कुछ पंक्तियों की जांच करना है। आउटपुट के पहले पृष्ठ को देखने के लिए, निम्न आदेश का उपयोग करें:

 डीएमएसजी | कम से 

प्रोसेसर के लिए "नियंत्रण समूह" की शुरुआत के बारे में पहली तीन पंक्तियों की संभावना है। ये तब तक दिलचस्प नहीं हैं जब तक कि आप एक कर्नेल हैकर नहीं हैं। हालांकि, अगली पंक्ति बहुत महत्वपूर्ण है। यह आपको बताएगा कि लिनक्स कर्नेल का कौन सा संस्करण आप चल रहे हैं।

मेरी टेस्ट मशीन पर आउटपुट पढ़ता है:

 लिनक्स संस्करण 3.13.0-24-जेनेरिक (बिल्डड @ गुलाबैपल) (जीसीसी संस्करण 4.8.2 (उबंटू 4.8.2-19ubuntu1)) # 46-उबंटू एसएमपी थू अप्रैल 10 19:08:14 यूटीसी 2014 (उबंटू 3.13.0- 24.46-जेनेरिक 3.13.9) 

यह मुझे बताता है कि मेरी टेस्ट मशीन लिनक्स कर्नेल 3.13 चला रही है जिसे 10 अप्रैल 2014 को उबंटू द्वारा संकलित किया गया था।

अगले 80 से 100 लाइनें BIOS, CPU और मेमोरी के बारे में सभी निम्न स्तर के विवरण हैं। अगली महत्वपूर्ण पंक्ति सिस्टम मेमोरी का सारांश है। यह हमेशा "मेमोरी:" से शुरू होता है। मेरी टेस्ट मशीन पर, आउटपुट है:

 मेमोरी: 1525720 के / 1572408 के उपलब्ध (6507 के कर्नेल कोड, 641 के आरडडाटा, 2752 के रॉडाटा, 872 के इनिट, 9 24 के बीएसएस, 46688 के आरक्षित, 65 9 400 के उच्चतम) 

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

हार्डवेयर पहचान

कर्नेल आउटपुट यह जानने का भी एक शानदार तरीका है कि लिनक्स आपके पीसी में हार्डवेयर के साथ कैसे बातचीत कर रहा है। उदाहरण के लिए, कर्नेल पहचानने वाली हार्ड डिस्क को खोजने के लिए, आप "sda" कीवर्ड के संदेशों के माध्यम से खोज सकते हैं। ऐसा करने के लिए, इस तरह " grep " का उपयोग करें:

 डीएमएसजी | grep sda 

"एसडीए" पहला एसएटीए हार्ड डिस्क को दिया गया नाम है, "एसडीबी" दूसरी सैटा हार्ड डिस्क है और इसी तरह। यदि आपको "sda", "sdb" आदि के अंतर्गत अपनी डिस्क नहीं मिलती है, तो "hda", "hdb" और इसी तरह से प्रयास करें।

नेटवर्क कार्ड पर जानकारी प्राप्त करने के लिए, "eth0" की खोज करें, उदाहरण के लिए:

 डीएमएसजी | grep eth0 

मेरी टेस्ट मशीन पर, "eth0" संबंधित आउटपुट की लाइनों में से एक दिखाता है:

 ई 1000 0000: 00: 03.0 eth0: इंटेल (आर) प्रो / 1000 नेटवर्क कनेक्शन 

यह मुझे बताता है कि मेरा ईथरनेट कार्ड एक इंटेल प्रो / 1000 (जिसे ई 1000 के रूप में जाना जाता है) है।

यदि आप एक यूएसबी फ्लैश ड्राइव डालते हैं और आप यह जांचना चाहते हैं कि क्या यह कर्नेल द्वारा पहचाना गया है और यह किस डिवाइस का नाम असाइन किया गया है, तो आप tail का उपयोग कर अंतिम कुछ कर्नेल संदेश देख सकते हैं:

 डीएमएसजी | पूंछ -20 

-20 ने tail को डीएमएसजी से आउटपुट की आखिरी 20 लाइनों को दिखाने के लिए कहा। उदाहरण आउटपुट से पता चलता है कि एडीएटीए द्वारा एक फ्लैश ड्राइव यूएसबी पोर्ट में डाला गया था, इसमें 8 जीबी की क्षमता है और इसे sdd का डिवाइस नाम सौंपा गया है।

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