2010-08-26 20 views
5

क्या कोई मुझे लिनक्स और विंडोज के लिए इस्तेमाल किए गए वर्चुअल मेमोरी मैप्स पर कुछ दस्तावेज इंगित कर सकता है। इसके द्वारा मेरा मतलब है कि आभासी पते, कोड, लिखने योग्य स्थिर डेटा, ढेर और ढेर (अन्य कर्नेल बिट्स के साथ) सामान्य रूप से एक सामान्य प्रक्रिया में रखा जाएगा?प्रोसेस मेमोरी मैप (लिनक्स विंडोज)

उत्तर

2

शायद लिनक्स पर प्रक्रिया मेमोरी मैप प्राप्त करने का सबसे अच्छा तरीका/proc // मानचित्र फ़ाइल को देखना है। कोई स्पष्ट रूप से देख सकता है कि प्रत्येक निष्पादन योग्य या साझा ऑब्जेक्ट के लिए निष्पादन योग्य, स्थिर स्थिर डेटा और लिखने योग्य स्थिर डेटा के लिए अलग-अलग अनुभाग हैं। इनमें से प्रत्येक अनुभाग अपने स्वयं के मेमोरी पेज में मौजूद है जो लिनक्स को एक्जिक्यूटिव के बीच अनुभाग साझा करने और कॉपी-ऑन-राइट जैसी सुविधाओं को लागू करने की अनुमति देता है।

इसके अतिरिक्त स्टैक को समर्पित एक अनुभाग और ढेर को समर्पित एक अनुभाग है। कुछ अज्ञात खंड भी हो सकते हैं।

2

एएसएलआर के आगमन के बाद से, यह ज्यादातर यादृच्छिक आभासी पते पर है।

+0

क्या यह वास्तविक ब्लॉक खंड व्यवस्थित हैं या कोड ब्लॉक में विशेष रूप से स्थानांतरित करने योग्य फ़ंक्शंस कैसे व्यवस्थित किए जाते हैं? – doron

+0

यह मेमोरी मैपिंग है, जो मोटे तौर पर कोड, डेटा और स्टैक सेगमेंट से मेल खाता है। – ninjalj

1

Address Space Layout Randomisation (ALSR) पर विकिपीडिया प्रविष्टि वर्णन करती है कि पता स्थान का यादृच्छिक आवंटन विभिन्न हमलों के खिलाफ कैसे सुरक्षा करता है, और डेटा और कोड के बीच महत्व कैसे भिन्न होता है।

यह लिनक्स के यादृच्छिकता के डिफ़ॉल्ट कमजोर स्तर दोनों का वर्णन करता है, और एक पैच जिसे आप इसे मजबूत करने के लिए उपयोग कर सकते हैं।

यह भी वर्णन करता है कि विंडोज के कौन से संस्करण इसे ऑफ़र करते हैं, और यह केवल कुछ कोड & निष्पादन योग्य पर लागू होता है।

+0

यह विस्तार से काफी कम है। यदि संभव हो तो मैं पतों के साथ आरेखों पर उत्सुक हूं। – doron

+0

यदि आप पुराने दिनों की तरह मेमोरी मैप की तलाश में हैं, उदाहरण के लिए, कमोडोर 64 (जैसे यह एक http://sta.c64.org/cbm64mem.html), मुझे लगता है कि आप बाहर जा रहे हैं नसीब की। मुझे नहीं लगता कि यह इस तरह काम करता है। – Oddthinking

संबंधित मुद्दे