私はいくつかのプログラムを書いており、64ビットでコンパイルするとメモリマッピングセグメント(例えば共有オブジェクトと共有メモリが保持される)が常に7f9aca84a000-7fff88400000のどこかに位置しますが、まったく同じではありません。ELF64/x86_64とメモリマッピングセグメントの開始アドレス(共有オブジェクト用)
x86_64アーキテクチャ(ELF64)でこのメモリセグメントの固定開始アドレスがあるかどうか、またはこのセグメントの最大範囲と最小範囲は何ですか?
ここで私はこの質問をしています。システムをTru64 UNIXからLinuxに移行しています。このシステムでは、IPC Sys V共有メモリの複雑な固定メモリマッピングが使用され、このセグメント内の構造から別の構造に移動するために連鎖リストが使用されています。このコードのサイズと複雑さ、そして私たちが手に取っていた時間が限られているため、共有メモリの開始を固定する堅牢な方法を見つけようとしています(セグメントを接続する特定のアドレス)。 64ビットでは、仮想アドレス空間が非常に大きく(48ビットの事実上可能なアドレス)、「安全な」固定アドレスを選択する方が32ビットよりもはるかに簡単でリスクも低くなります。
このような洞察をいただきありがとうございます。あなたが私に指摘したすべての情報を見て回ります。 – Huygens
私たち自身の開始アドレスを与えることはできませんか? – sdkie