I would like to hear community opinions on reasons to switch, to utilise, or when one should consider a x64 platform. Plus are there any additional benefits of running 64-bit Windows 7? over 64-bit Pre-Win7 OS's?
There are security benefits when running a 64 bit version of Windows. Basically Microsoft was able to restart with more of a clean slate and implement some extra safe guards. It is partially enabled by improved hardware support in the 64 bit CPU.
Here is a quick list of differences:
- Support for hardware based DEP.
- PatchGuard to prevent drivers or rootkits from patching the kernel.
- Signed drivers.
- Code integrity checksums. Binaries are checked before loading.
- Removal of the 16 bit subsystem (reducing attack surface).
The benefit is that each process can then address over 4GB of memory per process. Technically the OS can have more than 4GB of RAM with 32-bit (but limited to 4GB per process) but in practice no modern OS actually implements that so a second benefit is that the OS can have more than 4GB of RAM.
Also, on 32 bit OSs, the upper part of the 4GB address space is used by device drivers and other things (like GPU RAM mapping), reducing the actual memory to about 3-3.5GB. That goes away with 64 bit OSs.
Certain applications, particularly photo and video related, will use more than 4GB per process. Photoshop on large images, video editing, 3D modelling, etc can all benefit from more than 4GB per process.
Probably the most evident advantage over the 32bit version is the ability to use more than 4GB of RAM (well, actually more than 3.x since part of the AS is used for MMIO). x86_64 ISA also doubles the number of GPRs from 8 (and some of them are non that general...) to 16, likewise XMM registers are raised to 16. And of course when in LM the CPU can handle 64bit integers directly (which can be a big win for certain workloads).
32-bit Windows has a 4gb address space. You cannot use more than 4gb of physical ram.
Even if you have only 4gb of physical ram, Windows x64 will use that ram more efficiently. With Windows x86 by default only 2gb of the address space is set aside for applications, the other 2gb is reserved for the OS. You can change this split to 3gb apps/1gb OS, though not every app. is flagged to take advantage of this.
Also, there are holes in memory address space which have been set aside for device IO (transferring data to hds, video cards, USB devices, etc.) You can't use the physical memory which shares these addresses. Depending on various configuration settings this can account for as much as half a gig of unusable RAM. So on 32-bit Windows with 4gb of physical ram you'll actually end up with maybe only 3.7gb of usable ram, and at most 3gb of that usable by applications. Whereas with 64-bit Windows all of that 4gb can be used by applications (or the kernel).