我已經寫幾個程序,結果發現,在64位的編譯時,所述存儲器映射段(爲共享對象)的地址,存儲器映射段(其中,例如,共享對象和共享存儲器被保持)是總是位於7f9aca84a000-7fff88400000附近,但從未完全相同。ELF64/x86_64的,並開始
我想知道是否有一個固定的起始地址x86_64體系(ELF64)這個內存段或最大和最小範圍這部分是什麼?
這就是爲什麼我問這個問題。我們正在將一個系統從Tru64 UNIX遷移到Linux。該系統使用IPC Sys V共享內存的一個複雜的固定內存映射,並且在該段內使用鏈接列表從結構到另一個結構。由於這段代碼的大小和複雜性以及我們手頭上有限的時間,我們正試圖找到一種可靠的方法來修復共享內存的開始(有效地使用帶有指定地址的shmat來附加段)。 64位,虛擬地址空間非常巨大(48位有效的可能地址),選擇「安全」固定地址比32位更容易,風險更小。
謝謝你的洞察力。我會環顧你指出的所有信息。 – Huygens
所以不能給我們自己的起始地址? – sdkie