Ich schreibe einen Emulator für einen 64-Bit-Linux-Host und einen 32-Bit-Gast. Ich verwende einige C ++ Stdlib -Konstrukte wie std :: string , std :: uncondeded_map , std :: vector , std :: fileSystem :: path . Ich brauche den 32-Bit-Adressraum, um durch Zuweisungen, mein Emulator, zur Laufzeit mit GLIBC oder LIBC ++ unberührt zu werden. Darüber hinaus muss ich sicherstellen, dass der Emulator selbst und alle von ihm verwendeten Bibliotheken dort nicht geladen werden. Diese Adressen müssen für die emulierte Anwendung selbst reserviert werden. < /P>
Wie kann ich das sicherstellen? Ich würde gerne über überschrittliche Malloc und seine Geschwister vermeiden. Wäre eine Linkeroption wie Image_base ausreichend? Gibt es eine Möglichkeit, wenn der GLIBC-Allocator beschließt, Speicher im 32-Bit-Adressraum zuzuweisen, obwohl die BRK dort nicht beginnt?
Stellen Sie sicher, dass Linux-Zuordnungen den 32-Bit-Adressraum heraushalten ⇐ Linux
-
- Similar Topics
- Replies
- Views
- Last post