3 ms·
And why not? Almost all OSes except unix (and maybe *BSDs) ship almost completely 32bit userspace these days (Solaris does this for ~15 years). Most application
by dfox 16y ago
And why not? Almost all OSes except unix (and maybe *BSDs) ship almost completely 32bit userspace these days (Solaris does this for ~15 years). Most applications does not need more that 2GB of memory, which is largely only reason to go 64bit. Although on amd64 it's slightly more complex, because of new registers and instructions, which may overweight increased cache and memory BW requirements of 64bit code.
- tomjen3 16y agoDoesn't 32bit get your 4gb of memory, not just 2.
- stonemetal 16y agoWindows 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.
- coliveira 16y agoMac OS is 64bit, and most of the applications are already 64bit. Applications are compiled by default using 64bit (you need to pass a parameter to gcc to create 32 bit executables).