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).
32 bit Windows is limited to max 4 GB of RAM
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.
The main advantage is for the memory space: much more than 4Go.
That means I can allocate 4Go to a virtual machine (one process, with for instance an Ubuntu inside), while having more than enough for my current Win64 session.
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).
When it comes to Windows XP running 64 bit allows the use of 4gb of RAM or more. In 32 bit XP there is a total of 4gb RAM shared between the motherboard and the graphics card.
Therefore if you have a 512mb graphics card the maximum memory available to Windows is 3.5gb.
On Windows 32-bit, each process is permitted to access only 2GB by default. This is much worse than being able to use 4GB. The system gets to use the remaining memory, but as noted the video card takes its share from that.
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).