अपने स्वयं के लिनक्स कर्नेल को संकलित करने का क्या लाभ है?


101

लिनक्स कर्नेल का संकलन करके मैं क्या लाभ देख सकता था? क्या कुछ दक्षता है जिसे आप अपने हार्डवेयर में कस्टमाइज़ करके बना सकते हैं?


लाभ क्या है का सरल प्रश्न बहुत जल्दी से अस्पष्ट या संदर्भ से बाहर हो जाता है । यह बेहतर होगा कि What are the pros and cons of compiling your own kernel? विपक्ष से पूछें = आसान नहीं, कई स्थितियों में कोई मूल्य नहीं जोड़ा गया। पेशेवरों = सुरक्षा, प्रदर्शन, यदि आप जानते हैं कि आप क्या कर रहे हैं, तो उदाहरण के लिए एनएएस डिवाइस, लिनक्स का उपयोग करके कुछ हार्डवेयर काम करते हैं और नेटवर्किंग और ग्राफिक क्षमता रखते हैं।
रॉन

जवाबों:


73

मेरे मन में, आपके अपने लिनक्स कर्नेल को संकलित करने से आपको वास्तव में केवल एक ही लाभ होगा:

आप अपने खुद के लिनक्स कर्नेल को संकलित करना सीखते हैं।

यह कुछ आप नहीं है की जरूरत है और अधिक गति / स्मृति / जो कुछ भी xxx के लिए क्या करना है। यह एक मूल्यवान बात है कि अगर आपको लगता है कि मंच आपके विकास में है। यदि आप इस बारे में गहन जानकारी चाहते हैं कि यह पूरा "खुला स्रोत" चीज के बारे में क्या है, कर्नेल के विभिन्न भाग कैसे और क्या हैं, तो आपको इसे देना चाहिए। यदि आप अपने बूट समय में 3 सेकंड की गति बढ़ाने के लिए देख रहे हैं, तो ... क्या बात है ... एक एसएसडी खरीदें। यदि आप जिज्ञासु हैं, यदि आप सीखना चाहते हैं, तो अपने कर्नेल को संकलित करना एक महान विचार है और आपको इससे बहुत कुछ प्राप्त होने की संभावना है।

उस के साथ, कुछ विशिष्ट कारण हैं, जब अपने कर्नेल को संकलित करना उचित होगा (जैसा कि कई लोगों ने अन्य उत्तरों में बताया है)। आम तौर पर ये विशिष्ट परिणाम के लिए आपके पास एक विशिष्ट आवश्यकता से उत्पन्न होते हैं, उदाहरण के लिए:

  • मुझे सीमित संसाधनों के साथ हार्डवेयर को बूट / रन करने के लिए सिस्टम प्राप्त करने की आवश्यकता है
  • मुझे एक पैच का परीक्षण करने और डेवलपर्स को प्रतिक्रिया प्रदान करने की आवश्यकता है
  • मुझे एक ऐसी चीज़ को निष्क्रिय करने की आवश्यकता है जो एक संघर्ष का कारण बन रही है
  • मुझे लिनक्स कर्नेल विकसित करने की आवश्यकता है
  • मुझे अपने असमर्थित हार्डवेयर के लिए समर्थन सक्षम करने की आवश्यकता है
  • मुझे x के प्रदर्शन में सुधार करने की आवश्यकता है क्योंकि मैं सिस्टम की वर्तमान सीमाओं को मार रहा हूं (और मुझे पता है कि मैं क्या कर रहा हूं)

मुद्दा यह सोचने में निहित है कि जब कुछ पहले से ही जिस तरह से होना चाहिए, वह काम कर रहा है, तो अपने ही कर्नेल को संकलित करने के कुछ आंतरिक लाभ हैं। और मुझे नहीं लगता कि वहाँ है। यद्यपि आप उन चीजों को अक्षम करने में घंटों का समय बिता सकते हैं जिनकी आपको आवश्यकता नहीं है और उन चीजों को जो कि tweakable हैं, को ट्विंक कर रहे हैं, तथ्य यह है कि लिनक्स कर्नेल पहले से ही अधिकांश उपयोगकर्ता स्थितियों के लिए बहुत अच्छी तरह से (आपके वितरण द्वारा) तैयार है।


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

