More than 4 GB of RAM on Vista x86
I have a machine with Vista Business SP2 (x86). There are 6 GB of physical RAM on the machine. Looking in the system properties, it does say that I have 6 GB so Vista does see it all.
However, looking at the memory limits on MSDN, it says that 4 GB is the limit for a x86 version of Vista.
I work with virtualization (Virtual PC mostly) and I need to allocate at the very minimum 2 GB of RAM to the virtual box. Even with 6 GB of RAM, Virtual PC often won't start because "not enough memory on the host machine".
I'm wondering, does Vista actually use the whole 6 GB? And if it does, I would be willing to add more memory on the machine, but what is the actual maximum (as the values on msdn wouldn't be correct)?
MSDN does not lie. :-) 32-bit versions of Windows are maxed out at 4GB (and actually less when drivers are taken into account). Mark Russinovich's blog has the scoop. I always assumed this was a physical limitation of 32bit OS, but Mark implies its a licensing one:
"All 32-bit Windows client SKUs, however, including Windows Vista, Windows XP and Windows 2000 Professional, support a maximum of 4GB of physical memory".
I may be reading more into this than I should. Either way though, you need a 64bit OS to take advantage.
It is a limitation of x86- fundamentally, a 32-bit process cannot address more than 4GB, with half reserved for the kernel. However, if you were running multiple processes and had more than 4GB RAM, there's no reason that the OS could not set these 4GB "windows" into different sections of physical RAM. The reason that the different Windows 64bit versions address different amounts is because fundamentally, 64-bit goes up to something truly insane, and Windows has a lot of room to play with here.
That is, to be a little more direct, then sure, Vista probably will use the whole 6GB- but you still can't allocate more to an individual process, it would only help you if you were running several memory-intensive processes.