कैसे लिनक्स कर्नेल के बारे में अधिक जानने के लिए अपनी खुद की मशीन से



समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

जीएनयू / लिनक्स के साथ काम करना सीखना आम तौर पर डेस्कटॉप वातावरण के साथ काम करना सीखता है। थीम प्रौद्योगिकी इन डेस्कटॉप वातावरणों को iOS, Microsoft Windows और OS X उपकरणों के इंटरफेस की नकल करने की अनुमति देती है। यह इस को कम करने में मदद करता है जैसा कि यह था। बहुत से लोग आगे जाकर यूनिक्स कमांड लाइन प्रशासन को बाश या टीसीश के गोले के साथ सीखते हैं। हालांकि, लिनक्स कर्नेल के आंतरिक के जानकार बनने से आपको यह समझने में मदद मिल सकती है कि एक दूसरे के साथ ओपकोड के विभिन्न टुकड़े कैसे बातचीत करते हैं।



कुछ लोग यह तर्क देंगे कि कई कदम आगे जाना सबसे अच्छा होगा और इसके अतिरिक्त यह भी सीखें कि कंपाइलर एक माइक्रोप्रोसेसर के लिए मशीन कोड में C कोड को कैसे ट्रांसमिट करते हैं। असेंबली कोड के अधिवक्ता तब ASM को x86 और x86_64 प्लेटफ़ॉर्म पर प्रोग्रामिंग को सही ढंग से समझने के लिए सीखने का सबसे अच्छा तर्क देंगे। इन स्थितियों के बावजूद, बुनियादी लिनक्स कमांड इस बात की जानकारी प्रदान कर सकते हैं कि कर्नेल आपके कंप्यूटर को कैसे देखता है। लुक के माध्यम से सीखना लेकिन स्पर्श प्रतिमान को कर्नेल में मास्टर करने का एक शानदार तरीका नहीं है। जब इस पृष्ठ पर उदाहरणों के लिए रूट खाते का उपयोग किया गया था, तो यह अत्यधिक अनुशंसित था कि आप कभी भी उपयोगकर्ता खाते के माध्यम से केवल गिरी-लिंक निर्देशिकाओं को देखें।



विधि 1: / proc निर्देशिका

/ Proc निर्देशिका किसी भी यूनिक्स फ़ाइल संरचना में शीर्ष-स्तरीय रूट निर्देशिका के प्राथमिक क्षेत्रों में से एक में बैठता है। इसमें वह है जिसे खरीद फ़ाइल प्रणाली कहा जाता है, जिसे उन संसाधनों के रूप में जाना जाता है, जिनमें विभिन्न संसाधनों के कर्नेल मेमोरी तक पहुंचने के तरीके के बारे में जानकारी होती है। यह उस समय बूट किया जाता है जब सिस्टम बूट करता है। चूंकि यह प्रॉक्सी फ़ाइल संरचना लिनक्स कर्नेल के अंदर आंतरिक डेटा संरचना के लिए एक इंटरफ़ेस के रूप में कार्य करती है, इसलिए यह केवल एक बार उपयोगकर्ता खाते के माध्यम से यह पता लगाने के लिए सबसे अच्छा है। अधिकांश फ़ाइलों को दृश्य-प्रणाली फ़ाइल संरचना द्वारा वर्गीकृत किया जाता है, वैसे भी केवल पढ़ने के लिए, लेकिन यह सुरक्षित पक्ष पर होना सबसे अच्छा है।



यह कहा जा रहा है, इनमें से प्रत्येक एक पाठ फ़ाइल है, इसलिए यदि आप चाहें तो आप उन्हें देख सकते हैं। / Proc निर्देशिका में प्रवेश करने के लिए cd कमांड का उपयोग करें, और फिर वहाँ क्या देखने के लिए ls जारी करें। उन्हें देखने के लिए किसी भी फाइल के साथ बिल्ली, कम या ज्यादा कमांड का उपयोग करें। Cpuinfo फ़ाइल शुरू करने के लिए एक अच्छी जगह है, क्योंकि यह प्रदर्शित करता है कि कर्नेल आपके माइक्रोप्रोसेसर को कैसे देखता है। चल रही प्रक्रियाओं के दृश्य के लिए स्टेट फाइल को देखें।

