The difference is mainly in how the programs interact with the system and the string of 0s and 1s stored per bit of information 32 bit OSes store variables in 32 bit address spaces where 64 bit Oses store everything in 64 bit spaces -- ie as you mentioned a 32 bit OS can only address 4GB of RAM because the memory addresses are stored in a 32 digit binary entry( a string of 32 0s or 1s) and 2^32 = 4,294,967,296 possible numbers or 4GB. of addresses available thus the memory limit of 4GB total addressable memory. Where a 64 bit OS stores the addresses in a 64 digit binary number and thus could theoritically address 2^64 unique addresses or 18,446,744,073,709,551,616 though most OSes currently limit that number to something much lower by design. (for example windows 7 limits it to a different amount based on the version as follows Starter: 8GB
Home Basic: 8GB
Home Premium: 16GB
Professional: 192GB
Enterprise: 192GB
Ultimate: 192GB )