On Fri, 18 Sep 2009, Greg Sevart wrote:
It isn't as much of a mystery as people make it out to be. By default, on a
32-bit system with 4GB of RAM, 2GB is available for user space, and 2GB is
reserved for exclusive use by the kernel--which would include kernel mode
drivers. You are also correct in that some of this upper space is reduced by
various system devices, some of which might not make much sense. The reason
that systems differ is because of varying chipsets, their maximum
addressable memory, the ability of the chipset and BIOS to remap memory
above system-reserved spaces, and, of course, the devices installed.
Using the /3GB switch will shift the division to 3GB of userland and 1GB of
kernel memory, but keep in mind that each individual 32-bit address will
still be limited to 2GB of memory unless it was compiled with
LARGE_ADDRESS_AWARE. It gets much more complicated when you're using PAE
(Physical Address Extensions) and AWE (Address Windowing Extensions), but
that realm is only relevant if you're running Server Enterprise or better.
Rule of thumb for this:
32Bit windows can support 4GB of total memory. This is memory ANYWHERE in
the system.
Lets say you have 4GB of RAM, 2 Nvidia Video cards with 768MB each, an
onboard ethernet card with 16k addressable memory, a modem with 16k
addressable, chipset with a small amount of memory, etc.
Windows will only address 4GB total.
So, priority goes to all the devices first, 16k from this piece, 16k from
that one, prolly 32k for chipset, etc. all small amounts.
Then comes the huge piece: Video cards. 1.5GB of memory in the video
card needs to be addressable. So that eats up 1.5GB of your memory.
So right away you are at less than 2.5GB of system memory available.
So there you go. The reason you don't have the rull 4GB is because
everything else in your system uses the same memory interface and has to
be mapped by windows into addressable space. That leaves only so much
room for RAM.
At this point, just about everyone should be planning on moving to a 64bit
system. You have the same type of limitation (video cards and stuff get
moved to the top of the addressable space) but it is like back in the
original 32 bit days. You have 1MB of system memory vs a 4GB memory
limit. Nothing to worry about right?
Well with 64 bit systems you're running with 4096MB of system memory vs a
(theoretical) 4PB (4,294,967,296 MB) limit. Current actual limit is only
1 TB (1024GB) (due to architecture implementation).
That memory itself won't ever be reduced by virtual memory or similar
because 64bit has the ability to address upto 16 EB. 16EB ==
17,179,869,184 GB
Christopher Fisk
--
BOFH Excuse #192:
runaway cat on system.
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.