स्थान पर निष्पादित (एक्सक्यूट इन प्लेस): Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{redirect|XIP| | {{redirect|XIP|फ़ाइल एक्सटेंशन|.XIP|the ISO 639 code xip|शिपिबो भाषा}} | ||
[[कंप्यूटर विज्ञान]] में, | [[कंप्यूटर विज्ञान]] में, '''स्थान पर निष्पादित''' ('''एक्सक्यूट इन प्लेस''') ('''एक्सआईपी''') प्रोग्राम को [[ रैंडम एक्सेस मेमोरी ]] में कॉपी करने के अतिरिक्त सीधे दीर्घकालिक संचय से क्रियान्वित करने की एक विधि है। यह आवश्यक मेमोरी की कुल मात्रा को कम करने के लिए साझा मेमोरी का उपयोग करने का एक विस्तार है। | ||
इसका सामान्य प्रभाव यह है कि प्रोग्राम टेक्स्ट लिखने योग्य मेमोरी का उपभोग नहीं करता है, इसे डायनेमिक डेटा के लिए सहेजता है, और | इसका सामान्य प्रभाव यह है कि प्रोग्राम टेक्स्ट लिखने योग्य मेमोरी का उपभोग नहीं करता है, इसे डायनेमिक डेटा के लिए सहेजता है,और प्रोग्राम के सभी उदाहरण एक ही कॉपी से चलाए जाते हैं। | ||
इसके लिए काम करने के लिए, कई मानदंडों को पूरा करना | इसके लिए काम करने के लिए, कई मानदंडों को पूरा करना होता है: | ||
* | * संचय को [[सेंट्रल प्रोसेसिंग यूनिट]] को नियमित मेमोरी (या एक अनुकूली परत उपस्थित होना चाहिए) के समान इंटरफ़ेस प्रदान करना चाहिए। | ||
* इस इंटरफ़ेस को [[रैंडम एक्सेस]] | * इस इंटरफ़ेस को [[रैंडम एक्सेस]] प्रारूप के साथ पर्याप्त रूप से तेज़ रीड ऑपरेशंस प्रदान करना चाहिए। | ||
* [[फाइल सिस्टम]], यदि एक का उपयोग किया जाता है, तो उपयुक्त मैपिंग फ़ंक्शन को प्रदर्शित करने की आवश्यकता होती है। | * [[फाइल सिस्टम|फाइल प्रणाली]], यदि एक का उपयोग किया जाता है, तो उपयुक्त मैपिंग फ़ंक्शन को प्रदर्शित करने की आवश्यकता होती है। | ||
* प्रोग्राम को या तो [[लिंकर (कंप्यूटिंग)]] होना चाहिए | * प्रोग्राम को या तो [[लिंकर (कंप्यूटिंग)]] होना चाहिए जिससे पता चल सके कि संचय प्रणाली में दिखाई देता है या [[स्थिति-स्वतंत्र कोड]] होना चाहिए। | ||
* | * प्रोग्राम को लोड की गई छवि के अन्दर डेटा को संशोधित नहीं करना चाहिए। | ||
भंडारण आवश्यकताओं को | भंडारण आवश्यकताओं को सामान्यतः एनओआर फ्लैश मेमोरी या [[EEPROM|इइपीरोम]] का उपयोग करके पूरा किया जाता है, जिसे रीड ऑपरेशंस के लिए अलग-अलग शब्दों के रूप में संबोधित किया जा सकता है, चूंकि यह अधिकांश सेटअपों में सामान्य प्रणाली रैम की तुलना में कुछ धीमा है। | ||
==XIP बूट लोड के दौरान== | ==XIP बूट लोड के दौरान== | ||
सामान्यतः, प्रथम चरण बूट लोडर एक एक्सआईपी प्रोग्राम है जो उस पते पर चलने के लिए जुड़ा हुआ है जिस पर फ्लैश चिप (एस) को पावर-अप पर मैप किया जाता है और इसमें प्रणाली रैम स्थापित करने के लिए एक न्यूनतम प्रोग्राम होता है (जो घटकों पर निर्भर करता है) व्यक्तिगत बोर्डों पर उपयोग किया जाता है और इसे पर्याप्त रूप से सामान्यीकृत नहीं किया जा सकता है जिससे उचित अनुक्रम को प्रोसेसर हार्डवेयर में एम्बेड किया जा सके) और फिर दूसरे चरण के बूटलोडर या OS [[कर्नेल (ऑपरेटिंग सिस्टम)|कर्नेल (ऑपरेटिंग प्रणाली)]] को RAM में लोड करता है। | |||
इस आरंभीकरण के दौरान, लिखने योग्य मेमोरी उपलब्ध नहीं हो सकती है, इसलिए सभी संगणनाएं प्रोसेसर रजिस्टरों के भीतर की जानी चाहिए। इस कारण से, पहले चरण के बूट लोडर असेंबली भाषा में लिखे जाते हैं और केवल अगले प्रोग्राम के लिए सामान्य निष्पादन वातावरण प्रदान करने के लिए न्यूनतम करते हैं। कुछ प्रोसेसर या तो चिप में थोड़ी मात्रा में SRAM एम्बेड करते हैं,<ref>Samsung S3C2416X have 64kB embedded SRAM available on the system bus</ref> या RAM के रूप में ऑनबोर्ड कैश मेमोरी का उपयोग करने की अनुमति दें,<ref>Broadcom BCM2835 uses its Level 2 Cache as boot loader RAM before SDRAM is initialized</ref> उच्च स्तरीय भाषा का उपयोग करके इस प्रथम चरण के बूट लोडर को लिखने में आसान बनाने के लिए। | इस आरंभीकरण के दौरान, लिखने योग्य मेमोरी उपलब्ध नहीं हो सकती है, इसलिए सभी संगणनाएं प्रोसेसर रजिस्टरों के भीतर की जानी चाहिए। इस कारण से, पहले चरण के बूट लोडर असेंबली भाषा में लिखे जाते हैं और केवल अगले प्रोग्राम के लिए सामान्य निष्पादन वातावरण प्रदान करने के लिए न्यूनतम करते हैं। कुछ प्रोसेसर या तो चिप में थोड़ी मात्रा में SRAM एम्बेड करते हैं,<ref>Samsung S3C2416X have 64kB embedded SRAM available on the system bus</ref> या RAM के रूप में ऑनबोर्ड कैश मेमोरी का उपयोग करने की अनुमति दें,<ref>Broadcom BCM2835 uses its Level 2 Cache as boot loader RAM before SDRAM is initialized</ref> उच्च स्तरीय भाषा का उपयोग करके इस प्रथम चरण के बूट लोडर को लिखने में आसान बनाने के लिए। | ||
कर्नेल या बूटलोडर के लिए, [[पता स्थान]] | कर्नेल या बूटलोडर के लिए, [[पता स्थान]] सामान्यतः आंतरिक रूप से असाइन किया जाता है, इसलिए उनके लिए XIP का उपयोग करने के लिए, यह लिंकर को अलग-अलग पता श्रेणियों में अपरिवर्तनीय और परिवर्तनीय डेटा रखने के लिए निर्देश देने के लिए पर्याप्त है और संशोधित डेटा की प्रतिलिपि बनाने के लिए एक तंत्र प्रदान करता है। किसी भी कोड के चलने से पहले लिखने योग्य मेमोरी में जो यह मानता है कि डेटा को सामान्य रूप से एक्सेस किया जा सकता है। यह पिछले चरण के भाग के रूप में, या प्रोग्राम की शुरुआत में एक छोटे कोड खंड के भीतर किया जा सकता है। | ||
यदि पता स्थान बाहरी रूप से असाइन किया गया है, जैसे कि एक | यदि पता स्थान बाहरी रूप से असाइन किया गया है, जैसे कि एक प्रणाली पर चलने वाले एप्लिकेशन प्रोग्राम में जो [[ आभासी मेमोरी ]] प्रदान नहीं करता है, तो कंपाइलर को डेटा क्षेत्र की एक निजी प्रति के लिए एक पॉइंटर को ऑफ़सेट जोड़कर सभी परिवर्तनीय डेटा तक पहुंचने की आवश्यकता होती है। इस स्थिति में, बाहरी लोडर विशिष्ट मेमोरी क्षेत्रों को स्थापित करने के लिए ज़िम्मेदार है। | ||
मुख्य मेमोरी को इनिशियलाइज़ करने के लिए [[BIOS]] और [[UEFI]] XIP का उपयोग करते हैं। | मुख्य मेमोरी को इनिशियलाइज़ करने के लिए [[BIOS]] और [[UEFI]] XIP का उपयोग करते हैं। | ||
==XIP फ़ाइल | ==XIP फ़ाइल प्रणाली के रूप में== | ||
XIP फाइल | XIP फाइल प्रणाली पर आवश्यकताएं रखता है जिन्हें पूरा करना अक्सर मुश्किल होता है। पृष्ठ तालिका के बिना प्रणाली में, पूरी फ़ाइल को लगातार बाइट्स में संग्रहीत किया जाना चाहिए और खंडित नहीं होना चाहिए, जबकि फ्लैश आधारित फाइल प्रणाली अक्सर फ्लैश चिप के क्षेत्रों में डेटा वितरित करने का लक्ष्य रखते हैं, जिनमें कम से कम चक्र मिटाए जाते हैं और चिप [[समतलन पुराना होना]] पहनते हैं। , इसके जीवनकाल को लम्बा करना। | ||
इन सभी जटिलताओं और स्पीड ट्रेडऑफ़ का मतलब है कि XIP का उपयोग | इन सभी जटिलताओं और स्पीड ट्रेडऑफ़ का मतलब है कि XIP का उपयोग सामान्यतः केवल पहले चरण के बूटलोडर्स के लिए किया जाता है या जब RAM की आपूर्ति बहुत कम होती है। विशेष रूप से, दूसरी से चौथी पीढ़ी के वीडियो गेम कंसोल [[रॉम कारतूस]] के पते और डेटा बस को कंसोल के पते से जोड़ते हैं,<ref name="Balaska">{{cite patent | ||
| country = US | | country = US | ||
| number = 4485457A | | number = 4485457A | ||
Line 38: | Line 38: | ||
}}</ref> जो (उदाहरण के लिए) अटारी 2600 हार्डवेयर#तकनीकी विनिर्देशों को इसके [[एमओएस टेक्नोलॉजी 6532]] में केवल 128 बाइट्स रैम के साथ काम करने देता है। | }}</ref> जो (उदाहरण के लिए) अटारी 2600 हार्डवेयर#तकनीकी विनिर्देशों को इसके [[एमओएस टेक्नोलॉजी 6532]] में केवल 128 बाइट्स रैम के साथ काम करने देता है। | ||
लिनक्स के लिए एक अपेक्षाकृत नया फाइल | लिनक्स के लिए एक अपेक्षाकृत नया फाइल प्रणाली, जिसे [[AXFS]] (एडवांस्ड XIP फाइल प्रणाली) कहा जाता है, का उद्देश्य XIP से जुड़ी कुछ कमियों को दूर करना है, विशेष रूप से [[उपयोगकर्ता स्थान और कर्नेल स्थान]] | यूजर-स्पेस एप्लिकेशन के इन-प्लेस निष्पादन के संबंध में। यह उदाहरण के लिए एक निष्पादन योग्य बाइनरी फ़ाइल को XIP क्षेत्रों में विभाजित करना संभव बनाता है, इस प्रकार ऊपर वर्णित विखंडन के प्रतिबंध से बचा जाता है। | ||
एक [[नेटबीएसडी]] कार्यान्वयन भी विकास के अधीन है।<ref>{{cite web | एक [[नेटबीएसडी]] कार्यान्वयन भी विकास के अधीन है।<ref>{{cite web | ||
Line 48: | Line 48: | ||
== यह भी देखें == | == यह भी देखें == | ||
* फाइल | * फाइल प्रणाली की तुलना | ||
* रोम कारतूस | * रोम कारतूस | ||
* [[फर्मवेयर]] | * [[फर्मवेयर]] |
Revision as of 08:12, 19 June 2023
कंप्यूटर विज्ञान में, स्थान पर निष्पादित (एक्सक्यूट इन प्लेस) (एक्सआईपी) प्रोग्राम को रैंडम एक्सेस मेमोरी में कॉपी करने के अतिरिक्त सीधे दीर्घकालिक संचय से क्रियान्वित करने की एक विधि है। यह आवश्यक मेमोरी की कुल मात्रा को कम करने के लिए साझा मेमोरी का उपयोग करने का एक विस्तार है।
इसका सामान्य प्रभाव यह है कि प्रोग्राम टेक्स्ट लिखने योग्य मेमोरी का उपभोग नहीं करता है, इसे डायनेमिक डेटा के लिए सहेजता है,और प्रोग्राम के सभी उदाहरण एक ही कॉपी से चलाए जाते हैं।
इसके लिए काम करने के लिए, कई मानदंडों को पूरा करना होता है:
- संचय को सेंट्रल प्रोसेसिंग यूनिट को नियमित मेमोरी (या एक अनुकूली परत उपस्थित होना चाहिए) के समान इंटरफ़ेस प्रदान करना चाहिए।
- इस इंटरफ़ेस को रैंडम एक्सेस प्रारूप के साथ पर्याप्त रूप से तेज़ रीड ऑपरेशंस प्रदान करना चाहिए।
- फाइल प्रणाली, यदि एक का उपयोग किया जाता है, तो उपयुक्त मैपिंग फ़ंक्शन को प्रदर्शित करने की आवश्यकता होती है।
- प्रोग्राम को या तो लिंकर (कंप्यूटिंग) होना चाहिए जिससे पता चल सके कि संचय प्रणाली में दिखाई देता है या स्थिति-स्वतंत्र कोड होना चाहिए।
- प्रोग्राम को लोड की गई छवि के अन्दर डेटा को संशोधित नहीं करना चाहिए।
भंडारण आवश्यकताओं को सामान्यतः एनओआर फ्लैश मेमोरी या इइपीरोम का उपयोग करके पूरा किया जाता है, जिसे रीड ऑपरेशंस के लिए अलग-अलग शब्दों के रूप में संबोधित किया जा सकता है, चूंकि यह अधिकांश सेटअपों में सामान्य प्रणाली रैम की तुलना में कुछ धीमा है।
XIP बूट लोड के दौरान
सामान्यतः, प्रथम चरण बूट लोडर एक एक्सआईपी प्रोग्राम है जो उस पते पर चलने के लिए जुड़ा हुआ है जिस पर फ्लैश चिप (एस) को पावर-अप पर मैप किया जाता है और इसमें प्रणाली रैम स्थापित करने के लिए एक न्यूनतम प्रोग्राम होता है (जो घटकों पर निर्भर करता है) व्यक्तिगत बोर्डों पर उपयोग किया जाता है और इसे पर्याप्त रूप से सामान्यीकृत नहीं किया जा सकता है जिससे उचित अनुक्रम को प्रोसेसर हार्डवेयर में एम्बेड किया जा सके) और फिर दूसरे चरण के बूटलोडर या OS कर्नेल (ऑपरेटिंग प्रणाली) को RAM में लोड करता है।
इस आरंभीकरण के दौरान, लिखने योग्य मेमोरी उपलब्ध नहीं हो सकती है, इसलिए सभी संगणनाएं प्रोसेसर रजिस्टरों के भीतर की जानी चाहिए। इस कारण से, पहले चरण के बूट लोडर असेंबली भाषा में लिखे जाते हैं और केवल अगले प्रोग्राम के लिए सामान्य निष्पादन वातावरण प्रदान करने के लिए न्यूनतम करते हैं। कुछ प्रोसेसर या तो चिप में थोड़ी मात्रा में SRAM एम्बेड करते हैं,[1] या RAM के रूप में ऑनबोर्ड कैश मेमोरी का उपयोग करने की अनुमति दें,[2] उच्च स्तरीय भाषा का उपयोग करके इस प्रथम चरण के बूट लोडर को लिखने में आसान बनाने के लिए।
कर्नेल या बूटलोडर के लिए, पता स्थान सामान्यतः आंतरिक रूप से असाइन किया जाता है, इसलिए उनके लिए XIP का उपयोग करने के लिए, यह लिंकर को अलग-अलग पता श्रेणियों में अपरिवर्तनीय और परिवर्तनीय डेटा रखने के लिए निर्देश देने के लिए पर्याप्त है और संशोधित डेटा की प्रतिलिपि बनाने के लिए एक तंत्र प्रदान करता है। किसी भी कोड के चलने से पहले लिखने योग्य मेमोरी में जो यह मानता है कि डेटा को सामान्य रूप से एक्सेस किया जा सकता है। यह पिछले चरण के भाग के रूप में, या प्रोग्राम की शुरुआत में एक छोटे कोड खंड के भीतर किया जा सकता है।
यदि पता स्थान बाहरी रूप से असाइन किया गया है, जैसे कि एक प्रणाली पर चलने वाले एप्लिकेशन प्रोग्राम में जो आभासी मेमोरी प्रदान नहीं करता है, तो कंपाइलर को डेटा क्षेत्र की एक निजी प्रति के लिए एक पॉइंटर को ऑफ़सेट जोड़कर सभी परिवर्तनीय डेटा तक पहुंचने की आवश्यकता होती है। इस स्थिति में, बाहरी लोडर विशिष्ट मेमोरी क्षेत्रों को स्थापित करने के लिए ज़िम्मेदार है।
मुख्य मेमोरी को इनिशियलाइज़ करने के लिए BIOS और UEFI XIP का उपयोग करते हैं।
XIP फ़ाइल प्रणाली के रूप में
XIP फाइल प्रणाली पर आवश्यकताएं रखता है जिन्हें पूरा करना अक्सर मुश्किल होता है। पृष्ठ तालिका के बिना प्रणाली में, पूरी फ़ाइल को लगातार बाइट्स में संग्रहीत किया जाना चाहिए और खंडित नहीं होना चाहिए, जबकि फ्लैश आधारित फाइल प्रणाली अक्सर फ्लैश चिप के क्षेत्रों में डेटा वितरित करने का लक्ष्य रखते हैं, जिनमें कम से कम चक्र मिटाए जाते हैं और चिप समतलन पुराना होना पहनते हैं। , इसके जीवनकाल को लम्बा करना।
इन सभी जटिलताओं और स्पीड ट्रेडऑफ़ का मतलब है कि XIP का उपयोग सामान्यतः केवल पहले चरण के बूटलोडर्स के लिए किया जाता है या जब RAM की आपूर्ति बहुत कम होती है। विशेष रूप से, दूसरी से चौथी पीढ़ी के वीडियो गेम कंसोल रॉम कारतूस के पते और डेटा बस को कंसोल के पते से जोड़ते हैं,[3] जो (उदाहरण के लिए) अटारी 2600 हार्डवेयर#तकनीकी विनिर्देशों को इसके एमओएस टेक्नोलॉजी 6532 में केवल 128 बाइट्स रैम के साथ काम करने देता है।
लिनक्स के लिए एक अपेक्षाकृत नया फाइल प्रणाली, जिसे AXFS (एडवांस्ड XIP फाइल प्रणाली) कहा जाता है, का उद्देश्य XIP से जुड़ी कुछ कमियों को दूर करना है, विशेष रूप से उपयोगकर्ता स्थान और कर्नेल स्थान | यूजर-स्पेस एप्लिकेशन के इन-प्लेस निष्पादन के संबंध में। यह उदाहरण के लिए एक निष्पादन योग्य बाइनरी फ़ाइल को XIP क्षेत्रों में विभाजित करना संभव बनाता है, इस प्रकार ऊपर वर्णित विखंडन के प्रतिबंध से बचा जाता है।
एक नेटबीएसडी कार्यान्वयन भी विकास के अधीन है।[4]
यह भी देखें
- फाइल प्रणाली की तुलना
- रोम कारतूस
- फर्मवेयर
- एएक्सएफएस
संदर्भ
- ↑ Samsung S3C2416X have 64kB embedded SRAM available on the system bus
- ↑ Broadcom BCM2835 uses its Level 2 Cache as boot loader RAM before SDRAM is initialized
- ↑ US patent 4485457A, Richard K. Balaska, Robert L. Hunter, and Scott S. Robinson, "Memory system including RAM and page switchable ROM", issued 1984-11-27, assigned to CBS Inc.
- ↑ Uebayashi, Masao (2010-04-05). "eXecute-In-Place (XIP) Support for NetBSD" (PDF). BSDCan.
बाहरी संबंध
- Bird, Tim R. (2004). "Methods to Improve Bootup Time in Linux" (PDF). Ottawa Linux Symposium.
- Hulbert, Jared (2008). "Introducing the Advanced XIP File System" (PDF). Ottawa Linux Symposium.
- Wilshire, Phil (2002-08-28). "eXecute In Place (XIP) overview". uCdot. Archived from the original on 2007-10-20. Retrieved 2007-09-25.
- Wellhöfer, Sören (2009-09-17). "Application eXecute-In-Place (XIP) with Linux and AXFS". Retrieved 2009-09-17.
- "Configure Linux for XIP (Execution In Place) on PowerPC". DENX Software Engineering.
- "Kernel XIP". Embedded Linux Wiki.
- "Linux Application XIP". Embedded Linux Wiki.
- "Execute in Place file system driver - xip2fs". Linux for S/390.