9. What are the advantages and disadvantages of the x86-64 version?
The good:
* Support for more than 3 GB of RAM (with proper motherboard support; some older chipsets, like the Intel 945GM, do not allow the addressing of all 4 GB, even if your OS supports addressing all 4GB)
* Potentially faster execution resulting from the ability to operate on larger chunks of data and the addition of new registers (x86-32 being a register-starved architecture, this helps). This speed up requires that the program be compiled natively for x86-64, and the actual gain will vary from program to program.
* Future-proof. 32-bit will eventually die out one day. Could be many, many years down the road, though.
* Slightly more secure than the 32-bit version.
The bad:
* x86-64 requires more memory (and disk space) because the code is inherently larger, and because Windows has to also load the Wow64 libraries into memory (the stuff needed for backwards compat with 32-bit programs) (and keeping an extra set of DLLs around for 32-bit programs will eat up more disk space).
* All drivers must be signed. This is good (for security) but also bad (for small custom software that can't afford driver signing).
The ugly:
* You have to make sure that you have 64-bit drivers. Some manufacturers, such as Dell, haven't released 64-bit drivers for some of their older hardware.
* 32-bit shell extensions won't work.
* 16-bit programs don't work (not really a limitation of Windows, but of how AMD designed x86-64).