स्थैतिक और गतिशील संबंध
दो प्रकार के द्विआधारी निष्पादन योग्य हैं: सांख्यिकीय रूप से जुड़ा हुआ और गतिशील रूप से जुड़ा हुआ। पहले स्टेटिकली लिंक्ड के बारे में : जब कोई प्रोग्राम किसी लाइब्रेरी फंक्शन को कॉल करना चाहता है, तो वह इसे नाम से संदर्भित करता है। स्रोत से प्रोग्राम का निर्माण करते समय, प्रोग्राम में उपयोग किए जाने वाले सभी लाइब्रेरी फ़ंक्शन को लाइब्रेरी से प्रोग्राम में कॉपी किया जाता है। इस कार्यक्रम में अपने स्वयं के कोड के साथ ही पुस्तकालय कार्यों के कोड का उपयोग करता है। फिर कॉलिंग स्थानों में प्रोग्राम में संबंधित फ़ंक्शन के पते पर नाम बदल दिया जाता है। इस प्रक्रिया को लिंकिंग कहा जाता है क्योंकि यह एक फ़ंक्शन के नाम को फ़ंक्शन के साथ ही जोड़ता है, इसका कार्यान्वयन। इसे स्थैतिक कहा जाता है , क्योंकि प्रोग्राम के निर्माण के बाद लिंक को बदला नहीं जा सकता है।
डायनामिकली लिंक्ड प्रोग्राम अलग तरीके से काम करते हैं: प्रोग्राम में लाइब्रेरी फ़ंक्शन को नाम से भी संदर्भित किया जाता है। कार्यक्रम का निर्माण करते समय, दो सूचियों को इकट्ठा किया जाता है और कार्यक्रम के साथ संग्रहीत किया जाता है: पुस्तकालय की एक सूची का उपयोग किन स्थानों पर किया जाता है, और पुस्तकालयों की एक सूची जिसमें कार्यक्रम द्वारा उपयोग किए जाने वाले कार्य शामिल हैं। कार्यक्रम के निर्माण के लिए बस इतना ही।
बाद में, निष्पादन के समय , एक विशेष सहायक कार्यक्रम, तथाकथित गतिशील लिंकर, पुस्तकालय सूची पर प्रत्येक पुस्तकालय के लिए फ़ाइल सिस्टम में विशिष्ट स्थानों पर दिखता है और इसे मेमोरी में लोड करता है। अब डायनामिक लिंकर से पता चलता है कि लाइब्रेरी के कार्यों के लिए कौन सी मेमोरी पते हैं। यह लाइब्रेरी फ़ंक्शन को कॉल करने वाले सभी स्थानों में सही पता लिखने के लिए पहली सूची का उपयोग करता है। फिर गतिशील रूप से जुड़ा कार्यक्रम चलाया जा सकता है।