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).
Jeff Jones has a two articles on the changes: part1, part2. Wikipedia has some information and there is this KB article (from Doubt).
Do standard modern computers support this? Aug 10, 2009 at 16:58
@ripper234 I think all x64 CPUs have the hardware support. Here is some info on it: en.wikipedia.org/wiki/NX_bit#Hardware_background Aug 18, 2009 at 2:49
@LukeQuinane, PatchGuard is not a plus point.– PacerierMar 19, 2015 at 18:57
32 bit Windows is limited to max 4 GB of RAM
1If you use Windows Server Enterprise Edition, its PAE support can use more than 4 GB of RAM. May 1, 2009 at 0:57
Often limited to 3.5GB or so in practice. May 1, 2009 at 1:24
2@Chris: PAE requires special coding, and this coding is not easy. Manually paged memory: just say no!– RichardMay 1, 2009 at 15:32
1@Richard: at OS level PAE is totally transparent: the OS will manage the 36bit physical AS, user mode application are still constrained in their 32bit AS. You might be referring to AWE (Address Windowing Extensions) which is a win32 API that enables application to manage their own AS in order to "circumvent" the 32bit limit; of course the app at any time can see only 4GB so it has to map/unmap pieces of data as needed using AWE (IOW it's an additional virtual memory layer) May 1, 2009 at 20:40
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.
3Hem, actually any modern OS supports PAE and can manage a 36bit physical AS; in the consumer editions of Windows PAE was disabled due to concerns of buggy drivers that could crash the machine (I think that it was turned off after XP SP2), the server versions all are PAE-capable. Linux and *BSD support PAE. May 1, 2009 at 0:35
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).