शुरुआत के लिए लिनक्स कर्नेल स्रोत कोड कैसे समझें? [बन्द है]


12

मैं मेमोरी प्रबंधन पर काम करने में रुचि रखने वाला छात्र हूँ, विशेष रूप से लिनक्स कर्नेल के पृष्ठ प्रतिस्थापन घटक।

अलग-अलग गाइड कौन से हैं जो मुझे कर्नेल स्रोत को समझने में मदद कर सकते हैं?

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

मेरी परियोजना एक मुख्यधारा कर्नेल में पृष्ठ प्रतिस्थापन एल्गोरिथ्म को ट्विक करने से संबंधित है और कार्यभार के एक सेट के लिए इसके प्रदर्शन का विश्लेषण करती है। क्या लिनक्स कर्नेल का एक स्वाद है जिसे समझना आसान होगा (यदि लिनक्स-2.6.xx कर्नेल नहीं है)?


1
क्या मैं पूछ सकता हूं कि आपने कर्नेल प्रोग्रामिंग करने के लिए क्यों चुना है, जब आपको जटिल कोड के आसपास अपना रास्ता खोजने में आसान नहीं लगता है?
लेनिप्रोग्रामर्स

जवाबों:


13

डेटा संरचनाओं पर ध्यान दें । डेटा संरचनाओं को समझना आमतौर पर कोड की तुलना में अधिक महत्वपूर्ण है।

यदि आपको केवल डेटा संरचनाएं दिखाई जाती हैं, लेकिन कोई कोड नहीं है, तो भी आपको सिस्टम की बड़ी तस्वीर मिलती है।

इसके विपरीत, यदि केवल कोड लेकिन डेटा संरचनाओं को नहीं दिखाया गया है, तो सिस्टम को समझना बहुत कठिन है।

"मैं वास्तव में दावा करूंगा कि एक बुरे प्रोग्रामर और एक अच्छे के बीच का अंतर यह है कि क्या वह अपने कोड या अपने डेटा संरचनाओं को अधिक महत्वपूर्ण मानता है। खराब प्रोग्रामर कोड के बारे में चिंता करते हैं। अच्छे प्रोग्रामर डेटा संरचनाओं और उनके रिश्तों के बारे में चिंता करते हैं।" - लिनुस टोरवाल्ड्स

"मुझे अपनी फ़्लोचार्ट्स दिखाओ और अपनी टेबल्स को छुपा लो, और मैं रहस्यमय बनी रहूँगी। मुझे अपनी टेबल्स दिखाओ, और मुझे आमतौर पर तुम्हारी फ़्लोचार्ट्स की ज़रूरत नहीं होगी; वे स्पष्ट हो जाएँगी।" - फ्रेड ब्रूक्स।


4

मुझे लगता है कि कर्नेल Newbies बहुत अच्छा है

कर्नेल कैसे काम करता है, इस बारे में सीखने में रुचि रखने वाले बहुत से लोग हैं, मुझे लगता है कि आप एक या दो चीजें सीख सकते हैं


3

डीबगर विकल्प उपयोगी हो सकता है।

डीबगर विकल्प के साथ कर्नेल के निर्माण के बाद किए जाने वाले कुछ और चीजें विभिन्न सिस्टम कॉल को कॉल करने वाले कुछ नमूना परीक्षण अनुप्रयोगों को लिखना है जो कर्नेल को आह्वान करेंगे और आप एक बार में कर्नेल कोड के एक टुकड़े से गुजर सकते हैं और समझ सकते हैं कि यह कार्यान्वयन है।


2

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


0

एक जटिल कोड आधार सीखने का एक तरीका यह है कि इसे डिबगर में चलाएं और देखें कि चीजें आपको कहां ले जाती हैं। लिनक्स के लिए लिनक्स कर्नेल डीबगर है


मुझे यकीन नहीं है कि यह किसी के लिए काम करेगा जो अभी भी कोशिश कर रहा है कि इस विशालकाय कोड के साथ क्या करना है, और यह कैसे काम करता है
महमूद होसाम

1
मैंने यह दृष्टिकोण विशाल कोड आधारों के साथ किया है। आपको एक प्रवेश बिंदु और एक विचार की आवश्यकता है, हालांकि क्या देखना है।
लेनीप्रोग्रामर्स

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