2016-11-25_020006

टाइपिंग कैट डिवाइस आपको एक नज़र देगा कि आपकी मशीन से क्या चीजें जुड़ी हुई हैं।



2016-11-25_020109

वैसे, आप हमेशा कमांड मैन को रिंडाउन के लिए जारी कर सकते हैं कि कैसे / proc फ़ाइल संरचना कर्नेल से संबंधित है। सर्व किया गया पेज लिनक्स प्रोग्रामर के मैनुअल से आता है।

2016-11-25_020156

विधि 2: / sys निर्देशिका

आपके कर्नेल के दौरे पर आपका अगला पड़ाव है / sys, जो एक प्रिटेंड फ़ाइल संरचना में मैप की गई दूसरी निर्देशिका है। यह समान सामान्य यूनिक्स अवधारणा का अनुसरण करता है, जैसा कि / proc करता है, लेकिन इसके बजाय सक्रिय रूप से संबंधित डिवाइस ड्राइव और कई कर्नेल सबसिस्टम के बारे में जानकारी का निर्यात करता है। यदि आपने कभी बीएसडी-आधारित प्रणाली के साथ काम किया है, तो आप इन कार्यों को प्रदान करने वाले sysctl से अधिक परिचित हो सकते हैं। PCI, USB और S / 390 बस उपकरण सभी / sys निर्देशिका के लिए मैप किए गए हैं।

निर्देशिका के लिए सिर पर cd / sys का प्रयोग करें और फिर ls या dir कमांड जारी करें। आपके पास ब्लॉक, क्लास, डिवाइसेस, fs, कर्नेल और शायद दूसरों के लिए निर्देशिकाएं हो सकती हैं। आप आगे की फ़्लैट फ़ाइलों के लिए इनका पता लगा सकते हैं, जिसमें सिस्टम के बारे में जानकारी होती है, लेकिन एक बार फिर एक उपयोगकर्ता खाते से ऐसा करते हैं और नज़र रखते हैं, लेकिन अपने बारे में मानसिकता को स्पर्श न करें।

विधि 3: / देव निर्देशिका

/ देव निर्देशिका को सिर / देव कमांड का उपयोग करें, जो एक कर्नेल आभासी संरचना हो सकती है जो आप पहले से ही सबसे परिचित हैं। नाम का अर्थ है डिवाइस, और आपके सिस्टम में संलग्न उपकरणों का फ़ाइल प्रतिनिधित्व है। इस निर्देशिका में एक ls कमांड कई फाइलों को सरलतम सर्वर वितरण पर भी लौटाएगा।

2016-11-25_020242

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

यदि आपने कभी डिस्क को प्रारूपित किया है, तो संभवतः आपको कम से कम कुछ अनुभव हो जिस तरह से लिनक्स कर्नेल उन्हें देखता है। सिस्टम से जुड़ी प्रत्येक डिस्क को sda, sdb और इसी तरह प्रत्येक डिस्क के लिए एक नाम मिलता है। विभिन्न डिस्क प्रकारों को अलग-अलग नाम मिलते हैं। ध्यान रखें कि / dev निर्देशिका जिस तरह से हम आम तौर पर उस शब्द का उपयोग नहीं करते हैं, उसके बजाय डिस्क की एक संभावित औपचारिक कंप्यूटर विज्ञान परिभाषा का उपयोग करता है। इसका मतलब है कि हार्ड ड्राइव, SSD, SD कार्ड, एक माइक्रोएसडीएचसी कार्ड, एक माउंटेड स्मार्टफोन फाइलसिस्टम जो USB, USB स्टिक और यहां तक ​​कि माउंटेड टैबलेट के माध्यम से जुड़ा हुआ है, सभी कर्नेल के डिस्क हैं।