सहमत ... इस प्रकार की चीज़ों के लिए उन दो परियोजनाओं का निर्माण किया जाता है।
गाबे

निश्चित रूप से आप जानते हैं कि आप वास्तव में अपने जवाब में खुद का विरोधाभास करते हैं। यदि कर्नेल को संकलित करने का एकमात्र लाभ यह सीखना था कि यह कैसे करना है, तो यह बेकार होगा - इसका कोई मूल्य नहीं है। लेकिन फिर कुछ शब्द बाद में आप कहते हैं कि यह एक मूल्यवान चीज है ...
rozcietrzewiacz

@rozcietrzewiacz ज्ञान अत्यंत मूल्य का है। एक कर्नेल को संकलित करने से आपको अपना ज्ञान बढ़ाने में मदद मिलती है। यदि आप इसे नहीं खरीदते हैं, तो यहाँ यह है - ज्ञान शक्ति है, और लोग सत्ता पाने के लिए अच्छा पैसा देते हैं, और पैसा आज की दुनिया में मूल्य रखता है, इसलिए सकर्मक संपत्ति द्वारा ....: P
Lunmeat317

मैं सहमत हूं, यह केवल प्राप्त ज्ञान के लिए इसके लायक है।
1100110

35

अधिकांश उपयोगकर्ताओं को अपने स्वयं के कर्नेल को संकलित करने की आवश्यकता नहीं है, उनके वितरण ने उनके लिए यह काम किया है। आमतौर पर वितरण में पैच का एक सेट शामिल होगा, जिसमें वितरण कार्य, डिवाइस ड्राइवरों के बैकपार्ट्स और नए से फिक्स होने के कुछ हिस्सों को एकीकृत किया जाता है, लेकिन कर्नेल के अनरिलीज्ड वर्जन या फीचर्स जो वे अपने उपयोगकर्ताओं के साथ अग्रणी हैं।

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

जिन कारणों से आप अपनी कर्नेल को फिर से बनाना चाहते हैं, उनमें शामिल हैं:

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

कई डेवलपर्स इसका उपयोग एम्बेडेड सिस्टम के लिए कर्नेल के कस्टम संस्करण बनाने के लिए करते हैं या उन बॉक्स को सेट करते हैं जहां उन्हें विशेष उपकरण ड्राइवरों की आवश्यकता होती है, या वे कार्यक्षमता को निकालना चाहते हैं जिनकी उन्हें आवश्यकता नहीं है।


8
+1। बच्चों को इन दिनों, वे यह भी नहीं जानते कि 'मेनुकोनफिग' बनाने का क्या मतलब है और स्क्रिप्ट किडियों को रोकने के लिए अपने कर्नेल नेटवर्क कोड को कभी पैच नहीं करना चाहिए। सौभाग्य से वे दिन ज्यादातर चले गए हैं।
axel_c

2
आपको यह bisectपता लगाने के लिए आईएनजी जोड़ना चाहिए कि एक बग कहां पेश किया गया ...
xenoterracide

1
आश्चर्यजनक है कि इस टिप्पणी को वोट कैसे दिया जाता है जब ओपी के सवाल से इसका कोई लेना-देना नहीं होता है। "अधिकांश उपयोगकर्ता नहीं करते हैं ...." अब c'mon। लाभ जानना चाहते हैं के बारे में ओपी का प्रश्न बहुत स्पष्ट है; "अधिकांश उपयोगकर्ता" यहां और वहां क्या करते हैं, आपकी राय नहीं।
एरिक

30

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


15
मैं आपके अधिकांश उत्तर से सहमत हूं, लेकिन मैं "काफी तेजी से" कुछ कठिन तथ्यों के लिए उत्सुक हूं। मैं एक नए उपयोगकर्ता को यह आभास नहीं देना चाहता कि उनका डेस्कटॉप आम तौर पर हाथ से निर्मित कर्नेल के साथ तेजी से चलेगा (जेंटू के साथ मेरे अनुभव से, यह बस सच नहीं है)। क्या आप बूट गति में लाभ की मात्रा निर्धारित कर सकते हैं?
सैंडी

