लिनक्स कर्नेल और जीयूआई एबीआई में बैकवर्ड-संगतता पर एक चर्चा में , एलन कॉक्स ने नोट किया कि " मेरे 3.6rc कर्नेल अभी भी 1992 में निर्मित एक दुष्ट बाइनरी चलाएंगे। एक्स लिनक्स के मुकाबले कहीं अधिक पुराने ऐप्स के अनुकूल है। "
तो बस कैसे पिछड़े-संगत लिनक्स अनुप्रयोग बाइनरी इंटरफेस हैं ?
वास्तव में वर्षों पहले लिखा और संकलित सबसे पुराना बाइनरी निष्पादन योग्य क्या है, जो अभी भी एक आधुनिक स्टॉक सामान्य प्रयोजन लिनक्स वितरण पर चलेगा?
मुझे यकीन है कि वे सभी शब्द व्याख्या के अधीन हैं। मेरी मुख्य धारणा यह है कि इसे किसी एमुलेटर या विशेष वर्चुअल मशीन या बाइनरी ट्रांसलेटर के माध्यम से चलाना उचित नहीं है, लेकिन कुछ ऐसी चीजें संभवत: कुछ आधुनिक विकृतियों में निर्मित होती हैं, और इसके बारे में सीखना यहाँ मज़े का हिस्सा है।
हार्डवेयर आर्किटेक्चर, निष्पादन योग्य फ़ाइल प्रारूप , भाषा, और प्रमुख पुस्तकालय गतिशील लोडिंग निर्भरता द्वारा भिन्नताएं भी रुचि के हैं।
ध्यान दें, जब नियमों में ढील दी जाती है, तो यहां एक और उदाहरण दिया गया है। 2002 का वेब पेज आधुनिक रेड हैट लिनक्स पर a.out निष्पादनों पर चल रहा है जो वास्तव में पुराने लिनक्स पूर्व-ELF a.out- प्रारूप निष्पादक का उपयोग करने modprobe binfmt_aout
और प्राप्त करने के बाद के बारे में बात करता है /lib/ld.so
और libc.so.4
फिर से इस प्रश्न के लिए परिधीय हित है, लेकिन चीजों के प्रकार को दिखाता है आगे खुदाई करने पर शामिल किया जा सकता है।
आपके लिए BSD प्रशंसकों के लिए अपडेट , यह देखकर बहुत अच्छा लगा कि iBCS2 पुराने Xenix ऐप (जैसे कि 1990 से zork / dungeon-2.5.6) और SCO OpenServer 5.0.x ऐप को हाल ही में NetBSD 4.0.1 (2008 से): iBCS2 और के रूप में समर्थन कर रहा था। नेटबीएसडी | वर्चुअलाइजेशन के साथ मज़ा । लेकिन वही बात NetBSD 5.0.x में टूटी हुई लगती है।
अपडेट 2 : एक साल बाद, इस प्रश्न के लिए एक "उद्घोषक" बैज मिलने के बाद भी, मैं अभी भी उत्तर की तलाश में हूं। और स्पष्ट करने के लिए, चूंकि यह एपीआई के बारे में है, इसलिए इसे "वास्तविक" बाइनरी (गैर-शून्य लंबाई) होना चाहिए, जो अभी भी कम से कम मूल तरीके से काम करता है।