For 32 bit operating systems the address length is 32 bits, which only allows 2 ^ 32 (4 294 967 296) addresses. Now, looking at that number it might seem like your operating system should support 4 GB, but all the other hardware such as your graphic card or any other card that contains memory (the video ram in your graphic card) that has internal memory also gets mapped into that address space which subtracts from that 4 Gigs, so if you have a graphic card with 512MB or ram your 4 Gig system would show 3.5 Gigs of usable memory.