2
यह उत्तर 15 साल पहले सच था, लेकिन यह वास्तव में इन दिनों प्रासंगिक नहीं है। अधिकांश ड्राइवर वैसे भी मॉड्यूल में आते हैं, इसलिए वे केवल डिस्क पर कमरा लेते हैं, स्मृति में नहीं। (या कुछ डिस्ट्रीब्यूशन अभी भी initrd के बिना आते हैं। initrd के बिना कर्नेल में सभी ड्राइवरों को शामिल करने की आवश्यकता होती है। इसे बूट करने की आवश्यकता होती है।) बूट समय के लिए, कुछ ड्राइवर जो एक मिलीसेकंड से अधिक खर्च करते हैं, कोई भी xx हार्डवेयर का पता लगाने में अक्षम हो सकता है। कर्नेल बूट विकल्प के साथ।
गिल्स

1
@ मिचेल अगर यह एक असत्यापित धारणा है, तो मुझे लगता है कि आपके उत्तर में "संभावित रूप से तेज" के साथ "काफी तेज" की जगह एक अच्छा विचार हो सकता है ... बस यह सुनिश्चित करने के लिए कि कोई भी n00bs गुमराह नहीं हैं। :-)
सैंडी

3
@ कैंडी सहमत, क्योंकि ऐसा लगता है कि मैं उन n00bs में से एक हूं :)। फिक्स्ड
माइकल Mrozek

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

24

मुझे विश्वास नहीं हो रहा है कि यहां स्वीकृत उत्तर यह कहना शुरू करता है कि "यह वह चीज नहीं है जो आपको अधिक गति / मेमोरी / xxx के लिए करने की आवश्यकता है।"

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

एक अन्य उदाहरण, स्लैकवेयर के तहत बिग एसएमपी डिफ़ॉल्ट है और एक डेल 2800 पर, उदाहरण के लिए, जीएफएसडी (एक कर्नेल मॉड्यूल के रूप में नहीं) जैसी चीजों को चलाने के लिए एक बड़े पैर प्रिंट का उपभोग करेगा, वैसे भी, मैं कुछ के लिए सीपीयू टिक का उपभोग करता हूं। जरूरत नहीं है इसी तरह एनएफएसडी और अन्य कैच-ऑल के लिए सभी मानसिकताओं को खुश करने के लिए जो ठीक है अगर आप सिर्फ एक बॉक्स पर लिनक्स प्राप्त करने की कोशिश कर रहे हैं और चल रहे हैं लेकिन अगर आप "स्पीड / मेमोरी / एक्सएक्सएक्स जो भी" के बारे में परवाह करते हैं तो ये चीजें मायने रखती हैं ।

मेरे सभी प्रोडक्शन बॉक्स कस्टम कर्नेल हैं। अगर मैं डेल श्रृंखला (2800, 2850, 2900, आदि ...) जैसे सामान्य हार्डवेयर पर हूं, तो यह कर्नेल की .config फ़ाइल को प्रत्येक बॉक्स में कॉपी करने और कर्नेल को संकलित करने और स्थापित करने का सरल मामला है।


3
मुझे लगता है कि स्वीकृत उत्तर का मुख्य बिंदु यह है कि अधिकांश हार्डवेयर के लिए, अपने स्वयं के कर्नेल को संकलित करके प्राप्त किया गया प्रदर्शन यह सीखने के लिए आवश्यक समय के लायक नहीं है कि यह कैसे करना है (और सीखें कि विकल्पों का क्या अर्थ है)। यह शायद अनुभवात्मक है: इस पर कुछ संख्याओं को खोजना बहुत अच्छा होगा।
एंड्रेस रिओप्रियो

फिर यह मूल प्रश्न में यह नहीं बताने के लिए अपमानजनक है और फिर उस उत्तर को स्वीकार करें जो आपके द्वारा लगाए गए आधार पर है।
एरिक

