यह एक डुप्लिकेट सवाल हो सकता है। मैं जानना चाहता हूं कि विंडोज़ प्रक्रिया का मेमोरी मैप कैसा दिखता है? मैं विवरण की तलाश में हूं। कृपया ब्लॉग, लेख और अन्य प्रासंगिक साहित्य के लिए लिंक प्रदान करें।विंडोज़ प्रक्रिया का मेमोरी मैप कैसा दिखता है?
उत्तर
मैं हमेशा सिद्धांत को पढ़ने के बजाय चीजों को देखने में सक्षम होना पसंद करता हूं। यह this blog post के अनुसार, यह पता चला है कि यदि आप इसे चलाने के बावजूद विंडबग का उपयोग करके कोई प्रोग्राम खोलते हैं, तो यह अभी भी पता स्थान पर मैप किया जाता है जैसे कि यह था। इस प्रकार, आपके disassembly खिड़की लाक्षणिक क्या कोड के मामले में उन पतों पर है आपको पता चलता है (इन सटीक पते पर अपने कोड को लोड करने की गारंटी नहीं):
बेशक, आप उन पतों धन्यवाद गारंटी नहीं दे सकते एएसएलआर के लिए, लेकिन यह आपको एक विचार देता है/आपको लगता है कि: स्मृति पते भी कोड हैं। कोड और मेमोरी उसी (वर्चुअल) स्पेस में संग्रहीत है, Von Neumann आर्किटेक्चर के अनुसार जो अधिकांश आधुनिक कंप्यूटर लागू होते हैं। दुर्भाग्य से भी कोई ढेर नहीं है, ढेर आदि आप स्थानांतरित नहीं कर सकते हैं और उन पर नजर डालें।
यह blog post from Microsoft आपको वर्चुअल एड्रेस स्पेस का उच्च स्तरीय अवलोकन देता है। जैसा कि आप देख सकते हैं, इसका आधा ऑपरेटिंग सिस्टम द्वारा उपयोग के लिए आरक्षित है और दूसरा आधा आप जो कुछ भी कर सकते हैं (कोड, malloc
कॉल, स्टैक आवंटन इत्यादि) भर सकते हैं।
उपयोगकर्ता पक्ष पर पता स्थान कैसे काम करता है, इस संदर्भ में this diagram ने मुझे इसे समझने में मदद की। यह in this question से जुड़ा हुआ है जो विभिन्न संभावित मानचित्रों के रूप में सभ्य लिंक की एक श्रृंखला प्रदान करता है। हालांकि याद रखें, स्मृति में लेआउट भागों के संदर्भ में अलग होगा।
याद रखने का महत्वपूर्ण बिंदु यह है कि यह सब, प्रोग्राम, डेटा, ढेर, ढेर, कर्नेल सामान, स्मृति पते की एक बड़ी अनुक्रमिक श्रृंखला है, हालांकि ये वास्तव में वास्तविक स्मृति पते में अनुवाद कर सकते हैं या नहीं।
जब भी आप इसमें हों, तो आपको डिस्क पर निष्पादन योग्य दिखाई देने में भी रुचि हो सकती है। This article और this article particularly कुछ पीई फ़ाइल प्रारूप के गहराई से विश्लेषण प्रदान करते हैं। बाद के आलेख में थोड़ा आरेख भी है जो दिखाता है कि डेटा कैसे mapap'd है।
- 1. ऑब्जेक्ट मेमोरी में कैसा दिखता है?
- 2. विंडोज़ प्रक्रिया मेमोरी लेआउट
- 3. ज़्लिब हेडर कैसा दिखता है?
- 4. पायथन एप्लिकेशन का लेआउट कैसा दिखता है?
- 5. एंड्रॉइड स्टैक व्यू कैसा दिखता है?
- 6. एसपीडीवाई "हैलो वर्ल्ड" कैसा दिखता है?
- 7. डेटा मैपर आमतौर पर कैसा दिखता है?
- 8. अच्छा, आधुनिक सी कोड कैसा दिखता है?
- 9. एक HTML ई-मेल कैसा दिखता है?
- 10. एक नोड.जेएस वेब सेवा कैसा दिखता है?
- 11. संकलित सी ++ वर्ग कैसा दिखता है?
- 12. "अंतरफलक इंटरफ़ेस बढ़ाता है" संबंध यूएमएल में कैसा दिखता है?
- 13. यदि सी ++ में कोई शाखाहीन दिखता है तो कैसा दिखता है?
- 14. जावा एप्लेट्स के लिए भविष्य कैसा दिखता है?
- 15. डिफ़ॉल्ट जीएलएसएल शेडर्स कैसा दिखता है? संस्करण 330
- 16. क्लैंग: एएसटी (सार वाक्यविन्यास पेड़) कैसा दिखता है?
- 17. Emacs 'सीखने की अवस्था (वास्तव में) कैसा दिखता है?
- 18. एक std :: नक्शा विस्तारित प्रारंभकर्ता सूची कैसा दिखता है?
- 19. सी/सी ++ प्रोग्राम का मेमोरी लेआउट कैसा है?
- 20. प्रोसेस मेमोरी मैप (लिनक्स विंडोज)
- 21. मेमोरी मैप UIImage
- 22. मेमोरी मैप किए गए फ़ाइल को सीधे मेमोरी
- 23. विंडोज़ प्रक्रिया (या उपयोगकर्ता) मेमोरी सीमा सेट करें
- 24. प्रक्रिया 64-बिट प्रक्रिया की मेमोरी सीमा
- 25. मॉनिटरिंग विंडोज मेमोरी मैप की गई फ़ाइलें
- 26. यू-बूट मेमोरी मैप को कैसे बदलें
- 27. एक प्रक्रिया की डंप मेमोरी
- 28. विंडोज मेमोरी मैप की गई फ़ाइलें
- 29. विंडोज़: साझा मेमोरी का आकार बदलें
- 30. लिनक्स मेमोरी मैप की गई फाइलें आरक्षित भौतिक मेमोरी
विंडोज आंतरिक पुस्तक इस तरह की जानकारी का एक अच्छा स्रोत है। आप एक विशिष्ट प्रक्रिया के लेआउट को देखने के लिए VMMap का भी उपयोग कर सकते हैं। – Luke
@Luke यह एक अच्छा सुझाव है (वीएमएपी), आपको इसे एक जवाब में रखना चाहिए। यह आपको पता स्थान का एक अच्छा रंग कोडित प्रतिनिधित्व देता है। विंडोज़ आंतरिक भी एक अच्छा सुझाव है। –