With Mac Pros holding up to 32 GB of RAM, Mac users are wondering why they're only seeing Windows XP and Vista use 2 GB of RAM. Reports of plots by Microsoft or Apple to keep Windows off of Mac hardware aside, there does seem to be a logical explanation. Piotr Naskrecki framed the issue:
Why can't Windows Vista Ultimate (32-bit) recognize 4 GB RAM installed on my Mac Pro running Boot Camp? Vista only recognizes 2 GB (OS X 10.5 recognizes 4 GB without any problem). I have seen various blog threads claiming that Vista 32-bit is incapable of recognizing more than 2 GB, which is clearly untrue since my Dell XPS running this operating system has, and recognizes, 4 GB RAM.
The answer for Vista and Windows XP is slightly different. The maximum amount of memory that Windows Vista can use differs with the various versions of Vista. It also varies with the computer hardware. Vista Ultimate can use 4 GB max, but the amount of RAM visible to the user will vary from computer-to-computer, depending on the bus, I/O cards, graphics card, etc.
Part of the issue is the way Vista reports RAM usage, which is different than the way Mac OS X does. There's an explanation at Tony Northrup's blog, with a link to a paper by HP. The main gist:
So, if your video adapter has 512MB of RAM (like mine does), your maximum memory is going to at most be 3.5GB, because Vista has to use 512MB of that address space to address your video memory. It'll actually be lower than the 3.5GB because there are other hardware resources that need address space, too. So, it never hurts to fill your computer with 4GB of RAM-you'll definitely get the max, but you won't be able to address it all. You probably won't be able to address much more than 3GB, and you might not be able to address more than 2GB.
That's for Vista. Windows XP typically can see 2 GB of RAM maximum. Microsoft has a hack that can change this to 3 GB, which involves editing the boot.ini file. Of course, the great thing about virtual machines is that if totally mess up Windows, you can simply replace the VM with your backup. (You do backup, right?)
More on Vista RAM limitations; Vista SP1 reports 4 MB
Monday, September 8, 2008
Several readers responded to last week's report of Windows Vista 32-bit version crashing a Mac (Boot Camp) with 4-MB of RAM. Although these readers did not have the crashing problem, the did verify that Vista only reported 3 MB in a Mac with 4 MB or RAM. As we've previously reported, Windows Vista and XP reserve a certain amount of RAM for addressing video memory, which means Windows "can't see" the rest.
It turns out that Vista Service Pack 1 changed how Vista reports RAM. Although it cannot address any more RAM, SP1 now reports a full 4MB in a 4MB Mac. Apple Insider has an article that mentions the change:
In Vista and prior, it reported usable RAM, while in SP1 they changed it to report installed RAM ignoring the fact that much of the RAM was unusable due to overlap with video memory." And so many PC users are installing 4GB of RAM in their PCs and thinking that it is being used by the system, when in fact it is no more beneficial than if the RAM were simply poked halfway into the CD slot.
Apple Insider also describes why this is not a problem with Mac OS X:
With Intel's "Santa Rosa" platform, Apple's Core 2 Duo machines gained chipset support to internally handle 8GB of address space. This allows Santa Rosa Macs to shove MMIO up into the high end of the space and reclaim all of the addresses below the 4GB mark, making the full amount available to the system. No version of 32-bit Windows supports this, and conversely, there is no 32-bit version of Mac OS X Leopard, so the "where is my full 4GB?" issue is now a Windows-only problem going forward.
(Thanks to John Schumacher in the United Kingdom for the link to article.)