2
खैर, यह मेरी गलती नहीं है कि मेरा जवाब स्वीकार कर लिया गया। और हाँ, ऐसे मामले भी हैं जहाँ आपके कर्नेल को संकलित करने से आपको "कुछ प्रदर्शन करने में मदद मिलेगी" समय से पहले की जरूरत है, और सिर्फ सामान्य अर्थों में उत्सुक था कि कर्नेल को संकलित करने का क्या लाभ था। मैं तर्क दूंगा कि केवल विशिष्ट आवश्यकताओं वाले लोग ही कर्नेल ट्विक्स से लाभान्वित होते हैं। चूंकि मेरा उत्तर स्वीकार कर लिया गया था, इसलिए मैं इसे कस्टम कर्नेल के लिए अधिक शक्ति-उपयोगकर्ता कारणों को संबोधित करने के लिए सुधार करूंगा
gabe।

14

यहाँ कुछ स्थितियाँ हैं जहाँ आपके अपने कर्नेल को संकलित करने से आपको लाभ होगा:

  • मॉड्यूल लोडिंग अक्षम के साथ एक कर्नेल अधिक सुरक्षित है। इसके लिए आपको उन मॉड्यूल का चयन करने की आवश्यकता होगी जिन्हें आप जानते हैं कि आपको उनकी आवश्यकता है और उन्हें कर्नेल के भाग के रूप में शामिल करना है, क्योंकि उन्हें मॉड्यूल के रूप में संकलित करने का विरोध किया गया है।

  • / Dev / kmem के लिए समर्थन को अक्षम करना, या उपयुक्त संकलक विकल्प के साथ इसे अपंग करना सुरक्षा के लिए एक अच्छी बात है। मुझे लगता है कि अधिकांश डिस्ट्रोस डिफ़ॉल्ट रूप से अब ऐसा करते हैं।

  • मैं जब संभव हो initrd का उपयोग नहीं करना पसंद करता हूं। हार्डवेयर से अपने कर्नेल को अनुकूलित करना यह initrd को समाप्त करने से बूट करता है।

  • कभी-कभी बाद के कर्नेल संस्करण में आपके लिए आवश्यक विशेषताएं होंगी, लेकिन यह आज बहुत दुर्लभ है। मुझे याद है कि जब मैंने पहली बार डेबियन का उपयोग करना शुरू किया था, तो यह 2.4 कर्नेल का उपयोग कर रहा था, लेकिन मुझे udv समर्थन के लिए 2.6 कर्नेल की आवश्यकता थी।

  • नेटवर्किंग प्रोटोकॉल / विकल्प अक्षम करने की आवश्यकता नहीं है आप अपने टीसीपी / आईपी प्रदर्शन को गति दे सकते हैं।

  • विकल्पों को अक्षम करने के लिए आपको कर्नेल की मेमोरी फ़ुटप्रिंट को कम करने की आवश्यकता नहीं है, जो कम रैम वातावरण में महत्वपूर्ण है। जब आप एक राउटर के रूप में 256MB रैम सिस्टम का उपयोग कर रहे हैं, तो यह मदद करता है।

  • मैं उन सभी "ट्टी" उपकरणों को / उन सिस्टम पर डिस्टर्बिंग के लिए खोजता हूँ जहाँ मैं आमतौर पर केवल सीरियल या ssh के माध्यम से लॉग इन करता हूँ।


सब सच। हालांकि, मॉड्यूल लोडिंग को हटाने से बूट पर समस्या हो सकती है: सबसे अधिक, यदि नहीं, तो वितरण आज सिर्फ यह मानते हैं कि मॉड्यूल लोड करने की आवश्यकता होगी। पिछली बार जब मैंने मॉड्यूल्स को बंद किया था, तो यह Red Hat बूट प्रक्रिया के दौरान त्रुटि संदेशों के लिटनी का कारण बना।
मेई

7

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

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

मैं व्यक्तिगत रूप से अपने स्वयं के कर्नेल को केवल उस हार्डवेयर के लिए समर्थन शामिल करने के लिए संकलित करना चाहता हूं जो मेरे पास है। जब आप डिस्ट्रो कर्नेल चलाते हैं और के आउटपुट को lsmod(8)देखते हैं, तो आपके पास हार्डवेयर के लिए बहुत सारे मॉड्यूल लोड होते हैं जो आपके पास नहीं हैं। यह मॉड्यूल सूची, / proc, / sys और आपके लॉग को प्रदूषित कर सकता है जब आप कुछ खोज रहे होते हैं तो यह शोर के बीच छिपा हो सकता है; आप यह भी शत-प्रतिशत सुनिश्चित नहीं कर सकते हैं कि जिन मॉड्यूल्स में आप निदान करने की कोशिश कर रहे हैं, उन मॉड्यूल का योगदान नहीं है।


