शिकायतों द्वारा उत्पादित अंतिम छवियों में बिन फ़ाइल और विस्तारित लोडर प्रारूप ईएलएफ फ़ाइल दोनों शामिल हैं, दोनों के बीच अंतर क्या है, खासकर ईएलएफ फ़ाइल की उपयोगिता।ईएलएफ फाइलों और बिन फाइलों के बीच क्या अंतर है?
उत्तर
एक बिन फ़ाइल एक शुद्ध बाइनरी फ़ाइल है जिसमें कोई मेमोरी फ़िक्स-अप या स्थान नहीं है, संभावना है कि उसके पास एक विशिष्ट स्मृति पते पर लोड होने के लिए स्पष्ट निर्देश हैं। जबकि ....
ELF फ़ाइलों निष्पादन योग्य स्वरूप प्रतीक लुक-अप और पुनर्निधारणीय तालिका के होते हैं जो, वह यह है कि यह किसी भी स्मृति पते पर गिरी द्वारा लोड किया जा सकता है और स्वचालित रूप से उपयोग किए गए सभी प्रतीकों, समायोजित कर रहे हैं कर रहे हैं उस मेमोरी पते से ऑफ़सेट करने के लिए जहां इसे लोड किया गया था। आम तौर पर ईएलएफ फाइलों में कई डेटा होते हैं, जैसे 'डेटा', 'टेक्स्ट', 'बीएसएस', नाम के लिए लेकिन कुछ ... यह उन वर्गों के भीतर है जहां रन-टाइम गणना कर सकता है कि प्रतीक के स्मृति संदर्भों को समायोजित करना है गतिशील रूप से रन-टाइम पर।
"संभावना से अधिक स्पष्ट निर्देशों पर एक विशिष्ट स्मृति पते पर लोड होने के लिए स्पष्ट निर्देश हैं": क्या इसका मतलब है कि बिन फ़ाइल जनरेशन प्रक्रिया डेटा को विशिष्ट पते पर लोड करने के लिए अतिरिक्त कोड जोड़ती है? – xiaobai
जहां तक मैंने सीखा है कि बिन फ़ाइल ऑफ़सेट 0 से प्रोग्राम चलाने की तरह है और डेटा सेगमेंट को एम्बेड किया गया है। यदि यह गलत है तो कृपया मुझे सही करें। –
@MartinKersten सही, बिन फाइल ऑफसेट से शुरू होती है 0. – t0mm13b
कुछ संसाधनों:
ELF प्रारूप से एआरएम वास्तुकला
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0044d/IHI0044D_aaelf.pdf
arm-elf-objcopy -O binary [elf-input-file] [binary-output-file]
या fromELF सुविधा का उपयोग (सबसे IDEs में बनाया इस तरह के विज्ञापनों के रूप में यद्यपि): अगर आप जीएनयू उपकरण जंजीरों का उपयोग करें, आप इसे बाइनरी फ़ॉर्मेट में जैसे, objcopy का उपयोग करके अनुवाद कर सकते हैं
fromelf -bin -o [binary-output-file] [elf-input-file]
एक बिन फ़ाइल केवल बिट्स और बाइट्स है जो रोम में जाते हैं या एक विशेष पता जिससे आप प्रोग्राम चलाएंगे। आप यह डेटा ले सकते हैं और इसे सीधे लोड कर सकते हैं, आपको पता होना चाहिए कि मूल पता क्या है, हालांकि सामान्य रूप से वहां नहीं है।
एक एल्फ फ़ाइल में बिन जानकारी होती है लेकिन यह कई अन्य जानकारी, संभावित डीबग जानकारी, प्रतीकों से घिरा हुआ है, बाइनरी के भीतर डेटा से कोड को अलग कर सकती है। द्विआधारी डेटा के एक से अधिक हिस्सों की अनुमति देता है (जब आप इनमें से किसी एक को बिन में डंप करते हैं तो आपको डेटा को भरने के लिए एक बड़ी बिन फ़ाइल मिलती है ताकि इसे अगले ब्लॉक में पैड किया जा सके)। आपको बताता है कि आपके पास कितनी बाइनरी है और कितना बीएसएस डेटा है जो ज़ीरोस में प्रारंभ करना चाहता है (gnu टूल्स में बिन फाइलें सही तरीके से बनाने में समस्याएं हैं)।
एल्फ फ़ाइल प्रारूप मानक है, हाथ मानक में इसके एन्हांसमेंट/विविधता प्रकाशित करता है। मैं सलाह देता हूं कि हर कोई एक एल्फ पार्सिंग प्रोग्राम लिखता है कि वहां क्या है, पुस्तकालय से परेशान न हों, कल्पना में सूचना और संरचनाओं का उपयोग करना बहुत आसान है। सामान्य रूप से .bin फाइलों के साथ-साथ डिबगिंग लिंकर स्क्रिप्ट और अन्य चीजों को बनाने में gnu समस्याओं को दूर करने में मदद करता है जो आपके बिन या एल्फ़ आउटपुट को गड़बड़ करने में मदद कर सकते हैं।
- 1. रेल में सहायक फाइलों और lib फ़ाइलों के बीच अंतर
- 2. टाइपस्क्रिप्ट.जेएस और टाइपस्क्रिप्ट सर्विसेज.जेएस के बीच क्या अंतर है?
- 3. क्या वितरण के बीच निष्पादन योग्य बाइनरी फाइलों के बीच कोई अंतर है?
- 4. .एलबी और ओबीजे फाइलों के बीच क्या अंतर है? (विजुअल स्टूडियो सी ++)
- 5. बिन के java.exe और jre के java.exe के बीच अंतर?
- 6. क्या फाइलों के बीच बुद्धिमान diffing करना संभव है?
- 7. पीडीबी फाइलों का उद्देश्य क्या है?
- 8. Mercurial में, क्या मैं केवल दो फाइलों के बीच कुछ फाइलों को विलय कर सकता हूं?
- 9. दो फाइलों के बीच एक क्रमबद्ध अंतर करने का एक आसान तरीका क्या है?
- 10. एसवीसी फाइलों और डब्ल्यूसीएफ परियोजनाओं के बीच संबंध?
- 11. शब्दकोश और सरणी के बीच क्या अंतर है?
- 12. फाइलों के बीच टेक्स्ट कॉपी और पेस्ट करने से एक्सकोड
- 13. दृश्य स्टूडियो परियोजना फाइलों
- 14. फाइलों (गणित)
- 15. फाइलों को हटाने और उन्हें रीसायकल बिन में रखने के लिए सीएमडी कमांड?
- 16. # {} $ {} और% {} के बीच क्या अंतर है?
- 17. [अपरिभाषित] और [,] के बीच क्या अंतर है?
- 18. $ और $$ के बीच क्या अंतर है?
- 19. के बीच क्या अंतर है:। और: आर !?
- 20. भिन्नता और '-' के बीच क्या अंतर है?
- 21. "$^एन" और "$ +" के बीच क्या अंतर है?
- 22. फाइलों के बिना डिफ
- 23. php cli और php cgi के बीच क्या अंतर है?
- 24. इंटेलिजेज़ "अनदेखा फाइलों" और .gitignore
- 25. SQLAlchemy: फ्लश() और प्रतिबद्ध() के बीच क्या अंतर है?
- 26. ईएलएफ
- 27. आदेश फाइलों
- 28. सिर्फ फाइलों
- 29. पायथन में दो फाइलों के "अस्पष्ट" अंतर उत्पन्न करें, फ्लोट्स
- 30. क्या कैसंद्रा फाइलों को संग्रहित करने के लिए अच्छा है?
[यही वह है जिसे NASM कहना है] (http://www.nasm.us/doc/nasmdoc7.html#section-7.1)। एआरएम विशिष्ट नहीं है, लेकिन एक ही अवधारणा होने की संभावना है। उदाहरण के लिए, यदि आप '-f' (या' -fbin') के बिना केवल 'एनओपी' वाली फ़ाइल संकलित करते हैं, तो यह 400 बाइट ईएलएफ कंटेनर के बजाय '-felf32' के बजाय एक बाइट' 0x90' तक संकलित करता है। तो सिर्फ कच्चा कोड, कोई कंटेनर मेटाडेटा नहीं। NASM का कहना है कि इसका ज्यादातर एमएस-डॉस .COM और [.SYS] (https://en.wikipedia.org/wiki/.sys) फ़ाइलों के लिए उपयोग किया जाता है। 'सेक्शन' निर्देशों को ज्यादातर अनदेखा किया जाता है और केवल संरेखण उत्पन्न होता है। –
यह एक तरीका है जिसमें बिन फ़ाइलें उपयोगी हो सकती हैं: बूट सिस्टम को ऑपरेटिंग सिस्टम को तैनात करने के लिए: http: // stackoverflow।कॉम/ए/32483545/895245 –