बीएसडी को लिनक्स (और अन्य यूनिक्स की तरह) बायनेरी चलाने की अनुमति देता है, लेकिन लिनक्स (और सबसे अधिक यूनिक्स की तरह) बीएसडी बायनेरिज़ को नहीं चला सकता है?
बीएसडी को लिनक्स (और अन्य यूनिक्स की तरह) बायनेरी चलाने की अनुमति देता है, लेकिन लिनक्स (और सबसे अधिक यूनिक्स की तरह) बीएसडी बायनेरिज़ को नहीं चला सकता है?
जवाबों:
बाजार की ताकत।
विशेष रूप से लिनक्स पर बीएसडी की तुलना में कई और अधिक लक्षित कार्यक्रम हैं। बहुत सारे सॉफ़्टवेयर स्रोत कोड पर्याप्त पोर्टेबल हैं जो कि दोनों पर संकलित किए जा सकते हैं, लेकिन कई सॉफ़्टवेयर निर्माता जो कि लिनक्स बायनेरिज़ को जहाज करते हैं, वे बीएसडी के लिए ऐसा करने की जहमत नहीं उठाते हैं क्योंकि उनके पास बोर्ड की तुलना में लिनक्स पर छोटे बाजार शेयर हैं। ¹
यदि सॉफ़्टवेयर का एक टुकड़ा केवल एक अलग ओएस के लिए द्विआधारी रूप में उपलब्ध है, तो ABI इम्यूलेशन इसे चलाने का एक तरीका है, जो कि BSD करते हैं।
एक बार जब x86 यूनिक्स ने लिनक्स पर बाजार में बहुमत हासिल किया था , तो आईबीसीएस फीचर को लिनक्स में जोड़ा गया था ताकि वह एससीओ यूनिक्स और इस तरह से निर्मित बायनेरिज़ को चला सके। लिनक्स की बाजार हिस्सेदारी बढ़ने के साथ इस सुविधा में रुचि घट गई, जिससे कि इसे लिनक्स 2.3 विकास श्रृंखला के दौरान अव्यवस्था में पड़ने दिया गया। एससीओ के मुकदमों ने इस सुविधा को लिनक्स से बाहर निकालने में मदद की, लेकिन मेरा मानना है कि यह बाजार के नुकसान के लिए माध्यमिक है। बल है कि सुविधा का जन्म हुआ।
ऐसा कोई तकनीकी कारण नहीं है कि बीएसएनडी बायनेरिज़ को चलाने के लिए लिनक्स किसी दिन iBCS जैसी सुविधा प्राप्त नहीं कर सका, लेकिन यह तब तक संभव नहीं है जब तक कि किसी कारण से बीएसडी और लिनक्स के बाज़ार स्थान बदल न जाएं।
आज, ऐसी बात के लिए बहुत कम कॉल है। बीएसडी के लिए कितने बाइनरी-ओनली प्रोग्राम्स से आप अवगत हैं, जो लिनक्स के लिए भी नहीं बने हैं? कुछ होना चाहिए, लेकिन मुझे लगता है कि उनमें से ज्यादातर एम्बेडेड बीएसडी के लिए हैं, जैसे कि जूनोस । ऐसी सुविधा नहीं बनाई जाएगी यदि यह लिनक्स पर चलने वाले कार्यक्रमों के एक महत्वपूर्ण सेट को अनुमति नहीं देता है जो अन्यथा नहीं चलेगा ।⁴
फुटनोट:
मैं ओएस एक्स को बीएसडी के रूप में यहां गिन नहीं रहा हूं, क्योंकि यह एक अलग बाइनरी संगतता समस्या है। FreeBSD, OpenBSD और NetBSD , X86 पर ELF का उपयोग करते हैं , जबकि OS X एक पूरी तरह से अलग निष्पादन योग्य प्रारूप का उपयोग करता है । डायनेमिक लिंकेज भी पारंपरिक X86 BSD की तुलना में OS X पर काफी अलग है ।
लिनक्स X ओएस एक्स बाइनरी संगतता कहानी पर अधिक के लिए इस प्रश्न को देखें ।
शार्क की कुछ प्रजातियों के साथ , सॉफ़्टवेयर जो आगे बढ़ना बंद कर देता है, मर जाता है। जब हम सॉफ़्टवेयर में होते हैं तो हम इस घटना को बिटिफिकेशन के बजाय बिट-रॉट कहते हैं , लेकिन इसका कारण और प्रभाव समान होते हैं।
कंट्रास्ट NDISwrapper , जो लिनक्स को बाइनरी-ओनली नेटवर्क कार्ड ड्राइवरों को चलाने के लिए विंडोज एक्सपी के लिए लिखा है। एक जरूरत की पहचान की जाती है, और एक जरूरत भर की जाती है। बीएसडी-केवल बायनेरिज़ चलाने के लिए यह कहाँ की आवश्यकता है?
binfmt_misc
मॉड्यूल के माध्यम से गैर-देशी बायनेरिज़ को निष्पादित करने के लिए बुनियादी ढांचा है , जो आपको मनमाने ढंग से द्विआधारी प्रारूप संचालकों को पंजीकृत करने की अनुमति देता है। कुछ लोग इस तरह से मोनो एप्लिकेशन चलाते हैं, हालांकि मुझे लगता है कि यह दुर्लभ है। लेकिन जैसा कि आप कहते हैं, किसी के पास * BSD Binfmt हैंडलर लिखने का ज्यादा कारण नहीं है।