6

मैं दूसरा gabe। का उत्तर (मेरी टिप्पणी बहुत लंबी है इसलिए मैं एक उत्तर के रूप में पोस्ट कर रहा हूं)।

जब तक आपके पास एक अत्यधिक विशिष्ट उद्देश्य (जैसे एम्बेडेड मशीन, सख्त सुरक्षा रूपरेखा) नहीं है, मुझे यह देखने के अलावा कि यह कैसे किया जाता है, इसके अलावा अपने स्वयं के कर्नेल को संकलित करने का कोई व्यावहारिक लाभ नहीं दिखता है। व्यवस्थित रूप से विकल्पों की समीक्षा करके, यह देखने के लिए कि सिस्टम बनाने के लिए वे एक-दूसरे के साथ कैसे बातचीत करते हैं, यह समझने का एक शानदार तरीका है कि आपका सिस्टम कैसे काम करता है। यह आश्चर्यजनक है कि जब आप उन घटकों को हटाने की कोशिश करते हैं, जो उन कार्यों को पूरा करने के लिए प्रकट नहीं होते हैं जिन्हें आप पूरा करने की कोशिश कर रहे हैं।

हालांकि चेतावनी दी है - क्यों खरगोश छेद नीचे कूद निस्संदेह प्राणपोषक है, यह संभव से अधिक रातों और सप्ताहांत वापस चूसना होगा जितना आपने सोचा था!


3

काम पर, हम हाथ से लुढ़का हुआ कर्नेल का उपयोग करते हैं ताकि आउट-ऑफ-ट्री पैच जैसे कि वेसरवर और यूनियनफ़्स लागू हो सकें।

घर पर, मैं हाथ से लुढ़कने वाली गुठली संकलित कर रहा हूं ताकि यह पता चले कि किस बग का सामना करना पड़ रहा है। एक बार जब मैंने वह पूरा कर लिया, तो मैं शायद हाथ से लुढ़कने वाली गिरी से चिपक जाऊंगा, जब तक कि बग को मेरे वितरण (डेबियन) में तय नहीं किया जाता है, जिस समय मैं फिर से उनकी गुठली को वापस कर दूंगा।


2

यह धागा अभी पुराना है और फिर भी आज भी मान्य है क्योंकि यह प्रश्न पूछा गया था!

इसका उत्तर है: आप अपनी ज़रूरत और आवश्यकताओं के अनुसार अपनी पसंद के लिनेक्स कर्नेल को संकलित करते हैं।

कई परिदृश्य मान्य हैं:

  1. आप एक इंजीनियर हैं और आपको अपने सिस्टम के लिए प्रदर्शन और सुरक्षा आवश्यकताओं / मांगों को पूरा करने के लिए अपने निर्माण की आवश्यकता है, आप निर्दिष्ट मानदंडों को पूरा करने और / या पार करने के लिए recompile करते हैं।

  2. आप एक सामान्य उपयोगकर्ता हैं और आपके पास एक पुरानी प्रणाली है जिसे आप जितनी देर तक रखना चाहते हैं, आप अपने पुराने सिस्टम को अनुकूलित रखने के लिए घटकों को जोड़ने / हटाने के लिए पुन: व्यवस्थित करते हैं।

  3. आप नवीनतम तेज हार्डवेयर के साथ एक सामान्य उपयोगकर्ता हैं और इसमें पर्याप्त मेमोरी / रैम है। फिर से जोड़ने की आवश्यकता नहीं है लेकिन आप अभी भी कर सकते हैं यदि आप अपने सिस्टम के बारे में थोड़ा और जानने में रुचि रखते हैं।

  4. आप बस Microsoft और / या मैक रोजमर्रा के उपयोगकर्ता की तरह बनना चाहते हैं, फिर से संगठित न हों और अपने अपस्ट्रीम डिस्ट्रो से अपडेट के साथ ही जाएं।

  5. परिदृश्यों को बनाए रखें :-)

