क्या लिनक्स कर्नेल में मेमोरी मैनेजमेंट पेजिंग या सेगमेंटेशन या दोनों का उपयोग करके किया जाता है?
क्या लिनक्स कर्नेल में मेमोरी मैनेजमेंट पेजिंग या सेगमेंटेशन या दोनों का उपयोग करके किया जाता है?
जवाबों:
लिनक्स दोनों का उपयोग करता है। यह अलग-अलग एक्सेस अधिकार देते समय सभी उपलब्ध एड्रेस स्पेस को मैप करने के लिए सेगमेंटेशन का उपयोग करता है: मूल रूप से कर्नेल और यूजर स्पेस व्यू। आप कुछ उदाहरणों के लिए KERNEL_DS (कर्नेल डेटा सेगमेंट) के लिए लिनक्स स्रोत कोड को प्राप्त कर सकते हैं।
पेजिंग तब वर्चुअल मेमोरी को लागू करने के लिए उपयोग किया जाता है (कर्नेल में "स्ट्रक्चर gdt_page" के लिए जीआरपी, शुरुआती बिंदु के लिए)
लिनक्स के तहत मेमोरी प्रबंधन विशेष रूप से पेजिंग द्वारा काम करता है।
लिनक्स "छोटे" (आमतौर पर 4kB) और "बड़े" (2M) दोनों पृष्ठों का समर्थन करता है। आपके द्वारा कुछ भी जानने या करने के बिना पूर्व "बस काम", और बाद वाले को विशेष उपचार की आवश्यकता है (बूट समय पर आरक्षित किया जाना चाहिए और एक विशेष उपकरण के माध्यम से मैप किया जाना चाहिए)।
एकमात्र संदर्भ जिसमें लिनक्स के तहत "खंड" दिखाई देता है वह है brk () syscall जिसका उपयोग किसी प्रक्रिया के डेटा खंड को बढ़ाने के लिए किया जाता है (आपको आमतौर पर इसकी आवश्यकता नहीं होगी, मॉलोक आपको इसकी परवाह किए बिना करता है)। लेकिन या तो, स्मृति पृष्ठों में आती है और पृष्ठों में प्रबंधित होती है, और इसका x86 विभाजन से कोई लेना-देना नहीं है।