What happens duke, the motherboards (in general) have a maximum memory amount that can be used for any OS. Nominally these days it`s 8G, but u can get boards that will use in excess of this. 16G, 32G,,,, then ur getting into the business side of pcs/servers.
So the majority of ur home use boards will be 8G max. To offer to any OS that gets installed on it. Addressable from $0000000000 to $7ffffffffff, if u have 8G installed.
Any devices installed on the pc use areas of this memory in which to work. A select number of devices will have there own memory, there are 2 types at work here. U have te device that has it`s own memory and doesn`t share it with any other device and those that have memory that it will use in conjunction with the overall memory.
When a device has memory and it needs to make this memory available to the machine as a whole, that memory has to be able to be referenced to. i.e. addressable. So it needs to take up a mapable area inside the $0 to $7ffffffffff. If u don`t map the devices` memory to this, no other device inside the machine will be able to reference it. Copy to it, read it, whatever.
Of course, if u for example, put a graphics card in there that uses 512m (0.5G), it takes away at the 8G that the machine has to allow other devices to allocate. Effectively putting in the graphics card has allocated 0.5G of the systems overall memory to itself.
The next device will allocate from the 7.5G remaining.
Now u come to ur OS. If u`r OS is 32 bit, it means that the software associated with the OS can only see single values within a 32 bit range. They can also be clever and use 2 single values together to calculate in numbers in excess of 32 bits. But addressing wize, ur highest number in 32bits is $ffffffff, lowest being $00000000. Which happens to be 4G. 64 bit is twice as many bits, so theoretically an OS could see and reference $ffffffffffffffff which is a whole lot higher than 8G.
So with ur 8G installed in ur machine. The OS u install on it can see 4G (32bit) and the whole 8G (64 bit).
((( Some 32bit OSs are semi-limited to 2G. This is down to bad programming on the writers behalf. They`ve worked whilst creating the OS where 2G was about as expensive and practical as 8G+ is today - so they`ve made assumptions in their coding. These people shouldn`t code, imo. As years go by and their limited OS has been patched beyond recognition, tech has moved on despite their kind, and they`ve had to allow for this addition to their 2G limit and have included things like "Physical Address Extension", which in non buzz words means "we`re cr@p and need away out of the eff-up we`ve created so we`ve made this work-around". )))
If u`r OS can only see the 4G range, the installation for the devices will note this and whilst popping in drivers etc, will map the device`s memory requirements from 0-4G. A restart is required after this in many cases, as the memory is mapped elsewhere. Devices can make requests as to where they are allocated in the memory pool.
Ur graphics card has 512m, ur 4G memory is now 3.5G - before the other devices take their share. Usually ends up around 3.25G or 3G in this case.
hehe kinda confuzed myself along the way, but that`s the jist of it.