क्या UNIX / Linux सिस्टम में कर्नेल को बदलना संभव है?


16

मैं जानना चाहता था कि क्या कर्नेल को बदलना संभव है, उदाहरण के लिए, फेडोरा के लिनक्स कर्नेल को फ्रीबीएसडी के स्थान पर बदलना।

अब, पहले से ही डेबियन GNU / kFreeBSD मौजूद था । क्या बीएसडी कर्नेल में लिनक्स डिस्ट्रो को कस्टमाइज़ करना मेरे लिए संभव है?


3
MacOSX एक पूरी तरह से POSIX आज्ञाकारी BSD आधारित कर्नेल है। और लिनक्स के विपरीत, जो एक यूनिक्स सिस्टम नहीं होने का दावा करता है, ओएसएक्स एक यूनिक्स सिस्टम है (यह ओपन ग्रुप द्वारा प्रमाणित है जो यूनिक्स ट्रेडमार्क का मालिक है)। आप मैक पर लिनक्स एप नहीं चला सकते हैं और इंटेल सीपीयू (अच्छी तरह से तकनीकी रूप से AMD64) पर चलने पर भी आप लिनक्स पर मैक एप्स को नहीं चला सकते हैं
स्लीपबेटमैन

जवाबों:


21

नहीं, प्रत्येक कर्नेल अपनी विशेषताओं को अपने तरीके से लागू करता है। POSIX संगतता की एक बड़ी मात्रा है, लेकिन एक बार जब आप इससे बाहर निकलते हैं, तो निष्पादन योग्य को पहले से ही गिरी हुई तंत्र के साथ संकलित करने की आवश्यकता होती है। कई परियोजनाओं में स्रोत कोड होता है जो केवल संकलित हो जाता है यदि आप स्पष्ट रूप से कहते हैं कि आप FreeBSD या लिनक्स के लिए संकलन कर रहे हैं। अनिवार्य रूप से kFreeBSD क्या है। उपकरण FreeBSD कर्नेल का समर्थन करते हैं, लेकिन उन्हें इसके लिए संकलित करना होगा।

उदाहरण के लिए, यदि आप epoll_createFreeBSD पर उपयोग करने की कोशिश करते हैं तो चीजें अपेक्षा के अनुरूप काम नहीं करेंगी।

बेशक, आप बीएसडी सिस्टम एलएफएस-शैली से उपकरणों को संकलित कर सकते हैं, लेकिन यह हमेशा के लिए लेने की संभावना है। एक नए कर्नेल को संकलित करने जितना सरल नहीं है।


1
मैं एमओओएल कर्नेल पर आपका विचार सुनना चाहता हूं , पहले से ही एक ओएस है जो इसे लागू करता है, बॉस लिनक्स।
श्री हर्ष चिलकापति

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

1
तो, आपका क्या कहना है, अगर मैं एक GNU यूजरलैंड आधारित BSD सिस्टम बनाना चाहता हूं, तो मुझे BSD कर्नेल के लिए सभी GNU सॉफ्टवेयर को फिर से तैयार करना होगा। क्या मैं सही हूँ?
स्विच करें

1
कुछ भी है कि लिनक्स- isms का उपयोग करता है जो बहुत ज्यादा सब कुछ होगा। KFreeBSD से शुरू करना और वहां से जाना आसान हो सकता है।
ब्राचली 15

16

फ्रीबीएसडी एक लिनक्स कर्नेल का उपयोग नहीं करता है - जैसा कि इसके नाम से पता चलता है, यह बीएसडी कर्नेल का उपयोग करता है।

लिनक्स कर्नेल को एक अलग लिनक्स कर्नेल के साथ बदलना संभव है (या तो आपने खुद को बनाया था या एक जिसे आपने वितरण से निकाला था)। इस बात से अवगत रहें कि आपके वितरण में उपयोगकर्ता-स्थान कार्यक्रम संकलित किए जाने के लिए विशेष कर्नेल सुविधाओं पर निर्भर हो सकते हैं, और यदि आप उन विशेषताओं के बिना बनाए गए कर्नेल पर चलाते हैं तो वे ठीक से काम नहीं कर सकते हैं। उदाहरण के लिए, एक सिस्टम-आधारित वितरण को कर्नेल में cgroups की आवश्यकता होगी।

आपके द्वारा उल्लेखित उदाहरण के लिए, हाँ एक GNU वितरण लिनक्स कर्नेल के लिए या BSD कर्नेल के लिए बनाया जा सकता है। कई मामलों में, #ifdefदोनों के लिए संकलित कार्यक्रमों के बीच संकलन-समय के अंतर (जैसे ) होते हैं, भले ही गुठली एक ही एबीआई का विज्ञापन करें। कम से कम, निम्न-स्तरीय पुस्तकालयों जैसे कि सी रनटाइम लाइब्रेरी में अलग-अलग कर्नेल एबीआई को समायोजित करना है।


सी रनटाइम लाइब्रेरी का उल्लेख करने के लिए बूस्ट।
यहोशू

2

कर्नेल एक स्वतंत्र हिस्सा है और नियमित रूप से ऑपरेटिंग सिस्टम अपडेट के दौरान बदल दिया जाता है। कुछ मालिकाना ड्राइवरों (NVIDIA, आदि) की स्थापना स्क्रिप्ट हैं जो ड्राइवर को कर्नेल स्रोत में पैच करते हैं, उस कर्नेल का निर्माण करते हैं और इसके साथ वर्तमान कर्नेल को प्रतिस्थापित करते हैं। इसलिए यदि आप अपने स्वयं के कर्नेल संस्करण को विकसित करते हैं जो सभी आवश्यक कार्यक्षमता का प्रदर्शन कर सकता है, तो इसे लगाने और बाकी ऑपरेटिंग सिस्टम को चारों ओर छोड़ने के लिए एक बड़ी समस्या नहीं होनी चाहिए। हालाँकि अक्सर ऐसा "नया कर्नेल" हाल के आधिकारिक संस्करण से लिया जाता है।

सोलारिस कर्नेल को कुछ हद तक इस तरह से पोर्ट किया गया है, जिसके परिणामस्वरूप ओपनसोलारिस ग्नोम पर्यावरण चला रहा है।

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

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