4 ms·
Hmm, also on x86 in order to be able to access more than 4 GiB of physical memory there was a new paging mode, Physical Address Extension, that makes the pages
by pmalynin 12y ago
Hmm, also on x86 in order to be able to access more than 4 GiB of physical memory there was a new paging mode, Physical Address Extension, that makes the pages 4MiB in size, that might have affected that as well but I doubt it. However this mode is required when entering long mode.
- conductor 12y agoA small addition though: although the operating system can address more than 4GiB of memory (up to 64 GiB) in PAE-enabled 32-bit x86 CPUs, the user-space applications are still limited to 4GiB of virtual address space and can't address more than that. But I don't see how it's related to the default base address chosen by linkers being 0x00400000. It's just a field in the PE header and can be easily changed.
- mobilio 12y agoAddress 0x00400000 can't be just changed in PE header. You need also to "rebase" your app with SDK tool. Tool is now deprecated because ALSR and reason that all apps/libraries should be relocable runtime.
- conductor 12y ago> You need also to "rebase" your app Sure you need to (unless it's some kind of a base independent code like a well-written shellcode). I was just saying that 0x00400000 isn't hard-coded in the x86 architecture or in Windows and it can be set to anything (aligned to 0x10000 boundary).
- userbinator 12y agoWith PAE pages can be either 4KB or 2MB. You're thinking of PSE-36.
- deleted 12y ago[deleted]
- deleted 12y ago[deleted]
- 0x0 12y agoPAE came ~20 years later, so it's not related to the OP