First, let me apologize for the wall of text but this issue keeps going round because the ignorant (no offence, literal meaning intended) keep repeating what certain 'wannabe' technical types have told them (you know the kind, just enough knowledge to be dangerous, uses all kinds of tweaks that somehow never do much but break their system).
I read a few pages before getting tired, great announcement that cleared up some questions I had even now (recently joining), I did spot repeated technical confusion / ignorance, though, with regards to memory under 32 bit Windows.
32 bit OS does not limit you to 4 GiB nor does it, even worse, actually let you only touch 3.5 GiB (or some arbitrary other portion) of that memory. Address space is not the same as physical memory; the 32 bit word limits the virtual address space for each process to 4 GiB and on a standard setup 2 GiB of this is kernel memory space, meaning that without workarounds, the process has 2 GiB of address space to use for its own data. The OS is perfectly capable of accessing more than 4 GiB of installed physical memory and will definitely access all of the memory if 4 GiB is installed, however, Microsoft now (yes, they deliberately altered it) limits certain versions (essentially non-server stuff) to 4 GiB of physical memory and they do this in the kernel, according to licence. That's right, if you fiddle about, disabling protection that stops you swapping system files, so that you can put an appropriate 'business' kernel in there instead (or edit certain flags on the kernel) you can use as much physical memory as you like.
So, where does that 3.5 figure come from and why didn't Microsoft extend the address space up to 36 bits and so on? That's what 'PAE-enabled' kernels are all about surely? Well, your kernel is 'PAE-enabled' (technically that's the wrong term but the point is that software is in place to use a larger address word for talking to physical memory, this has been necessary for some time due to security enhancements that rely on it) even if you're using a 32 bit version of Windows. The problem was that many poorly written drivers made assumptions about memory layout which meant that it was not safe, in practice, to allow virtual addresses above the 4 GiB 'top' value and some caused problems even within the current range, if virtual addresses above 2 GiB were permitted to user processes. Microsoft actually tried it and made a business decision to leave the old virtual memory model untouched, figuring, arguably correctly, that extending it anyway was of limited value. As for the 3.5 GiB figure; that happens when addresses at the top or bottom of the virtual address range are reserved for right across all processes, so that the device or process mapped into it is visible to all processes. There is a 'video window' in there but there is some misunderstanding of that, so I'll tackle that shortly. In other words, you are getting reported the total available
virtual address range, not your installed
physical RAM. The weird and inconsistent way that Microsoft have reported 'memory' under Windows versions is why this confuses laymen, I suspect.
Another myth that I alluded to above is "my video card(s) have 2 GiB of memory, so I have even less, because it gets taken out of the 4 GiB". This one is harder for me to understand, to be honest - your video card memory is not RAM, in any of the senses that word is typically used outside the very technical. Your system cannot (well, couldn't until the advent of the current GP on GPU craze) in any way treat the memory on your video card (or any other adapter card not specifically designed for expanding memory) as general access memory, in fact it can't even see it. That's right, only the stuff internal to the card has access because it's not on the system bus at all and you remember the video window, right? That's what the rest of the system must use to put information into the video card's memory and that's handled by negotiating with the card and its drivers. That window is, from memory, typically about 256 MiB but it depends on card and configuration, certainly it's never been more than 512 MiB in my experience when I have been looking over reserved address ranges for devices.
TL,DR; 32 bits doesn't stop you using your memory upto or over 4 GiB but Windows licencing probably will stop you using more than 4 GiB if you have a 32 bit version of their OSes. Your video card's memory doesn't affect your available system memory in anyway and only tangentially affects available address ranges, in the same way it has for a long time.
{ For the curious and technically minded, PAE [Physical Address Extension] is actually a 'physical' processor specific extension, dating back to 1995 and Intel's Pentium Pro; it's present on all current processors and all older processors for at least the last decade. It's a necessary feature for implementation of 'no-execute bit' protection, amongst other things.
http://www.geoffchap...ense/memory.htm written by someone who happens to share my surname is a much more in depth treatment of Windows specific issues related to this, for the really curious and technical }