Windows では、PE ヘッダーにフラグを設定することで、アドレス空間の使用を 32 ビットの解像度に制限できます ( /LARGEADDRESSAWARE
)。詳しく説明すると、このフラグを設定すると、32 ビットの仮想アドレス空間環境が効果的にエミュレートされます (イメージは、戻りアドレス <= 0xFFFFFFFF に割り当てられます) にロードされます。
Linux には同等の機能がありますか?
Windows では、PE ヘッダーにフラグを設定することで、アドレス空間の使用を 32 ビットの解像度に制限できます ( /LARGEADDRESSAWARE
)。詳しく説明すると、このフラグを設定すると、32 ビットの仮想アドレス空間環境が効果的にエミュレートされます (イメージは、戻りアドレス <= 0xFFFFFFFF に割り当てられます) にロードされます。
Linux には同等の機能がありますか?
/LARGEADDRESSAWARE
32 ビット Windows アプリケーション用に 2 ~ 4 ギガバイトの拡張アドレス空間を使用できます。そうしないと、Windows 上の 32 ビット アプリケーションはこれらのアドレスに到達できません。Linux は早い段階から到達できたので、/LARGEADRSSAWARE
リンク フラグは必要ありません。
x86-64 で 32 ビット空間にメモリを割り当てるには、フラグを使用して実行mmap(2)
します。MAP_32BIT