c - प्रोग्राम हेडर और एएलएफ में अनुभाग हैडर के बीच अंतर



arm gnu (1)

प्रश्न 1 प्रोग्राम हेडर और एएलएफ में अनुभाग हेडर के बीच अंतर क्या है

Q1.1 खंड और एक अनुभाग के बीच अंतर क्या है?

मुझे विश्वास है कि pheaders केवल वर्गों को इंगित करते हैं

Q2। फाइल हैडर और प्रोग्राम हैडर के बीच अंतर क्या है?

ग्नु लिंडर स्क्रिप्ट के अनुसार, आईडी का प्रयोग करना: जीएनयू लिंकर :

PHDRS
{
name type [ FILEHDR ] [ PHDRS ] [ AT ( address ) ]
[ FLAGS ( flags ) ] ;
}

आप FILEHDR और पीएचडीआरएस खोजशब्दों का उपयोग खंड के सामग्रियों का अधिक विवरण देने के लिए प्रोग्राम हैडर प्रकार के बाद दिखाई दे सकते हैं। FILEHDR कीवर्ड का मतलब है कि खंड में ELF ले हेडर शामिल होना चाहिए। पीएचडीआरएस कीवर्ड का मतलब है कि खंड में एल्फ प्रोग्राम हेडर स्वयं शामिल होना चाहिए

This is a bit confusing

निष्पादन योग्य और लिंकयोग्य प्रारूप विकिपीडिया में एल्फ को समझाते हुए एक अच्छी तस्वीर है, और इसके प्रोग्राम शीर्षलेख और अनुभाग शीर्षलेख के बीच का अंतर है। यह भी देखें एल्फ (5)

[प्रारंभिक] प्रोग्राम हेडर निष्कर्ष (2) समय पर वर्चुअल मेमोरी (दृश्य के निष्पादन योग्य बिंदु) में प्रोजेक्ट किए जाने वाले सेगमेंट (एएलएफ निष्पादन योग्य चल रहे एक प्रक्रिया के पता स्थान में) को परिभाषित कर रहा है । [अंतिम] सेक्शन हैडर अनुभागों को परिभाषित कर रहा है ( एलडी (1) आदि के लिए लिंक करने योग्य बिंदु ...)। प्रत्येक अनुभाग एक सेगमेंट के अंतर्गत आता है (और हो सकता है, या नहीं, दृश्यमान होने पर- मेमोरी में मैप किए गए- निष्पादन समय पर) ईएलएफ फ़ाइल हेडर बताता है कि प्रोग्राम हैडर तालिका और अनुभाग शीर्ष लेख तालिका कहाँ हैं

अपने लिनक्स सिस्टम पर मौजूद कई एल्फ़ फाइलों (निष्पादनयोग्य, साझा ऑब्जेक्ट्स, लिंक करने योग्य ऑब्जेक्ट्स ) का पता लगाने के लिए ओब्जेडम्प (1) और रीडेल (1) का भी उपयोग करें।

लेवियन के लिंकर्स एंड लोडर्स बुक में एक अध्याय है जिसमें बताया गया है कि विवरण में

और डेरेपर के कागज कैसे साझा पुस्तकालयों में भी कुछ अच्छी स्पष्टीकरण है





linker-scripts