मुझे कभी स्पष्ट रूप से समझ नहीं आया कि एक एबीआई क्या है। कृपया मुझे एक विकिपीडिया लेख की ओर इशारा न करें। अगर मैं इसे समझ पाता, तो मैं यहाँ इतनी लंबी पोस्ट नहीं डालता।
यह विभिन्न इंटरफेस के बारे में मेरी मानसिकता है:
एक टीवी रिमोट उपयोगकर्ता और टीवी के बीच एक इंटरफेस है। यह एक मौजूदा इकाई है, लेकिन अपने आप में बेकार (कोई कार्यक्षमता प्रदान नहीं करता है)। रिमोट पर उन प्रत्येक बटन के लिए सभी कार्यक्षमता टेलीविजन सेट में लागू की गई है।
इंटरफ़ेस: यह बीच 'मौजूदा इकाई "परत है
functionality
औरconsumer
है कि कार्यक्षमता की। अपने आप से एक इंटरफ़ेस कुछ नहीं करता है। यह सिर्फ पीछे पड़ी कार्यक्षमता को आमंत्रित करता है।अब यह निर्भर करता है कि उपयोगकर्ता कौन है विभिन्न प्रकार के इंटरफेस।
कमांड लाइन इंटरफेस (सीएलआई) कमांड मौजूदा संस्थाएं हैं, उपभोक्ता उपयोगकर्ता है और कार्यक्षमता पीछे है।
functionality:
मेरी सॉफ़्टवेयर कार्यक्षमता जो कुछ उद्देश्य को हल करती है जिसके लिए हम इस इंटरफ़ेस का वर्णन कर रहे हैं।
existing entities:
आदेशों
consumer:
उपयोगकर्ताग्राफिकल यूजर इंटरफेस (जीयूआई) विंडो, बटन, आदि मौजूदा इकाइयां हैं, और फिर से उपभोक्ता उपयोगकर्ता है और कार्यक्षमता पीछे है।
functionality:
मेरी सॉफ़्टवेयर कार्यक्षमता जो कुछ समस्या को हल करती है जिसके लिए हम इस इंटरफ़ेस का वर्णन कर रहे हैं।
existing entities:
खिड़की, बटन आदि।
consumer:
उपयोगकर्ताएप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (एपीआई) फ़ंक्शन (या अधिक सही होने के लिए) इंटरफेस (इंटरफेज आधारित प्रोग्रामिंग में) मौजूदा संस्थाएं हैं, उपभोक्ता यहां एक और प्रोग्राम नहीं उपयोगकर्ता है, और फिर से कार्यक्षमता इस परत के पीछे निहित है।
functionality:
मेरी सॉफ़्टवेयर कार्यक्षमता जो कुछ समस्या को हल करती है जिसके लिए हम इस इंटरफ़ेस का वर्णन कर रहे हैं।
existing entities:
फ़ंक्शंस, इंटरफ़ेसेस (कार्यों का सरणी)।
consumer:
एक और कार्यक्रम / आवेदन।एप्लिकेशन बाइनरी इंटरफ़ेस (एबीआई) यहां वह जगह है जहां मेरी समस्या शुरू होती है।
functionality:
???
existing entities:
???
consumer:
???
- मैंने विभिन्न भाषाओं में सॉफ्टवेयर लिखा है और विभिन्न प्रकार के इंटरफेस (सीएलआई, जीयूआई, और एपीआई) प्रदान किए हैं, लेकिन मुझे यकीन नहीं है कि मैंने कभी कोई एबीआई प्रदान किया है।
ABI इस तरह के विवरण को कवर करते हैं
- डेटा प्रकार, आकार और संरेखण;
- कॉलिंग कन्वेंशन, जो नियंत्रित करता है कि फ़ंक्शन के तर्कों को कैसे पारित किया जाता है और पुनर्प्राप्त किए गए मान वापस आते हैं;
- सिस्टम कॉल नंबर और एक एप्लीकेशन को ऑपरेटिंग सिस्टम पर सिस्टम कॉल कैसे करना चाहिए;
अन्य ABI इस तरह के विवरण का मानकीकरण करते हैं
- C ++ नाम की मनुहार,
- अपवाद प्रचार, और
- एक ही मंच पर संकलक के बीच सम्मेलन बुलाना, लेकिन क्रॉस-प्लेटफॉर्म संगतता की आवश्यकता नहीं है।
कौन इन विवरणों की जरूरत है? कृपया ओएस मत कहो। मुझे विधानसभा प्रोग्रामिंग पता है। मुझे पता है कि लिंकिंग और लोडिंग कैसे काम करता है। मुझे पता है कि वास्तव में अंदर क्या होता है।
C ++ नाम मैन्युलेशन में क्यों आया? मुझे लगा कि हम बाइनरी स्तर पर बात कर रहे हैं। भाषाएं क्यों आती हैं?
वैसे भी, मैंने यह देखने के लिए [पीडीएफ] सिस्टम वी एप्लिकेशन बाइनरी इंटरफ़ेस संस्करण 4.1 (1997-03-18) डाउनलोड किया है कि इसमें क्या शामिल है। खैर, यह सबसे कोई मतलब नहीं था।
ELF फ़ाइल प्रारूप का वर्णन करने के लिए इसमें दो अध्याय (4th और 5th) क्यों हैं? वास्तव में, ये उस विनिर्देश के केवल दो महत्वपूर्ण अध्याय हैं। बाकी अध्याय "प्रोसेसर विशिष्ट" हैं। वैसे भी, मैं हालांकि यह एक पूरी तरह से अलग विषय है। कृपया नहीं कहता कि ELF फ़ाइल स्वरूप विनिर्देशों हैं ABI। यह परिभाषा के अनुसार एक इंटरफ़ेस होने के लिए योग्य नहीं है ।
मुझे पता है, चूंकि हम इतने निचले स्तर पर बात कर रहे हैं, यह बहुत विशिष्ट होना चाहिए। लेकिन मुझे यकीन नहीं है कि यह "निर्देश सेट आर्किटेक्चर (आईएसए)" कैसे विशिष्ट है?
मुझे Microsoft Windows 'ABI कहां मिल सकता है?
इसलिए, ये प्रमुख प्रश्न हैं जो मुझे परेशान कर रहे हैं।