अपने आप को संभालो, इस सवाल की संभावना भोली और / या मूर्खतापूर्ण दिखाई देगी, क्योंकि मैं यूनिक्स के आंतरिक कामकाज, और सामान्य रूप से प्रोग्रामिंग में अपेक्षाकृत नया हूं।
तैयार? ठीक है! जैसे-जैसे मैं साथ बढ़ता जाऊंगा, मैं लगभग 3 स्तरों की ल्युद्रिकता से गुजरता जाऊंगा।
हमारे पास समान हार्डवेयर वाले दो सिस्टम हैं (मुख्य बिंदु प्रोसेसर है, आइए हम मानक इंटेल कोर 2 डुओ कहते हैं)।
एक चल रहा है (अपने लिनक्स डिस्ट्रो को यहां डालें: उबंटू को इसके बाद इस्तेमाल किया जाएगा), और दूसरा चल रहा है मान लीजिए मैक ओएस एक्स।
एक समतुल्य कार्यक्रम संकलित करता है, हमें कुछ इस तरह कहते हैं:
int main()
{
int cat = 33;
int dog = 5*cat;
return dog;
}
कोड बेहद सरल है, क्योंकि मैं अभी तक साझा पुस्तकालयों के निहितार्थ पर विचार नहीं करना चाहता हूं।
जब संबंधित सिस्टम पर संकलित किया जाता है। क्या आउटपुट के बीच मुख्य अंतर ईएलएफ बनाम माच-ओ का मामला नहीं है? यदि कोई फ़ार्मेटिंग के प्रत्येक बाइनरी को बंद करने के लिए था, तो एक फ्लैट बाइनरी को छोड़कर, असंतुष्ट मशीन निर्देश समान नहीं होंगे? (संभवतया कुछ आदतों के आधार पर कंपाइलर आदतों / प्रवृत्ति के आधार पर)।
1.) अगर कोई हमारे उबंटू प्रणाली से उत्पादित फ्लैट बाइनरी को दोबारा बनाने के लिए एक कार्यक्रम विकसित करता था, तो मैक-ओ प्रारूप में, क्या यह मैक ओएस एक्स सिस्टम में चलेगा? फिर, यदि किसी के पास केवल उपरोक्त कार्यक्रम के संकलित बाइनरी थे, और किसी के पास फ्लैट बायनेरिज़ को रीपैकेजिंग करने के लिए यह रहस्यमय उपकरण था, तो क्या मैक ओएस एक्स सिस्टम पर सरल प्रोग्राम चल पाएंगे?
अब हम इसे थोड़ा और आगे ले जाते हैं।
अब हमारे पास स्रोत के साथ एक कार्यक्रम है:
#include <stdio.h>
int main()
{
printf("I like tortoises, but not porpoises");
return 0;
}
2.) मान लें कि यह कार्यक्रम संकलित और सांख्यिकीय रूप से जुड़ा हुआ है, तो क्या हमारा जादुई कार्यक्रम अभी भी माच-ओ प्रारूप में कच्चे बाइनरी को फिर से बनाने में सक्षम होगा और क्या यह मैक ओएस एक्स पर काम करेगा? यह देखते हुए कि इसे किसी अन्य बायनेरिज़ पर भरोसा करने की आवश्यकता नहीं होगी, (जिसके लिए मैक सिस्टम इस मामले में नहीं होगा)
और अब अंतिम स्तर के लिए;
3.) क्या होगा यदि हम इस साझा कार्यक्रम का उपयोग सभी आवश्यक साझा पुस्तकालयों को मच-ओ प्रारूप में परिवर्तित करने के लिए करते हैं, और फिर इसके बजाय गतिशील लिंकिंग के साथ ऊपर दिए गए कार्यक्रम को संकलित करें। क्या कार्यक्रम अभी भी चलने में सफल होगा?
यह अभी के लिए होना चाहिए, जाहिर है कि बेहूदाता का प्रत्येक चरण पिछले आधार पर निर्भर करता है, यहां तक कि समझ में भी आता है। इसलिए यदि बहुत पहले खंभे नष्ट हो जाते हैं, तो मुझे संदेह है कि शेष स्तरों के लिए बहुत योग्यता होगी।
मैं निश्चित रूप से गुई के दिमाग में कार्यक्रमों के साथ इस बारे में सोचने के लिए भी नहीं जाऊंगा। विंडिंग सिस्टम की संभावना पूरी तरह से अन्य सिरदर्द होगी। मैं केवल इस स्तर पर कमांड लाइन कार्यक्रमों पर विचार कर रहा हूं।
अब, मैं दुनिया को मुझे सही करने के लिए आमंत्रित करता हूं, और मुझे वह सब कुछ बता देता हूं जो मेरी बेहूदा सोच के साथ गलत है।