नहीं, चिपचिपा बिट सेट-यूआईडी या सेट-जीआईडी झंडे की तरह नहीं था। क्रेडेंशियल्स को संसाधित करने के लिए किसी भी परिवर्तन को प्रभावित नहीं किया।
स्टिकी बिट ने जो किया वह प्रोग्राम टेक्स्ट "स्टिकी" था। यह मूल रूप से एक मिथ्या नाम नहीं था।
बैकग्राउंड: प्रोग्राम इमेज सेक्शन और शेयर्ड टेक्स्ट
संक्षेप में, निष्पादन योग्य फ़ाइल स्वरूपों (जो कर सकते हैं, और भरी हुई किताबें) के विवरण में बहुत अधिक गहराई में आए बिना: प्रोग्राम छवि फ़ाइलों के कुछ हिस्सों को प्रोग्राम चलाने के लिए सीधे मेमोरी में लोड किया जाता है जिसमें मशीन कोड, स्थिरांक, स्टार्टअप शामिल हैं शून्य-आरंभीकृत और असिंचित चर के लिए रिक्त स्थान (एक शून्य या दूसरे रूप में) (एक या दूसरे रूप में) रिक्त स्थान के मान।
इन्हें "अनुभाग" के रूप में जाना जाता संग्रह में वर्गीकृत किया गया है और उनके पारंपरिक नाम हैं। मशीन कोड और (कभी-कभी) स्थिरांक एक प्रोग्राम छवि के "टेक्स्ट" खंड के रूप में जाना जाता है। गैर-शून्य-आरंभिक चर, इसी तरह, "डेटा" अनुभाग है; और शून्य-आरंभीकृत और असिंचित चर "bss" (एक ऐसा नाम है जिसका अपने आप में एक पूरा लोककथा इतिहास है)।
जब एक प्रक्रिया में एक प्रोग्राम निष्पादन योग्य छवि फ़ाइल लोड होती है, तो विभिन्न भागों - पाठ, डेटा और bss - को छवि फ़ाइल की सामग्री से आरंभ किया जाता है।
"पाठ" अनुभाग के बारे में विशेष बात यह है कि मशीन कोड (और स्थिरांक) लगभग हमेशा नहीं लिखा जाता है। इसमें सभी निष्पादन प्रक्रिया की आभासी मेमोरी छवियों को साझा करने की क्षमता है जो उस निष्पादन योग्य छवि फ़ाइल को उनमें लोड किया गया था। सटीक परिदृश्य जिसमें प्रोग्राम टेक्स्ट को साझा किया जा सकता है, वह इस उत्तर के दायरे से बाहर है और इसमें लोडर फिक्सअप इडम्पोटेंस और एड्रेस स्पेस लेआउट पहचान जैसी चीजें शामिल हैं। लोग इस विषय के बारे में किताबें भी लिख सकते हैं और लिख भी सकते हैं। ☺
साझा पाठ कर्नेल द्वारा नियोजित एक अनुकूलन है। यह एक एकल रनिंग प्रोग्राम इमेज की प्रत्येक आवृत्ति की अपनी व्यक्तिगत मेमोरी इमेज की आवश्यकता को दूर करता है, सटीक भौतिक मशीन की एक ही कोड (और स्थिरांक) की कई प्रतियों के साथ कीमती भौतिक मेमोरी का उपभोग करता है।
चिपचिपा पाठ
लेकिन एक साझा पाठ की तुलना में बेहतर कर सकते हैं। जाहिर है, अगर वहाँ हमेशा कम से कम एक प्रक्रिया चल रही है जो एक विशेष साझा पाठ कार्यक्रम छवि का उपयोग कर रही है, तो कर्नेल को नई प्रक्रियाओं के वर्चुअल मेमोरी स्पेस को मौजूदा साझा पाठ खंड में संलग्न करने के लिए मिलता है जब कार्यक्रम का एक नया उदाहरण चलाया जाता है। मिड-साइज़ सिस्टम पर लगभग हमेशा एक उदाहरण (कहते हैं) /bin/login
या कहीं/bin/sh
चल रहा है , इसलिए लॉगिन प्रोग्राम या डिफ़ॉल्ट शेल के नए उदाहरण बस अपने टेक्स्ट सेगमेंट की भरी हुई प्रतियों के साथ संलग्न कर सकते हैं जो कर्नेल पहले से ही मेमोरी में लोड हो चुके हैं।
स्टिकी टेक्स्ट इस विचार को उन छवियों को प्रोग्राम करने के लिए विस्तारित करता है जो वर्तमान में कोई प्रक्रिया नहीं चल रही है । यदि निष्पादन योग्य छवि फ़ाइल को चिपचिपा पाठ के रूप में चिह्नित किया जाता है, तो कर्नेल अपने पाठ खंड को अंतिम प्रक्रिया के बाद उसके बाहर रखने के लिए इधर-उधर रखता है; इस उम्मीद में कि कार्यक्रम का एक और उदाहरण जल्द ही निष्पादित होगा, और सिर्फ खंड में वापस संलग्न कर सकता है।
प्रारंभिक यूनियनों में, लोड किए गए चिपचिपे टेक्स्ट सेगमेंट को स्वैप स्टोरेज के लिए स्वैप किया जाएगा, जब कोई प्रक्रिया उनसे जुड़ी नहीं थी। (बाद में यूनियनों ने इसके लिए स्वैप का उपयोग करना बंद कर दिया।) आपने शायद इसे सहेजे गए नाम से भी सुना होगा ।
बेशक, एक चिपचिपा पाठ बिट को एक प्रोग्राम छवि पर सेट करना कुछ ऐसा है जिसे देखभाल के साथ किया जाना है। इससे किन कार्यक्रमों को फायदा होता है यह इस बात पर निर्भर करता है कि मशीन का इस्तेमाल आम तौर पर किस लिए किया जाता है। और वर्तमान में अनासक्त पाठ खंड कर्नेल संसाधन लेते हैं, जिसका अर्थ है कि किसी भी प्रणाली में कितने व्यक्ति हो सकते हैं, इसके लिए एक व्यावहारिक सीमा है। तो यह आम तौर पर एक ऑपरेशन है जिसे सुपरसुसर विशेषाधिकारों की आवश्यकता होती है।
प्रयोग-हीनता
मान्यताओं का एक पूरा भार है, जो चिपचिपा पाठ के संचालन को रेखांकित करता है, कि बस किसी भी अधिक सच नहीं हैं। स्वैप से पूर्व-निर्मित सेगमेंट को पढ़ना वास्तविक निष्पादन योग्य छवि फ़ाइल से सरल मांग पेजिंग से अधिक तेज़ नहीं है। फ़ाइल सिस्टम प्रारूप यादृच्छिक (क्रमिक के विपरीत) रीडिंग पैटर्न के लिए बेहतर हो गए। मांग पेजिंग का आगमन चीजों को बदल देता है, क्योंकि एकीकृत कैश, गैर-बेरोजगार बाहरी फिक्सअप जैसी चीजें साझा लाइब्रेरी सर्च में अंतर के कारण होती हैं, और स्पेस लेआउट रैंडमाइजेशन को संबोधित करती हैं।
निष्पादन योग्य प्रोग्राम छवियों के लिए चिपचिपा पाठ बिट्स के दिन लंबे चले गए हैं। निष्पादन योग्य कार्यक्रम की छवियों के लिए एक स्पष्ट चिपचिपा पाठ मार्कर ध्वज को 1980 के दशक के मध्य में 4.3BSD के लेखकों द्वारा अप्रचलित माना गया था, उदाहरण के लिए।
आगे की पढाई
- मौरिस जे। बाख (1986)। UNIX ऑपरेटिंग सिस्टम का डिज़ाइन । शागिर्द कक्ष। आईएसबीएन 9780132017992