87

My processor is an Intel Core 2 Duo P8600 (2.40GHz). As far as I know that's a 64-bit processor - I'm a bit confused as the architecture is called AMD 64, is this a generic name given to 64-bit architectures? I've heard of x64 but can't see a release labelled with this.

8128
  • 28,740
Ross
  • 1,812

3 Answers3

113

X64, amd64 and x86-64 are names for the same processor type. It's often called amd64 because AMD came up with it initially. All current general-public 64-bit desktops and servers have an amd64 processor.

There is a processor type called IA-64 or Itanium. It's only found in supercomputers and a few high-end servers.

A 64-bit processor can run a 32-bit system, so you have a choice of installing the amd64 version or the i386 version. Here are a few points of comparison:

  • A few years ago, some programs had bugs when compiled for 64-bit processors, but that's mostly a thing of the past.

  • You can run 32-bit programs on a 64-bit system; the converse is not true.

  • A 32-bit kernel can access more than 4GB of RAM, so having more than 4GB of RAM is not a compelling reason to run a 64-bit kernel. On the other hand, a 32-bit program can only access less about 3GB of memory.

  • Which one is faster depends on the application (number crunching can be more than twice as fast in 64-bit mode, while symbolic manipulation can be more than twice as slow).

If in doubt, on an amd64-capable processor, use an amd64 distribution.

  • 2
    A 32-bit kernel -> A 64-bit kernel @Gilles ! ;) – Jelly Jan 03 '16 at 16:59
  • 1
    @Jelly I don't understand your comment. Were you reporting a typo? The only occurrence of “32-bit kernel” in my answer is correct. (Of course the sentence is also correct for a 64-bit kernel, but that isn't interesting.) – Gilles 'SO- stop being evil' Jan 04 '16 at 10:39
  • How much memory can a 32 bit kernel access? – Jelly Jan 04 '16 at 11:28
  • 1
    @Jelly PAE kernels (which includes the default kernel since 12.04) can access up to 64GB. – Gilles 'SO- stop being evil' Jan 04 '16 at 12:37
  • so those PAE kernels are technically-speaking 36 bits not 32 bits according to my math. A quick question: Why would you design a 36 when you can do full fledge 64 bits or was this a technicality of the past? – Jelly Jan 04 '16 at 14:50
  • 3
    @Jelly No, they're called 32-bit, because virtual addresses are on 32 bits. Physical addresses (which are only used internally in some places in the kernel) use 64 bits. You can call it a “32-bit kernel with 64-bit physical addresses”, but by no means a “36-bit” or “64-bit kernel” — that would mean that pointers (i.e. virtual addresses) use 36 or 64 bits. The limit to 2^36 isn't due to the number of bits in pointers, but the number of bits spanned by MMU descriptors and on some buses; these have no reason to be powers of 2. – Gilles 'SO- stop being evil' Jan 04 '16 at 16:08
  • I'm now seeing an arm64 distribution for debian linux. I assume this is a fairly rare breed of smart-phone processor. – Josiah Yoder Feb 28 '17 at 22:06
  • @JosiahYoder Not so rare, high-end smart phones have 64-bit ARM processors now. This thread was in the context of x86 processors, but the answer on arm would be substantially the same. – Gilles 'SO- stop being evil' Feb 28 '17 at 22:31
  • @Gilles, 3rd point should change as A 64-bit kernel can access more than 4GB of RAM, so having more than 4GB of RAM is not a compelling reason to run a 64-bit kernel. On the other hand, a 32-bit program can only access less about 3GB of memory. – gihanchanuka Jan 12 '19 at 18:51
  • 1
    @gihanchanuka No. That wouldn't even make sense. The point here is that a 32-bit kernel can access more than 4GB of RAM. – Gilles 'SO- stop being evil' Jan 12 '19 at 21:55
  • Refer to Process_Memory_Layout. @Gilles are you trying to say, even we install a 32-bit kernel on a 64-bit processor, still, it can access more than 4GB of RAM ? – gihanchanuka Jan 12 '19 at 22:53
23

You can use both the x86 and the amd64 images. And yes the initial generic name for the architecture was amd64 because it was developed, well, by AMD. Anyway, today is usually know as x86-64 or even x64.

Javier Rivera
  • 35,153
18

Intel licensed the AMD64 instruction set for their non-Itanium 64 Bit CPUs. That means, yes, AMD64 is one of the generic names for the x86 64 bit architecture.

Of course your CPU can run 32 bit x86 kernels as well - but this is not recommended since you lose all the benefits of the x86-64 architecture (mainly bigger address space and more registers).

maxschlepzig
  • 3,474