ऑपरेटिंग सिस्टम (मुख्य रूप से संदर्भ के रूप में लिनक्स के साथ) का अध्ययन करने में, कुछ ऐसे मुद्दे हैं जिन्हें मैंने अध्ययन की गई सामग्री में अच्छी तरह से समझाया नहीं है।आधुनिक ऑपरेटिंग सिस्टम में मेमोरी सेगमेंटेशन
मेमोरी में लोड किए गए प्रोग्राम अक्सर लिनक्स जैसे ऑपरेटिंग सिस्टम के संदर्भ में टेक्स्ट, डेटा, स्टैक इत्यादि के खंडों में विभाजित होने के रूप में वर्णित होते हैं, जहां वर्चुअल मेमोरी पूरी तरह से पेजिंग पर आधारित होती है। क्या यह मामला है कि यह सिर्फ कार्यक्रम है, न कि स्मृति खुद को जिसे सेगमेंट के रूप में जाना जाता है? यदि ऐसा है, तो मुझे शब्दावली उलझन में मिलती है।
मैंने देखा कि मॉलोक को लिनक्स में 'sbrk' का उपयोग करके कार्यान्वित किया जा सकता है जो डेटा सेगमेंट के आकार को बढ़ाता है। फिर, क्या यह 'डाटा सेगमेंट' सिर्फ स्मृति का एक क्षेत्र है जिसका उपयोग सम्मेलन द्वारा डेटा के लिए किया जाता है, न कि 'असली' सेगमेंट? (अतिरिक्त प्रश्न: 'sbrk' 'सेगमेंट' के आकार को कम करने में सक्षम नहीं प्रतीत होता है। क्या इसका मतलब यह है कि एक प्रक्रिया छोड़ने के अलावा ओएस को स्मृति जारी नहीं कर सकती है?)
मुझे भी रूचि है यह जानकर कि क्यों आधुनिक ऑपरेटिंग सिस्टम (पेजेड) सेगमेंटेशन का उपयोग नहीं कर रहे हैं। क्या यह कुछ प्रकार के हमलों को अपने स्वयं के संरक्षित सेगमेंट में रहने वाले कोड को रोक नहीं सकता है, जिससे सुरक्षा बढ़ रही है? दूसरी तरफ, क्या यह उदाहरण देगा जेआईटी संकलन असंभव/मुश्किल है?
उपरोक्त प्रश्नों के उत्तर "हां"/"नहीं" के अलावा, मुझे इस विषय पर किसी भी अंतर्दृष्टिपूर्ण विस्तार में रूचि है।
अग्रिम धन्यवाद।
भी 'brk', जो * * कम मूल्य के लिए कार्यक्रम को तोड़ने सेट कर सकते हैं नहीं है। और सेगमेंट * पृष्ठों में विभाजित हैं, और प्रत्येक पृष्ठ * वास्तव में केवल पढ़ने या ना-निष्पादित हो सकता है, और टेक्स्ट सेगमेंट और ro-data सेगमेंट आमतौर पर सेट किया जाएगा। –