3 ms·
Windows at least chops off 2GB for itself so you only have 2GB of the address space. Other OSes chop off similar chunks.
by stonemetal 16y ago
Windows at least chops off 2GB for itself so you only have 2GB of the address space. Other OSes chop off similar chunks.
- pmjordan 16y agoYou can boot with a special parameter to increase the available user address space to about 3GB, but that's not terribly well-supported, and you'd only want to do that on your own servers, not expect customers to do it. There are also explicit paging APIs which allow you to unmap ranges and later map them back in, but it's a pain. Usefulness of this is limited anyway, as physical RAM is limited to around 3GB on the client versions of Windows (Windows Server supports more via PAE). A useful trick is to run a 32-bit process on a 64-bit version of Windows, you can get close to 4GB of address space that way. No need for special boot flags. For all of these cases, your executable needs a special "big address space" flag set. FWIW, most x86 Linux kernels set aside 3GB for user space.