लिनक्स में प्रत्येक डिस्क का नाम विभाजन संख्या को इंगित करने के बाद एक अंक प्राप्त करता है। यदि आपके पास दो प्राथमिक विभाजन के साथ एक SSD था, तो आपके पास मान्य वॉल्यूम के रूप में / dev / sda1 और / dev / sda2 हो सकते हैं। संभावना से अधिक यदि आप डेस्कटॉप या लैपटॉप से ​​एमबीआर शैली विभाजन के साथ लिनक्स चला रहे हैं, तो आपके पास / dev / sda1 ext4 विभाजन पर सेट है जो वास्तव में लिनक्स पर स्थापित है। संभावना से अधिक / dev / sda2 एक विस्तारित विभाजन है जिसमें तब स्वैप विभाजन के रूप में / dev / sda5 होता है। यह योजना आम है, लेकिन किसी भी तरह से आवश्यक नहीं है। ध्यान दें कि चूंकि इस सामान्य उदाहरण में स्वैप विभाजन एक विस्तारित विभाजन के अंदर एक तार्किक डिस्क है, इसलिए इसे इसके अंक के रूप में 3 के बजाय 5 प्राप्त होता है।

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

मान लीजिए कि आपकी छड़ी इस प्रकार दिखाई दे रही है / Dev / एसडीसी , तब आप उपयोग कर सकते हैं सुडो fdisk / देव / sdc इसे लोड करने के लिए। यदि आपके पास इसमें एक वैध विभाजन है, तो हेक्स कोड सूची को लोड करने के लिए टाइप और टाइप एल को बदलने के लिए टी टाइप करें। ध्यान दें कि MBR ​​और GUID विभाजन योजनाएँ कर्नेल से अलग तरीके से बात करती हैं, और इसलिए अलग-अलग असाइनमेंट हैं।

2016-11-25_020331

अक्सर आपके पास 83 से टाइप करने के लिए ड्राइव नहीं है, जो कि लिनक्स ड्राइव, 82 के लिए है, जो लिनक्स स्वैप विभाजन के लिए है, या एफएटी फ़ाइल प्रकारों में से एक है। FAT 1977 या किसी और रूप में वापस आता है, और अभी भी कई प्रकार के मोबाइल उपकरणों के साथ-साथ कई हटाने योग्य ड्राइव के लिए पसंद किया जाता है। ध्यान दें कि कुछ विभाजन प्रकार, जैसे कि 0x0c, में LBA समर्थन नामक कुछ सुविधा है।

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

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

लिनक्स सीधे इनपुट के बिना कई प्रकार के विभाजन प्रकारों को माउंट करने के लिए कर्नेल समर्थन प्रदान करता है, लेकिन उनका चयन करते समय यह बहुत अच्छा नहीं होता है। यदि आप सिस्टम मिलान विकल्प चुनने के लिए एक बहुत ही अजीब विभाजन प्रकार बनाते हैं, तो आप अपने डेटा को टोस्ट कर सकते हैं।

विधि 4: लिनक्स प्रोग्रामर मैनुअल से सिस्टम कॉल

ऑनबोर्ड मैन पेज रीडर जिनमें अधिकांश लिनक्स वितरण शामिल हैं, वास्तव में आपको सिस्टम कॉल पर क्रैश कोर्स दे सकते हैं, जो कर्नेल के बारे में सीखने में काफी मदद कर सकते हैं। Xman ग्राफिकल मैन पेज ब्राउजर को या तो .desktop लिंक से शुरू करें यदि आपके पास एक है, या वैकल्पिक रूप से एक ही समय में सुपर की और आर को दबाकर रखें तो xman टाइप करें और एंटर पुश करें। 'मैनुअल पेज' विकल्प चुनें और फिर ड्रॉप-डाउन मेनू से 'अनुभाग' और अंत में '(2) सिस्टम कॉल' चुनें।

2016-11-25_020430

एक बार एक विकल्प पढ़ने ' परिचय ”प्रकट होता है, उसे चुनें। लिनक्स प्रोग्रामर के मैनुअल का एक पृष्ठ जो आपको सिस्टम कॉल के बारे में काफी कुछ सिखाएगा, फिर आपको शुभकामनाएं देगा।

2016-11-25_020518

6 मिनट पढ़े