I know that the 32-Bit kernel can use PAE to allocate more RAM to applications with PAE (up to 64GB) as such I imagine if I am running 32 bit applications on a 32-bit kernel I can use all of my 24GB on one application (-what my OS is using ofc).

But what if I am using a 64-bit kernel? Can 32 bit (multilib) applications use all my memory in there too? Or is it limited to 4GB again?


A 32-bit process can access only about 3GB. (It can be less, depending on the kernel compilation options.) It doesn't matter whether the kernel is a 32-bit or 64-bit one — that only affects the ability to run 64-bit applications. PAE is a way to allow more physical memory but doesn't change the size of the virtual memory seen by each process. That's pretty much what “32-bit” means: a pointer uses 32 bits, so there are only 232 possible virtual addresses, so each process can access at most 232B = 4GB. Linux reserves 1GB for kernel use during system calls, which leaves 3GB.

An application can use more memory if it runs multiple processes.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.