मैंने कई प्रोग्राम लिखे हैं और यह पता चला है कि 64 बिट में संकलित होने पर, मेमोरी मैपिंग सेगमेंट (उदाहरण के लिए साझा ऑब्जेक्ट्स और साझा मेमोरी रखी जाती है) है हमेशा 7f9aca84a000-7fff88400000 के आसपास कहीं स्थित है लेकिन बिल्कुल वही नहीं।ELF64/x86_64 और मेमोरी मैपिंग सेगमेंट (साझा ऑब्जेक्ट्स के लिए) का पता शुरू करें
मैं जानना चाहता हूं कि x86_64 आर्किटेक्चर (ईएलएफ 64) पर इस मेमोरी सेगमेंट के लिए एक निश्चित प्रारंभ पता है या इस सेगमेंट के लिए अधिकतम और न्यूनतम सीमा क्या है?
यही कारण है कि मैं इस सवाल से पूछता हूं। हम ट्रू 64 यूनिक्स से लिनक्स तक एक सिस्टम माइग्रेट कर रहे हैं। इस प्रणाली ने आईपीसी एसआईएस वी साझा स्मृति की जटिल फिक्स्ड मेमोरी मैपिंग का इस्तेमाल किया, और यह इस सेगमेंट के अंदर संरचना से दूसरे में जाने के लिए जंजीर सूची का उपयोग कर रहा है। कोड के इस टुकड़े के आकार और जटिलता के साथ, और हमारे पास सीमित समय है, हम शेयर मेमोरी की शुरुआत को ठीक करने के लिए एक मजबूत तरीका खोजने की कोशिश कर रहे हैं (प्रभावी रूप से एक निर्दिष्ट पते के साथ शमत का उपयोग करके जिस पर सेगमेंट संलग्न करना है)। 64 बिट के साथ, वर्चुअल एड्रेस स्पेस इतना विशाल (48 बिट प्रभावी रूप से संभावित पते) है कि "सुरक्षित" निश्चित पता चुनना 32 बिट की तुलना में बहुत आसान और कम जोखिम भरा है।
ऐसी अंतर्दृष्टि के लिए धन्यवाद। मैं आपको बताई गई सारी जानकारी पर चारों ओर देखने जा रहा हूं। – Huygens
तो अपना खुद का प्रारंभिक पता नहीं दे सकता है? – sdkie