x86 vs. x86_64 Windows — please educate me.

_PixelNinja

[H]ard|Gawd
Joined
Feb 12, 2011
Messages
1,460
I have always been told there is no or very little reason to remain on a x86 operating system at this point in time. One of the main reasons other than addressing more RAM is that an x86_64 system offers better security, referring to Data Execution Program, Driver Signing and Kernel Patch Protection.

Recently however, in a quick discussion, an acquaintance of a friend said these features offer nothing new since DEP is effectively present on x86, that driver signature verification is also there and KPP has done nothing else but bother security solution developers. Thus if one does not need or have more than 3Gb of memory there is no reason to move to an x86_64 OS unless you are in an business environment.

Please keep in mind that my understanding of the innards of Windows is very basic/limited, but would anyone have the kindness to explain to me —as if you were talking to a 6 year old— if this is in fact correct and if yes other than for memory what are the actual advantages of x86_64 over x86? I'd very much like to understand this so that in turn, I would be able to explain to someone else who is a Windows-Guts-Illiterate whether yes or no they should move to x64.
 
When you can get 8GB of DDR3-1600 RAM for under $50 (the holiday sales saw prices go down to $25), there isn't much reason to run with less than 8GB.

One reason to use 32bit instead of 64bit that you didn't list is if you must install and run 16 bit apps. Those are all old legacy stuff that should be moved away from if at all possible. If you have hardware with drivers that don't support 64bit, it's well past time to discard it and get new hardware that does.

Generally speaking, the few reasons left to use 32bit instead of 64bit are so weak now that unless you have something that you absolutely must use that will not work on 64bit, you might as well run 64bit to save yourself the trouble when you upgrade your RAM later.
 
^ you can run 7 with XP mode and it will allow you to install and run 16bit apps.

Biggest reason to move over to x64 is security. There is alot of 32bit security holes that will never get fixed because it would mean breaking the OS functionality...but they can be mitigated on x64 (rendered useless)
 
On the other hand, there are already applications that roll out only in 64bit. Sure, they are mostly memory-hungry beasts, but that doesn't mean you can't use them with 3 or 4GB. Adobe's Premiere comes to mind.
While you cannot run 64bit on 32 bit OS, you can run 32bit on 64bit OS with (almost) no perf. penalty :) .
From my perspective, sticking to 32bit OS is justified only on computers that you never plan to upgrade beyond 4GB RAM (and not using 64-bit only software), or use some really old/odd program that for some reason doesn't get along with 64bit OS. Even in those cases a virtual machine can be the way to go.
You can leave security implications off, although KPP could be quite useful. Btw I'm not using AV software since 2005.
Bottom line - the RAM size and some special apps should be the almost only reason to talk about the differences between x86 and x64. I find no reason to use x86 nowadays unless the machine is below 2GB RAM, or the OS is already installed and the memory is <= 4GB.
 
Biggest reason to move over to x64 is security. There is alot of 32bit security holes that will never get fixed because it would mean breaking the OS functionality...but they can be mitigated on x64 (rendered useless)
This is what I would like to be addressed &#8212; the TL;DR version of my post could be read as "I was told the security benefits of x64 over x86 are moot" yet the specific functionalities I mentioned have always been put forward to me as, if not important, non negligible.

Also, would you mind going a bit more in depth regarding 32 bit security holes?
 
One of the only real reason I can see to go with 32-bit is the 64 bit version doesn't run 16 bit applications
 
One of the only real reason I can see to go with 32-bit is the 64 bit version doesn't run 16 bit applications

Clearly you didnt read the entire thread :eek: Was mentioned above, you can run 99% of 16 bit programs in XP compatibility mode.
 
xp mode is NOT xp compatibility mode and not everything is easy to configure or works well when run in xp mode. also it requires hardware virtualization support and only runs on pro, enterprise and ultimate
 
[XP Mode] requires hardware virtualization support
That requirement was dropped ages ago. You can run XP Mode on almost any processor now.

That said, the best way to go is to install XP Mode, then install VMWare Player. Player has a one-click option to import the XP Mode virtual machine and turn it into a VMWare virtual machine.

