X86 Vs X64 Software

The same goes for using a x64 on a 32bit. It will function fine but it is not being used up too it's full potential. Basically, x86 = 32bit(3.5GB RAM), x64 = 64bit(4GB RAM+).

Active3 years, 3 months ago

Please explain the difference between x86, x32 and x64? Its a bit confusing when it comes to x86 and x32 Stylus bt font free. because most of the time 32-bit programs run on x86..

getjishgetjish

3 Answers

x86 refers to the Intel processor architecture that was used in PCs. Model numbers were 8088 (8 bit bus version of 8086 and used in the first IBM PC), 8086, 286, 386, 486. After which they switched to names instead of numbers to stop AMD from copying the processor names. Pentium etc, never a Hexium :).

x64 is the architecture name for the extensions to the x86 instruction set that enable 64-bit code. Invented by AMD and later copied by Intel when they couldn't get their own 64-bit arch to be competitive, Itanium didn't fare well. Other names for it are x86_64, AMD's original name and commonly used in open source tools. And amd64, AMD's next name and commonly used in Microsoft tools. Intel's own names for it (EM64T and 'Intel 64') never caught on.

x32 is a fuzzy term that's not associated with hardware. It tends to be used to mean '32-bit' or '32-bit pointer architecture', Linux has an ABI by that name.


Hans and DarkDust answer covered i386/i686 and amd64/x86_64, so there's no sense in revisiting them. This answer will focus on X32, and provide some info learned after a X32 port.

x32 is an ABI for amd64/x86_64 CPUs using 32-bit integers, longs and pointers. The idea is to combine the smaller memory and cache footprint from 32-bit data types with the larger register set of x86_64. (Reference: Debian X32 Port page).

x32 can provide up to about 30% reduction in memory usage and up to about 40% increase in speed. The use cases for the architecture are:

  • vserver hosting (memory bound)
  • netbooks/tablets (low memory, performance)
  • scientific tasks (performance)

x32 is a somewhat recent addition. It requires kernel support (3.4 and above), distro support (see below), libc support (2.11 or above), and GCC 4.8 and above (improved address size prefix support).

For distros, it was made available in Ubuntu 13.04 or Fedora 17. Kernel support only required pointer to be in the range from 0x00000000 to 0xffffffff. From the System V Application Binary Interface, AMD64 (With LP64 and ILP32 Programming Models), Section 10.4, p. 132 (its the only sentence):

10.4 Kernel Support
Kernel should limit stack and addresses returned from system calls between 0x00000000 to 0xffffffff.

When booting a kernel with the support, you must use syscall.x32=y option. When building a kernel, you must include the CONFIG_X86_X32=y option. (Reference: Debian X32 Port page and X32 System V Application Binary Interface).

Here is some of what I have learned through a recent port after the Debian folks reported a few bugs on us after testing:

  • the system is a lot like X86
  • the preprocessor defines __x86_64__ (and friends) and__ILP32__, but not __i386__/__i686__ (and friends)
  • you cannot use __ILP32__ alone because it shows up unexpectedly under Clang and Sun Studio
  • when interacting with the stack, you must use the 64-bit instructions pushq and popq
  • once a register is populated/configured from 32-bit data types, you can perform the 64-bit operations on them, like adcq
  • be careful of the 0-extension that occurs on the upper 32-bits.

If you are looking for a test platform, then you can use Debian 8 or above. Their wiki page at Debian X32 Port has all the information. The 3-second tour: (1) enable X32 in the kernel at boot; (2) use debootstrap to install the X32 chroot environment, and (3) chroot debian-x32 to enter into the environment and test your software.

jwwjww

x86 means Intel 80x86 compatible. This used to include the 8086, a 16-bit only processor. Nowadays it roughly means any CPU with a 32-bit Intel compatible instruction set (usually anything from Pentium onwards). Never read x32 being used.

x64 means a CPU that is x86 compatible but has a 64-bit mode as well (most often the 64-bit instruction set as introduced by AMD is meant; Intel's idea of a 64-bit mode was totally stupid and luckily Intel admitted that and is now using AMDs variant).

So most of the time you can simplify it this way: x86 is Intel compatible in 32-bit mode, x64 is Intel compatible in 64-bit mode.

DarkDustDarkDust
79.8k15 gold badges169 silver badges204 bronze badges

Not the answer you're looking for? Browse other questions tagged architecture64-bitintel or ask your own question.

Active1 year, 8 months ago

X86 Vs X64 Software Free

My question is why is the shorthand for 32-bit x86 when the shorthand for 64-bit is x64?

I am guessing it has something to do with the days of 386s and 486s, when the 32-bit processors all ended in 86, but surely there were processors that didn't end in 86 and were still 32-bit?

Does anyone know the history of this or can direct me to a good source of info?

Thanks

Community
Simon FosterSimon Foster
1,3325 gold badges29 silver badges54 bronze badges

closed as off-topic by SvenFeb 9 '15 at 15:47

  • This question does not appear to be about server, networking, or related infrastructure administration within the scope defined in the help center.
If this question can be reworded to fit the rules in the help center, please edit the question.

6 Answers

Probably because the x86 line became synonymous with 32 bit processors for quite some time, while x64 was specifically a designation for 64 bit as applications and operating systems were transitioned over, and now there are software applications that require the 64 bit designation in order to run (like some VM software).

Windows 7 X64 Or X86

In other words, it's more marketing than technology for the reason.

Bart SilverstrimBart Silverstrim
29.6k9 gold badges58 silver badges85 bronze badges

Well, there once was a chip called 8086, with a cheaper version called 8088 that was used in a personal computer called IBM PC. An improved version of that chip was made and called 80186, though that wasn't a very popular version. However, an improved improved version was then made, and called 80286. Now, that was a very popular chip, in particular because it was used in a computer called IBM PC AT.

Later, Intel, which created and sold the 8086, 8088, 80186 and 80286 chips, all of which had a 16 bits architecture, saw the need to create a 32 bits chip to compete with similar offerings by others. To take advantage of its incumbent position, it made the new chip capable of running software made for the previously mentioned chips. Naturally, Intel called this new chip the 80386.

By then there were lots of computers using various versions of the Intel chips, and there were also non-Intel chips that were compatible with the Intel ones. So people started referring to them as 80x86.

After a while, Intel launched a new chip, but it decided to drop the 80, so it became the 486 instead of 80486. Likewise, people were dropping the '80' from the front of '80x86', and calling this stuff just x86.

Now, I'm pretty sure some will come and say Intel branded their chips x86 at such and such time, which they did, but I don't care.

The fact is that the ever-increasing middle digit gave rise to 80x86, and x86 came from that -- even if 80186 and 80286 were not 32 bits.

So, once Intel finally went 64 bits, what did it call its new architecture? Right! IA64! :-) It also retroactively renamed the x86 to IA32, so to speak. Only IA64 was not compatible with x86, I mean, IA32, so everyone ignored it.