मैक / विंडोज उपयोगकर्ताओं के विपरीत, लिनक्स जो प्रदान करता है वह विकल्प है। इसे आसानी से लेने या अपनी आवश्यकताओं के लिए सिस्टम को ऑप्टिमाइज़ करने का विकल्प।


1

अधिकांश उपयोगों के लिए जेनेरिक कर्नेल लगभग किसी भी हार्डवेयर के लिए अच्छे हैं। इसके अतिरिक्त वे आम तौर पर (एड) वितरण-विशिष्ट पैच होते हैं, ताकि आपके अपने कर्नेल का संकलन (समस्या) हो सकती है।

अपने कर्नेल को संकलित करने के लिए अनुनाद हैं:

  • आप स्रोत-आधारित डिस्ट्रो का उपयोग कर रहे हैं ताकि कोई 'जेनेरिक' कर्नेल न हो
  • आप कर्नेल डेवलपर हैं और आप कर्नेल विकसित करते हैं
  • आपको बहुत सीमित हार्ड ड्राइव के साथ एम्बेडेड डिवाइस के लिए उदाहरण के लिए कर्नेल को अनुकूलित करना होगा
  • कुछ ड्राइवर में संकलित नहीं किया गया है (बहुत दुर्लभ मामला)
  • आप कर्नेल को पैच करना चाहते हैं और आप जानते हैं कि आप क्या कर रहे हैं
  • आप सीखना चाहते हैं कि कर्नेल को कैसे संकलित किया जाए

अगर मैं स्रोत-आधारित डिस्ट्रो का उपयोग नहीं कर रहा था, तो मैं कर्नेल का संकलन नहीं करूंगा।


1

कस्टम संकलित कर्नेल रखने के लिए यहां उल्लेखित कई मामलों के अलावा एक और विशेष नेटवर्क बूट वातावरण स्थापित किया जा रहा है, जहां मॉड्यूल लोडिंग संभव नहीं है और आपको विशिष्ट कार्यों के लिए पूरी तरह से काम कर रहे गुठली को विशिष्ट मशीनों के लिए पास करना होगा।


1

मुझे आश्चर्य है कि किसी ने कस्टम कर्नेल के संकलन के लिए इस कारण का उल्लेख नहीं किया है:

क्योंकि आप किसी भिन्न C / c ++ कंपाइलर का उपयोग करना चाहते हैं। लिनक्स कर्नेल को संकलित करने के लिए जीसीसी बहुत अच्छा है। लेकिन वहाँ बाहर बहुत बेहतर संकलक हैं! GCC के अनुकूलन इंटेल के C / C ++ कंपाइलर से थोड़ा पीछे हैं। और Intel प्रदर्शन प्राइमेटिव लाइब्रेरीज़ और vtune टूल सप्लाई करता है, जो दोनों ही उच्च-प्रदर्शन वाले लिनक्स कर्नेल के निर्माण में अपरिहार्य हैं। आप केवल GCC और G ++ के साथ ही प्राप्त कर सकते हैं। व्यावहारिक रूप से कोई फर्क नहीं पड़ता कि आप क्या करते हैं परिणाम संकलक द्वारा सीमित होगा। इसलिए, मैं इंटेल कंपाइलर और प्रदर्शन पुस्तकालयों का उपयोग करता हूं यह थोड़ा बड़ा है - 1.5 जीबी डाउनलोड, लेकिन यह एक अच्छा विचार देता है कि सभी एक अच्छे कंपाइलर में क्या निहित है।

इंटेल का C / C ++ कंपाइलर गैर-व्यावसायिक उपयोग के लिए मुफ्त उपलब्ध है। लेकिन यह गैर-वाणिज्यिक लाइसेंस इंटेल सी + + कंपाइलर डाउनलोड पृष्ठ है जो इंटेल की वेबसाइट को खोजना आसान है। मैं आमतौर पर किसी चीज के लिए जीसीसी / जी ++ का उपयोग नहीं करता हूं। और आपको एक प्रोग्रामर होने की आवश्यकता नहीं है। आप बस अपना वातावरण सेट करें और इंटेल के कंपाइलर को इंगित करने के लिए मेक फाइल में दो लाइनें बदलें।

तब आप कुछ गंभीर गति प्राप्त कर सकते हैं!


-1

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

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