पर प्रक्रिया की प्रक्रिया को निष्पादित करने के लिए लिखना क्या होगा यदि प्रक्रिया बी लिखता है (एक सामान्य लेखन() syscall के साथ) कुछ डेटा प्रक्रिया की छवि में कुछ डेटा जबकि उत्तरार्द्ध निष्पादित हो रहा है? क्या यह भ्रष्टाचार का कारण नहीं होगा कि ए प्रक्रिया निष्पादित कर रही है?लिनक्स
मैं लिनक्स के लिए नया हूं। जहां तक मैं समझता हूं, यूनिक्स ऐतिहासिक रूप से अनिवार्य फ़ाइल ताले लगाता है (जैसे विंडोज करता है)। तो लेखन काफी संभव है।
मैंने बिना किसी परिणाम के वेब की खोज की है। जब मैं इस सवाल से अपने लिनक्स-अनुभवी सह-श्रमिकों से पूछता हूं, तो वे सभी जवाब देते हैं कि प्रक्रिया ए में इसकी छवि पूरी तरह से स्मृति में है।
फिर भी, मैंने जो पढ़ा है, उससे कर्नेल आसानी से कुछ पेजों को स्मृति फ़ाइल से स्मृति फ़ाइल में स्वैप कर सकता है, कहें, जब कम स्मृति स्थितियों पर बल दिया जाता है। इसलिए, डिस्क पर रहते समय, कुछ पेज संभावित रूप से किसी अन्य लेखक प्रक्रिया द्वारा दूषित हो सकते हैं; बाद में, उन्हें वापस रैम में बदल दिया जा सकता है और निष्पादित किया जा सकता है।
चेक मेरा उत्तर देखें: http://stackoverflow.com/questions/4453781/what-happens-when-you-overwrite-a-memory-mapped-executable – Antoine