निष्पादन

From alpha
Jump to navigation Jump to search

निष्पादन योग्य वास्तविक मोड लोडर का एक हेक्स डंप

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

सटीक व्याख्या उपयोग पर निर्भर करती है। भौतिक केंद्रीय प्रसंस्करण इकाई के लिए निर्देश पारंपरिक रूप से मशीन कोड निर्देशों के लिए लिया जाता है।[2]कुछ संदर्भों में, स्क्रिप्टिंग निर्देश वाली फ़ाइल (जैसे बाईटकोड) को भी निष्पादन योग्य माना जा सकता है।

निष्पादन योग्य फ़ाइलों की पीढ़ी

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

उच्च-स्तरीय भाषा संकलक या तो एक निष्पादन योग्य मशीन कोड फ़ाइल या एक गैर-निष्पादन योग्य मशीन कोड - किसी प्रकार की वस्तु फ़ाइल है; सभा की भाषा सोर्स कोड पर समतुल्य प्रक्रिया को असेंबली कहा जाता है। निष्पादन योग्य बनाने के लिए कई ऑब्जेक्ट फ़ाइलें लिंकर (कंप्यूटिंग) हैं। ऑब्जेक्ट फ़ाइलें - निष्पादन योग्य या नहीं - आमतौर पर एक डिजिटल कंटेनर प्रारूप में संग्रहीत होती हैं, जैसे निष्पादन योग्य और लिंक करने योग्य प्रारूप (ईएलएफ) या पोर्टेबल निष्पादन योग्य (पीई) जो ऑपरेटिंग सिस्टम-विशिष्ट है।[3]यह जेनरेट किए गए मशीन कोड को संरचना देता है, उदाहरण के लिए इसे .text (निष्पादन योग्य कोड), .data (प्रारंभिक वैश्विक और स्थिर चर), और .rodata (रीड-ओनली डेटा, जैसे स्थिरांक और स्ट्रिंग्स) जैसे खंडों में विभाजित करना।

निष्पादन योग्य फाइलों में आमतौर पर एक रनटाइम सिस्टम भी शामिल होता है, जो रनटाइम लैंग्वेज फीचर्स (जैसे कार्य निर्धारण, एक्सेप्शन हेंडलिंग, कॉलिंग स्टैटिक कंस्ट्रक्टर्स और डिस्ट्रक्टर्स इत्यादि) को लागू करता है और ऑपरेटिंग सिस्टम के साथ बातचीत करता है, विशेष रूप से पासिंग तर्क, पर्यावरण और एक निकास स्थिति लौटाता है। , अन्य स्टार्टअप और शटडाउन सुविधाओं के साथ जैसे फ़ाइल संभाल जैसे संसाधन जारी करना। C के लिए, यह crt0 ऑब्जेक्ट में लिंक करके किया जाता है, जिसमें वास्तविक प्रवेश बिंदु होता है और क्रम पुस्तकालय को कॉल करके सेटअप और शटडाउन करता है।[4]

निष्पादन योग्य फ़ाइलों में सामान्य रूप से महत्वपूर्ण अतिरिक्त मशीन कोड होते हैं जो विशिष्ट स्रोत कोड से सीधे उत्पन्न होते हैं। कुछ मामलों में, इसे छोड़ना वांछनीय है, उदाहरण के लिए एम्बेडेड सिस्टम के विकास के लिए, या केवल यह समझने के लिए कि संकलन, लिंकिंग और लोडिंग कैसे काम करता है। सी में, यह सामान्य रनटाइम को छोड़ कर किया जा सकता है, और इसके बजाय एक लिंकर स्क्रिप्ट को स्पष्ट रूप से निर्दिष्ट किया जा सकता है, जो प्रवेश बिंदु उत्पन्न करता है और स्टार्टअप और शटडाउन को संभालता है, जैसे कॉल करना main अंत में कर्नेल को बाहर निकलने की स्थिति शुरू करने और वापस करने के लिए।[5]


निष्पादन

सिस्टम (जैसे एक ऑपरेटिंग सिस्टम, फर्मवेयर, या बूट लोडर) द्वारा निष्पादित करने के लिए, एक निष्पादन योग्य फ़ाइल को सिस्टम के अनुप्रयोग बाइनरी इंटरफ़ेस (एबीआई) के अनुरूप होना चाहिए।[6]सरल इंटरफेस में, फ़ाइल को स्मृति में लोड करके और पता स्थान की शुरुआत में कूदकर और वहां से निष्पादित करके निष्पादित किया जाता है। अधिक जटिल इंटरफेस में, निष्पादन योग्य फ़ाइलों में अतिरिक्त मेटाडेटा होता है जो एक अलग प्रवेश बिंदु निर्दिष्ट करता है। उदाहरण के लिए, ईएलएफ में, प्रवेश बिंदु शीर्षलेख में निर्दिष्ट किया गया है e_entry फ़ील्ड, जो (वर्चुअल) मेमोरी एड्रेस निर्दिष्ट करता है जिस पर निष्पादन शुरू करना है। जीसीसी (जीएनयू कंपाइलर संग्रह) में यह फ़ील्ड लिंकर द्वारा सेट किया गया है _start चिन्ह, प्रतीक।

यह भी देखें

संदर्भ

  1. "executable". Merriam-Webster's Online Dictionary. Merriam-Webster. Retrieved 2008-07-19.
  2. "Machine Instructions". GeeksforGeeks. 2015-11-03. Retrieved 2019-09-18.
  3. "Chapter 4: Object Files". refspecs.linuxbase.org. Retrieved 2019-09-18.
  4. Fisher, Tim. "List of Executable File Extensions". lifewire.com. Retrieved 2019-09-18.
  5. McKellar, Jessica (2010-03-16). "Hello from a libc-free world! (Part 1)".
  6. Boelen, Michael (2019-05-15). "The 101 of ELF files on Linux: Understanding and Analysis - Linux..." Linux Audit. Retrieved 2019-09-18.


इस पेज में लापता आंतरिक लिंक की सूची

  • सेंट्रल प्रोसेसिंग यूनिट
  • उच्च स्तरीय भाषा
  • बाहर निकलने की स्थिति
  • जीएनयू संकलक संग्रह

बाहरी संबंध