Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Possible Duplicate:
32-bit Windows Server address > 4GB RAM - How?

I know that for 32-bit OS, the addressable memory space for each process is "4G" (maybe just 3G in user space...). If I have a 8G RAM, is it correct that all of the processes can still utilize (shared) these 8G memory but each of them are limited to a maximum 4G? Or the whole system only can see and utilize 4G out of 8G and thus having 8G RAM on a 32-bit OS is the same as having 4G RAM on it?

share|improve this question

migrated from Dec 15 '11 at 14:32

This question came from our site for professional and enthusiast programmers.

marked as duplicate by Chris S, Scott Pack, jscott, MikeyB, pauska Dec 15 '11 at 15:12

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

has already been asked here:… – noah1989 Dec 15 '11 at 14:07
Not a question for StackOverflow I think... But yes, each 32bit process may use 2/3/4 G RAM (depending on the OS). A 32bit OS may use more then 4G of RAM if PAE (Physical Address Extension) is supported (which for example isn't the case for WinXP) see: – Hikaru-Shindo Dec 15 '11 at 14:09
@Hikaru-Shindo: That is incorrect. Each 32-bit process may use 2/3/4 GB of virtual memory. They can use more than 4GB of RAM if the OS supports it (either because it's a 64-bit OS or it's a 32-bit OS that supports PAE). There is no limit on how much physical RAM a 32-bit process can use (other than the OS limit) because the OS always controls physical RAM. – David Schwartz Jul 6 '12 at 9:13

On 32bit systems applications can map over 3GB (on Linux up to 64GB) of RAM using so called PAE (Physical Address Extension) support.

share|improve this answer

In most linux distributions you need a patched kernel that can address the extra ram. It is usually a "bigmem" kernel.

share|improve this answer

You are correct that a process under Linux is limited to 3G in userspace.

Being a 32bit OS, this means that at any one time there are only 2^32 addresses available (therefore 4G). Using technologies such as PAE, you can have up to 2^36 bytes physical RAM.

The task of mapping "only" 2^32 addresses at any one time is handled by the MMU (Memory Management Unit) using TLB entries (Translation Lookaside Buffer). It is, however, the role of the OS to tell the MMU to load/evict TLB entries.

share|improve this answer