Last edited by Beskar; 02-23-2010 at 00:32.
Days since the Apocalypse began
"We are living in space-age times but there's too many of us thinking with stone-age minds" | How to spot a Humanist
"Men of Quality do not fear Equality." | "Belief doesn't change facts. Facts, if you are reasonable, should change your beliefs."
I'm still not sure that's quite right. I think we need to seperate out two seperate issues to try to clarify....
First, no 32-bit software will ever support more than 4GB of address space. With 2^32 bits of address space, it's just not possible.
Now, the 2GB limitation comes in once you're talking about Windows. In 32-bit Windows, the most RAM the system would ever see is 3GB and change. That's because, as 32-bit software, it can never(excepting PAE) address address more than 4GB and part of that must be reserved for hardware addresses. By default, 32-bit Windows would reserve part of that for itself, leaving 2GB for user processes. Therefore, 32-bit programs made for Windows never needed to see more than 2GB of RAM and most are not coded to be aware of larger addresses. The 3GB switch that was mentioned previously would make the OS leave 3GB of space available for user processes, but the result would be that the OS would be left with less RAM- generally not a good idea. And even still, no one application would see more than 2GB.
Now, with 64-bit Windows you have many more times the amount of addressable space (2^64). However, most of us are still running 32-bit applications on our 64-bit Windows and the 2GB limitation still applies. In the rare instance when we're running a 64-bit app, it can have access to huge amounts of RAM, but most apps we're using are still 32-bit. The benefit to running a 32-bit app on 64-bit Windows is that you can have a bigger pool of RAM that can be handed out in 2GB or smaller chunks
Here's a table from MSDN that outlines some of what I'm talking about.![]()
"Don't believe everything you read online."
-Abraham Lincoln
The 3GB switch is IIRC intended as a difference between Server and Consumer/Workstation versions of Windows. Much like how Server versions can use more TCP/IP sockets concurrently than Workstations can: an arbitrary restriction imposed on the part of MS. (The restriction is entirely arbitrary in the sense that it was created in the days that RAM starvation would typically occur way before 2GB was used anyways.)
Last edited by Tellos Athenaios; 02-23-2010 at 02:46.
- Tellos Athenaios
CUF tool - XIDX - PACK tool - SD tool - EVT tool - EB Install Guide - How to track down loading CTD's - EB 1.1 Maps thread
“ὁ δ᾽ ἠλίθιος ὣσπερ πρόβατον βῆ βῆ λέγων βαδίζει” – Kratinos in Dionysalexandros.
Bookmarks