What are the lower level advantages and disadvantages of 64-bit/32-bit?
The difference is exactly 32 bit ;-)
You need 64 bit hardware (processor) to run a 64 bit OS. You need a 64 bit OS to run 64 bit software. This are the dependencies.
- In a 32 bit system you are limited to addressing 4 GiByte (2^32) memory, in a 64 bit there is a theoretical limit of 2^64 byte.
- 64 Bit software needs slightly more memory, mainly for pointers are 8 Bytes instead of 4
- on x86_64, 64 Bit executables need more memory, as there is an additional opcode for many instructions, and thus may run slower
- on x86_64, 64 Bit software can use more registers and has the potential to run faster
64 bit refers to the width of registers, memory addressing space, etc. One benefit is the ability to address more than 4GB of memory.
Wikipedia has an article on 64-bit computing with more details.
Edit: The advantages to more memory are that the operating system and programs have more virtual addressing space--16 exabytes (17.2 billion GB)--and, more importantly, that more physical memory can be added to a system and addressed, causing less swapping of virtual memory to and from disk.
The advantage to wider registers and data buses are that it is easier and faster to move the same amount of data around. An operation that required two or more registers can now be done with one.
So, performance is typically increased when software is recompiled for 64 bits.
A disadvantage is that wider data can mean more space taken by the same data. For instance storing the number 300 requires nine bits. If it's stored in a 32 bit integer, 23 bits are wasted. In 64 bit, that wastage becomes 55 bits. So, without retooling, a simple recompile to 64 bit can yield faster, but slightly more bloated software.
Edit: Also there are 64-bit technology pages here:
- Intel® 64 Architecture
- AMD64 Solutions
- IBM: From the stacks: Making the transition to 64 bits
- IBM: Porting Linux applications to 64-bit systems
- IBM: 64-Bit Computing Decision-Maker’s Guide
- CodingHorror: Is it time for 64 bit on the desktop?
- ClassicArs: An Introduction to 64-bit Computing and x86-64