2011-04-15 8 views
12

यह एक डुप्लिकेट सवाल हो सकता है। मैं जानना चाहता हूं कि विंडोज़ प्रक्रिया का मेमोरी मैप कैसा दिखता है? मैं विवरण की तलाश में हूं। कृपया ब्लॉग, लेख और अन्य प्रासंगिक साहित्य के लिए लिंक प्रदान करें।विंडोज़ प्रक्रिया का मेमोरी मैप कैसा दिखता है?

+3

विंडोज आंतरिक पुस्तक इस तरह की जानकारी का एक अच्छा स्रोत है। आप एक विशिष्ट प्रक्रिया के लेआउट को देखने के लिए VMMap का भी उपयोग कर सकते हैं। – Luke

+0

@Luke यह एक अच्छा सुझाव है (वीएमएपी), आपको इसे एक जवाब में रखना चाहिए। यह आपको पता स्थान का एक अच्छा रंग कोडित प्रतिनिधित्व देता है। विंडोज़ आंतरिक भी एक अच्छा सुझाव है। –

उत्तर

8

मैं हमेशा सिद्धांत को पढ़ने के बजाय चीजों को देखने में सक्षम होना पसंद करता हूं। यह this blog post के अनुसार, यह पता चला है कि यदि आप इसे चलाने के बावजूद विंडबग का उपयोग करके कोई प्रोग्राम खोलते हैं, तो यह अभी भी पता स्थान पर मैप किया जाता है जैसे कि यह था। इस प्रकार, आपके disassembly खिड़की लाक्षणिक क्या कोड के मामले में उन पतों पर है आपको पता चलता है (इन सटीक पते पर अपने कोड को लोड करने की गारंटी नहीं):

WinDbg working

बेशक

, आप उन पतों धन्यवाद गारंटी नहीं दे सकते एएसएलआर के लिए, लेकिन यह आपको एक विचार देता है/आपको लगता है कि: स्मृति पते भी कोड हैं। कोड और मेमोरी उसी (वर्चुअल) स्पेस में संग्रहीत है, Von Neumann आर्किटेक्चर के अनुसार जो अधिकांश आधुनिक कंप्यूटर लागू होते हैं। दुर्भाग्य से भी कोई ढेर नहीं है, ढेर आदि आप स्थानांतरित नहीं कर सकते हैं और उन पर नजर डालें।

यह blog post from Microsoft आपको वर्चुअल एड्रेस स्पेस का उच्च स्तरीय अवलोकन देता है। जैसा कि आप देख सकते हैं, इसका आधा ऑपरेटिंग सिस्टम द्वारा उपयोग के लिए आरक्षित है और दूसरा आधा आप जो कुछ भी कर सकते हैं (कोड, malloc कॉल, स्टैक आवंटन इत्यादि) भर सकते हैं।

उपयोगकर्ता पक्ष पर पता स्थान कैसे काम करता है, इस संदर्भ में this diagram ने मुझे इसे समझने में मदद की। यह in this question से जुड़ा हुआ है जो विभिन्न संभावित मानचित्रों के रूप में सभ्य लिंक की एक श्रृंखला प्रदान करता है। हालांकि याद रखें, स्मृति में लेआउट भागों के संदर्भ में अलग होगा।

याद रखने का महत्वपूर्ण बिंदु यह है कि यह सब, प्रोग्राम, डेटा, ढेर, ढेर, कर्नेल सामान, स्मृति पते की एक बड़ी अनुक्रमिक श्रृंखला है, हालांकि ये वास्तव में वास्तविक स्मृति पते में अनुवाद कर सकते हैं या नहीं।

जब भी आप इसमें हों, तो आपको डिस्क पर निष्पादन योग्य दिखाई देने में भी रुचि हो सकती है। This article और this article particularly कुछ पीई फ़ाइल प्रारूप के गहराई से विश्लेषण प्रदान करते हैं। बाद के आलेख में थोड़ा आरेख भी है जो दिखाता है कि डेटा कैसे mapap'd है।

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