What Is X64 Vs X86

And then came AMD, which decided the market wanted a 64 bits CPU that was compatible, to the extent possible, with the x86 family. As a marketing appeal, they called it the 'x86-64' family, and they were hugely succesful. So much so that Intel ended up grudgingly following with their own 64 bits CPU based on x86.

X86 vs x64 software free

Later, because people are lazy, the x86-64 became known simply as the x64.

So, in answer to your question, because x64 is shorter than x86-64.

Daniel C. SobralDaniel C. Sobral
4,3255 gold badges28 silver badges43 bronze badges

From Wikipedia:The term x86 refers to a family of instruction set architectures based on the Intel 8086 CPU.

bindbnbindbn
4,7172 gold badges21 silver badges23 bronze badges

Technically x86 simply refers to a family of processors and the instruction set they all use. It doesn't actually say anything specific about data sizes.

x86 started out as a 16-bit instruction set for 16-bit processors (the 8086 and 8088 processors), then was extended to a 32-bit instruction set for 32-bit processors (80386 and 80486), and now has been extended to a 64-bit instruction set for 64-bit processors. It used to be written as 80x86 to reflect the changing value in the middle of the chip model numbers, but somewhere along the line the 80 in the front was dropped, leaving just x86.

Blame the Pentium and it's offspring for changing the way in which processors were named and marketed, although all newer processors using Intel's x86 instruction set are still referred to as x86, i386, or i686 compatible (which means they all use extensions of the original 8086 instruction set).

Is Windows 10 X86 Or X64

x64 is really the odd man out here. The first name for the 64-bit extension to the x86 set was called x86-64. It was later named to AMD64 (because AMD were the ones to come up with the 64-bit extension originally). Intel licensed the 64-bit instruction set and named their version EM64T. Download garena plus latest version. Both instruction sets and the processors that use them are all still considered x86.

ScoRpionScoRpion

x86 and x64 are the names of the cpu architectures. There is more to a cpu architecture than just the number of bits per register.

x64 takes is name because the jump to 64 bits is the biggest change in the architecture from x86, but that jump is far from the only change.

x86 gets it's name from the venerable 8086 processor and family, which included 80286, 80368, 486, etc. At the time that x86 became established as a name for the architecture, 32 bits per register was not considered an important enough feature to justify building it into the name.

In addition, even the features of GIMP can be added to, through the use of downloadable modular plugins that can extend the functionality of the software. Over 100 plugins are currently available. For more Windows news and updates and more Windows software. May 18, 2018  download GIMP 2.8 Latest version Free For Windows XP / 7 / 8 / 10. It's the extraordinary Free Photo Editing Software & handy tool for Photo editors. GIMP for Windows. Download GIMP 2.10.12 via BitTorrent Download GIMP 2.10.12 directly. The download links above will attempt to download GIMP from one of our trusted mirror servers. If the mirrors do not work or you would rather download directly from our server, you can get the direct download here. Supported OS: Windows 7 or over. Gimp 2 download free windows 7 download operating system.

Joel CoelJoel Coel
10.8k11 gold badges52 silver badges91 bronze badges

Well, x64 never really came from an instruction set or chip manufacturer. It originally came from Windows XP. The first 64 bit edition of Windows was given the title Windows XP x64. And I guess the term x64 stuck from there.

The x86 moniker comes from the 32bit instruction set. So all x86 processors (without a leading 80) run the same 32 bit instruction set (and hence are all compatible). So x86 has become a defacto name for that set (and hence 32 bit).

AMD's original 64 bit extension on the x86 set was called AMD64. Intel later licensed it, but even still the name for the 64 bit x86 instruction set is typically AMD64.

But mostly it's brand distinction. Here's what a few different major Operating System distributions call each 64 bit flavor:

  • Ubuntu - amd64
  • Centos - x86_64
  • OpenSUSE - x86_64
  • FreeBSD - amd64
  • OpenBSD - amd64
  • NetBSD - amd64
  • Solaris - x64
  • Windows Server - x64

So basically, it seems that Linux prefers x86_64, BSD prefers amd64 and the others x64..

But the big thing to note is that they all mean the same thing for marketing purposes. In subtlety they do mean different things (well, amd64 means something different from x86_64 (the former being a vendor specific architecture, and the latter the subset of two vendors architectures), but x86_64x64), but for anyone except programmers writing in assembly or machine code it really doesn't make a different..

ircmaxellircmaxell

Not the answer you're looking for? Browse other questions tagged 32bit-64bithistory or ask your own question.