क्या BSD लिनक्स बायनेरिज़ को चलाने की अनुमति देता है, लेकिन इसके विपरीत नहीं?


42

बीएसडी को लिनक्स (और अन्य यूनिक्स की तरह) बायनेरी चलाने की अनुमति देता है, लेकिन लिनक्स (और सबसे अधिक यूनिक्स की तरह) बीएसडी बायनेरिज़ को नहीं चला सकता है?


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

जवाबों:


55

बाजार की ताकत।

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

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

एक बार जब x86 यूनिक्स ने लिनक्स पर बाजार में बहुमत हासिल किया था , तो आईबीसीएस फीचर को लिनक्स में जोड़ा गया था ताकि वह एससीओ यूनिक्स और इस तरह से निर्मित बायनेरिज़ को चला सके। लिनक्स की बाजार हिस्सेदारी बढ़ने के साथ इस सुविधा में रुचि घट गई, जिससे कि इसे लिनक्स 2.3 विकास श्रृंखला के दौरान अव्यवस्था में पड़ने दिया गया। एससीओ के मुकदमों ने इस सुविधा को लिनक्स से बाहर निकालने में मदद की, लेकिन मेरा मानना ​​है कि यह बाजार के नुकसान के लिए माध्यमिक है। बल है कि सुविधा का जन्म हुआ।

ऐसा कोई तकनीकी कारण नहीं है कि बीएसएनडी बायनेरिज़ को चलाने के लिए लिनक्स किसी दिन iBCS जैसी सुविधा प्राप्त नहीं कर सका, लेकिन यह तब तक संभव नहीं है जब तक कि किसी कारण से बीएसडी और लिनक्स के बाज़ार स्थान बदल न जाएं।

आज, ऐसी बात के लिए बहुत कम कॉल है। बीएसडी के लिए कितने बाइनरी-ओनली प्रोग्राम्स से आप अवगत हैं, जो लिनक्स के लिए भी नहीं बने हैं? कुछ होना चाहिए, लेकिन मुझे लगता है कि उनमें से ज्यादातर एम्बेडेड बीएसडी के लिए हैं, जैसे कि जूनोस । ऐसी सुविधा नहीं बनाई जाएगी यदि यह लिनक्स पर चलने वाले कार्यक्रमों के एक महत्वपूर्ण सेट को अनुमति नहीं देता है जो अन्यथा नहीं चलेगा ।⁴


फुटनोट:

  1. मैं ओएस एक्स को बीएसडी के रूप में यहां गिन नहीं रहा हूं, क्योंकि यह एक अलग बाइनरी संगतता समस्या है। FreeBSD, OpenBSD और NetBSD , X86 पर ELF का उपयोग करते हैं , जबकि OS X एक पूरी तरह से अलग निष्पादन योग्य प्रारूप का उपयोग करता है । डायनेमिक लिंकेज भी पारंपरिक X86 BSD की तुलना में OS X पर काफी अलग है

    लिनक्स X ओएस एक्स बाइनरी संगतता कहानी पर अधिक के लिए इस प्रश्न को देखें ।

  2. फ्रीबीएसडी ; ओपनबीएसडी ; NetBSD

  3. शार्क की कुछ प्रजातियों के साथ , सॉफ़्टवेयर जो आगे बढ़ना बंद कर देता है, मर जाता है। जब हम सॉफ़्टवेयर में होते हैं तो हम इस घटना को बिटिफिकेशन के बजाय बिट-रॉट कहते हैं , लेकिन इसका कारण और प्रभाव समान होते हैं।

  4. कंट्रास्ट NDISwrapper , जो लिनक्स को बाइनरी-ओनली नेटवर्क कार्ड ड्राइवरों को चलाने के लिए विंडोज एक्सपी के लिए लिखा है। एक जरूरत की पहचान की जाती है, और एक जरूरत भर की जाती है। बीएसडी-केवल बायनेरिज़ चलाने के लिए यह कहाँ की आवश्यकता है?


3
लिनक्स में binfmt_miscमॉड्यूल के माध्यम से गैर-देशी बायनेरिज़ को निष्पादित करने के लिए बुनियादी ढांचा है , जो आपको मनमाने ढंग से द्विआधारी प्रारूप संचालकों को पंजीकृत करने की अनुमति देता है। कुछ लोग इस तरह से मोनो एप्लिकेशन चलाते हैं, हालांकि मुझे लगता है कि यह दुर्लभ है। लेकिन जैसा कि आप कहते हैं, किसी के पास * BSD Binfmt हैंडलर लिखने का ज्यादा कारण नहीं है।
कुटलुमाइक

यह वास्तव में मददगार था। मैं बस FreeBSD मैनुअल (सवाल पूछने से पहले) के माध्यम से देख रहा था, और यह कह रहा था कि BSD क्रॉस- * निक्स बायनेरिज़ को संभाल सकता है, और लिनक्स नहीं कर सकता, लेकिन इसने इसकी व्याख्या नहीं की। यह समझ में आता है, हालांकि ईमानदारी से मैं एक तकनीकी कारण की अधिक उम्मीद कर रहा था, बजाय बाजार बलों के कारण होने के कारण, लेकिन ईमानदारी से यह प्रतीत होता है कि वे [तकनीकी कारणों और लोकप्रियता] हालांकि मैं की तुलना में बहुत करीब से जुड़े हुए हैं।
कोई समय

3
ध्यान दें कि यह केवल बीएसडी के बारे में नहीं है। आप सभी यूनियनों में इस सटीक प्रवृत्ति को देखते हैं: दिन में वापस, लिनक्स किसी भी यूनिक्स बाइनरी को चला सकता है: iBCS समर्थित सोलारिस, 386BSD, FreeBSD, NetBSD, BSDI / 386, SVR4 (इंटरएक्टिव, यूनिक्सवेयर, यूएसएल, डेल आदि)। , एसवीआर 3 जेनेरिक, एससीओ, एससीओ ओपनसेवर 5, वायस वी / 386, एक्सनिक्स वी / 386, एक्सनिक्स 286 और शायद कुछ अन्य। आजकल, यह दूसरा तरीका है: सभी आधुनिक यूनिक्स लिनक्स बायनेरी का समर्थन करते हैं। दो उदाहरण हैं कि इस विशेषता को इतना महत्वपूर्ण माना गया था कि विक्रेता ने इसे नाम में भी डाल दिया! ("एकीकरण" के लिए "लिनक्स" के लिए आईबीएम AIX 5L, "एकीकरण" के लिए HP-UX 11i।)
Jörg W Mittag

1
@ JörgWMittag न तो AIX 5L और न ही HP-UX 11i वास्तव में लिनक्स बायनेरिज़ चलाते हैं, यह उल्लेख नहीं करने के लिए कि वे पहली जगह में x86 आर्किटेक्चर का समर्थन नहीं करते हैं। वे जो प्रदान कर सकते हैं वह एक GNU विकास वातावरण है जो AIX का निर्माण करने में आसानी करता है, स्रोत कोड से HP-UX बायनेरिज़ का सम्मान करता है।
जुल्गीरे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.