2011-03-22 11 views
19
CONFIG_UNIX=m 

मुझे पता है कि y और n के लिए खड़े हैं, लेकिन m के बारे में क्या?कर्नेल कॉन्फ़िगरेशन फ़ाइल में एम का क्या अर्थ है?

+2

प्रोग्रामिंग से संबंधित नहीं - http://superuser.com –

+0

पर निर्भर करता है स्टैक ओवरफ़्लो प्रोग्रामिंग और विकास प्रश्नों के लिए एक साइट है। यह प्रश्न ऑफ़-विषय प्रतीत होता है क्योंकि यह प्रोग्रामिंग या विकास के बारे में नहीं है। सहायता केंद्र में [मैं यहां कौन से विषय पूछ सकता हूं] (http://stackoverflow.com/help/on-topic) देखें। शायद [सुपर उपयोगकर्ता] (http://superuser.com/) या [यूनिक्स और लिनक्स स्टैक एक्सचेंज] (http://unix.stackexchange.com/) पूछने के लिए एक बेहतर जगह होगी।यह भी देखें [मैं देव ओप्स के बारे में प्रश्न कहां पोस्ट करूं?] (Http://meta.stackexchange.com/q/134306)। – jww

उत्तर

21

मुझे लगता है कि यह कॉन्फ़िगर करने के दौरान (y, n, m) प्रॉम्प्ट के समान होता है; उस स्थिति में यह "मॉड्यूल" होगा।

नोट करें कि यूनिक्स डोमेन सॉकेट (CONFIG_UNIX) को मॉड्यूल के रूप में संकलित करना शायद एक अच्छा विचार नहीं है। बहुत सारे सिस्टम घटक और कार्यक्रम उन पर निर्भर करते हैं, और कुछ सेवाएं तब शुरू हो सकती हैं जब मॉड्यूल उस समय लोड नहीं किया गया हो।

लिनक्स कर्नेल में अधिकांश कार्यक्षमता या तो ("y") या बाएं आउट ("एन") में संकलित की जा सकती है, और इसमें से अधिकांश को लोड करने योग्य मॉड्यूल के रूप में भी संकलित किया जा सकता है। यह समझ में आता है जब आप निश्चित रूप से नहीं जानते कि आपको भविष्य में कुछ फीचर की आवश्यकता होगी या नहीं।

यदि आप इसे मॉड्यूल के रूप में संकलित करते हैं और यह पता चला है कि इसकी आवश्यकता है, तो यह काम करेगा, लेकिन तब तक यह कर्नेल को फूला नहीं जाएगा।

हालांकि, यूनिक्स डोमेन सॉकेट को मॉड्यूल के रूप में कॉन्फ़िगर करने के लिए वास्तव में यह समझ में नहीं आता है, क्योंकि उन्हें लगभग हर जगह की आवश्यकता होती है (उदा। Udev स्टार्टअप पर लॉन्च करने में विफल हो जाएगा)।

तुम्हें पता है तुम वैसे भी कुछ की आवश्यकता होगी, तो उस "y", नहीं "एम"

+0

'हाँ',' no' और 'मॉड्यूल'? यह मुझे समझ में नहीं आता है ... –

+2

लिनक्स कर्नेल में अधिकांश कार्यक्षमता या तो (" y ") या बाएं आउट (" n ") में संकलित की जा सकती है, और इसमें से अधिकांश को लोड करने योग्य मॉड्यूल के रूप में भी संकलित किया जा सकता है। यह समझ में आता है जब आप बिल्कुल नहीं जानते कि आपको भविष्य में कुछ फीचर की आवश्यकता होगी या नहीं। यदि आप इसे मॉड्यूल के रूप में संकलित करते हैं और यह पता चला है कि इसकी आवश्यकता है, तो यह काम करेगा, लेकिन तब तक यह कर्नेल को फूला नहीं जाएगा। यूनिक्स डोमेन सॉकेट के लिए, यह मॉड्यूल के रूप में कॉन्फ़िगर करने के लिए _really_ समझ में नहीं आता है, क्योंकि इसकी लगभग हर जगह आवश्यकता होती है (उदा। Udev स्टार्टअप पर लॉन्च करने में विफल हो जाएगा)। यदि आप जानते हैं कि आपको वैसे भी कुछ चाहिए, तो यह "वाई" होना चाहिए, न कि "एम"। – Damon

2

होना चाहिए "समझौता लिनक्स कर्नेल" से नीचे अंश पढ़ें:

कुछ लिनक्स कोड अनिवार्य रूप से स्थाई रूप से जुड़ा होना चाहिए, जिसका अर्थ है कि या तो संबंधित घटक कर्नेल में शामिल है या यह बिल्कुल संकलित नहीं है। ऐसा आमतौर पर तब होता है जब घटक को कर्नेल में स्थिर रूप से जुड़े कुछ डेटा संरचना या फ़ंक्शन में संशोधन की आवश्यकता होती है।

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

दूसरे उदाहरण के रूप में, एक कर्नेल घटक पर विचार करें जिसे स्थिर रूप से लिंक किए गए कोड को प्रतिस्थापित करना है। यह स्पष्ट है कि मॉड्यूल के रूप में ऐसा कोई घटक संकलित नहीं किया जा सकता है, क्योंकि मॉड्यूल को लिंक करते समय कर्नेल पहले से ही RAM में मशीन कोड नहीं बदल सकता है। उदाहरण के लिए, मॉड्यूल को लिंक करना संभव नहीं है जो पेज फ्रेम आवंटित किए जाते हैं, क्योंकि बडी सिस्टम फ़ंक्शन हमेशा कर्नेल से स्थिर रूप से जुड़े होते हैं।

संबंधित मुद्दे