Advantages? Much faster virtual machine with more options for virtual hardware and a MUCH better virtual graphics card with proper support for 3D acceleration. Compatibility with old software tends to be much better.
 
This is what I would like to be addressed — the TL;DR version of my post could be read as "I was told the security benefits of x64 over x86 are moot" yet the specific functionalities I mentioned have always been put forward to me as, if not important, non negligible.

Also, would you mind going a bit more in depth regarding 32 bit security holes?

I know it's a generic statement but it pretty much comes straight from the horses mouth

More basic information here (this document is pretty old but it is relevant none the less)

http://download.microsoft.com/downl...83e3-86258e9e780c/Benefits_of_Windows_x64.doc
 
It's 2013, and yet we are still discussing the advantages/disadvantages of x64 over x86?

Also, only x64 versions of Windows (starting with Vista SP1) are capable of booting from a GPT disk on a system that uses UEFI instead of the BIOS.
 
I know it's a generic statement but it pretty much comes straight from the horses mouth

More basic information here (this document is pretty old but it is relevant none the less)

http://download.microsoft.com/downl...83e3-86258e9e780c/Benefits_of_Windows_x64.doc

Thank you I will have a look at that.

It's 2013, and yet we are still discussing the advantages/disadvantages of x64 over x86?

Also, only x64 versions of Windows (starting with Vista SP1) are capable of booting from a GPT disk on a system that uses UEFI instead of the BIOS.

Yes &#8212; we are discussing this in 2013 because this has not, as far as I can see, been addressed. When talking about the advantages of x86_64 over x86 there are two main points put forward by people:

&#8211; "x86_64 can address more than 3Gb of RAM" ; this is proven and widely accepted as fact. I am not seeking any information on this
&#8211; "x86_64 is more secure" ; this is often repeated left and right but I would like to know why. This is what interests me (cf. my OP and DEP, DSV and KPP).
 
x64 OS has another advantage that has not been mentioned often enough - it enables 32 bit programs with LARGE_ADDRESS_AWARE flag to use a full 4GB address space and memory. Most of todays programs that are still 32 bit, use this flag, Photoshop 32bit, also Firefox among others, are large address aware, and can use up to 4GB under x64.
Under 32bit OS they only see up to 2GB, unless /3GB switch has been used, which can lead to other problems though.

DEP is there in 32bit as well, for ages. AFAIK, KPP is the only security related feature that isn't in 32bit, but I might be wrong.
 
What I am surprised to see most of all is that there is no mention of the general and SIMD registers. They are wider and have been increased (moving of 64 bits of data rather than 32 bits)? For example, moving 64 bits of data for networking per core per support of TCP Chimney.

DEP is hardware mode and not end user selected (e.g. OptIn). Can also have additional security features implemented within the OS to be more effective security (q.v. ASLR http://en.wikipedia.org/wiki/Address_space_layout_randomization, KPP, etc)

GushpinBob makes a very good point on how particular features are not implemented with x86. Such as boot from GPT is only supported with x64. Same as tedych, with code that can have LARGE_ADDRESS_AWARE.

Another notes would be the fact that if something is compiled for x64 it would not have to emulate x86. Luckily, the x64 processor emulates x86 in hardware and is fast. So it is nice that we can interoperate without much or any issue at all.

The Word file posted does have the benefits. I would suggest reading it. It is a very good prospective of the benefits for those that never have read it.
 
Last edited by a moderator:
One thing I haven't seen mentioned yet is ASLR (Address Space Layout Randomization).

This security feature loads data into RAM in a random fashion, spread out across the entire available virtual address space. This makes it extremely difficult to exploit a program by targeting a specific memory address.

That said, the 32bit address space is so small it's possible to scan the entire thing and generate an exploit anyway. There aren't enough bits, it can't get random enough.

The 64bit address space is exponentially larger, which makes ASLR exponentially more effective. Exploits of this nature are pretty much moot under 64bit.
 
tedych, Shikami and Unknown-One &#8212; although you are venturing into territories I do not understand much (I'll have to read up more on all that), that is the kind of information I am looking for. Thank you.
 
One thing I haven't seen mentioned yet is ASLR (Address Space Layout Randomization).

I mentioned right above you and even provided a link before you posted. :)
 
Back
Top