217

What is the difference between standard i386 download and the amd64 download of Ubuntu 11.04? I am currently running the i386 on an amd machine, would my system work better with the amd64 download instead? (my machine was running Windows 7 64bit, but I neglected to look at that prior to installing Ubuntu).

2

5 Answers 5

217

i386 refers to the 32-bit edition and amd64 (or x86_64) refers to the 64-bit edition for Intel and AMD processors.

Wikipedia's i386 entry:

The Intel 80386, also known as the i386, or just 386, was a 32-bit microprocessor introduced by Intel in 1985... This is termed x86, IA-32, or the i386-architecture, depending on context.

Wikipedia's x86_64 entry:

x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets... After launching the architecture under the "x86-64" name, AMD renamed it AMD64... x86-64 is still used by many in the industry as a vendor-neutral term, while others, notably Sun Microsystems (now Oracle Corporation) and Microsoft, use x64.

Even if you have an intel CPU, you should use AMD64 to install 64-bit on your computer (it uses the same instruction sets).

I highly recommend using it. For the most part you will not notice a difference but for large workloads (such as video editing, gaming, etc), the computer will perform faster (the computer has the ability to calculate 2+2+2=6 instead of having to do 2+2=4+2=6 in an example). In the Windows world, a 32-bit OS will not let you use more than 3.5 Gigs of RAM on your computer (even if you have 8!). You'd need to use a 64-bit OS in order to fully use all RAM. For Linux, however, there's no such limit (thanks, Uri).

Regardless, the world has shifted from 32 bit and it's only there to support older machines that are incapable of running 64 bit.

12
  • That last part, is now (in Linux of course) Just not true, you CAN use more than the 3.5GB of RAM with the PAE kernel in 32 bit . Jul 24, 2011 at 0:11
  • wouldn't the 3.5gbs of ram limitation of 32bit be 4gbs-<graphics card memory> ?
    – Chriskin
    Jul 24, 2011 at 0:11
  • 4
    For the sake of simplicity I have omitted technicalities such as the graphics card memory. My aim was to say "if you have more than 3.5-4 gigs, use 64 bit".
    – user6658
    Jul 24, 2011 at 0:15
  • 1
    @Treefroginc What exact Tweaks? Jul 24, 2011 at 0:40
  • 2
    64 bit is every bit as usable and stable as 32 bit with the almost negligible exception of Flash under certain circumstances during a certain time of day and if the planets align giving out cosmic rays.
    – user6658
    Jul 24, 2011 at 5:50
54

The architecture is named after AMD because AMD invented it, with the Athlon 64. Similarly, the 32-bit i386 architecture is named after Intel's 386 processor, because it was the first of its kind, but i386 will also work on AMD processors. So yes you can use that ISO image.

Source: https://superuser.com/questions/128482/ubuntu-amd64-vs-i386

1
  • This is the comment I was looking for. Thanks.
    – gberth
    Sep 14, 2020 at 14:26
15

yes you can install amd64 bit to Intel 64 bit processor. AMD invented x86-64 bit instruction set processor so the name is just a tribute to AMD.

1
  • 3
    Thank you for clearing this up. I know it was a simple question, but I couldn't find the answer anywhere. Jun 1, 2012 at 14:22
11

The difference between amd64 and i386 is that amd64 is 64-bit while i386 is 32-bit. This is the width (in bits) of registers available in the core.

Basically the largest number that a 32-bit CPU core can handle in one go is a little over 4.29 billion while a 64-bit core can handle a number of a bit over 18.44 billion, billion.

The cores in modern PCs are capable of behaving as either a 64-bit or a 32-bit processor depending on which version of the operating system you have installed.

64-bit code tends to run faster than 32-bit code either because it can deal with bigger numbers in on go or because the 64-bit cores have more registers so can store more things without needing to put things in external memory. Though there is no guarantee that 64-bit code will run faster if the code has not been written to take advantage of the extra features of the processor.

Compiling on a 32-bit system will produce different code than a 64-bit system. You can prove this by compiling to assembly code on the two systems. Assuming your C file is myfile.c try gcc -S myfile.c on both systems and compare myfile.s

Well written code for a 32-bit system should compile and run on a 64-bit system but not all code is well written. Many programmers make assumptions about the system that may not be true: such as register width or byte order.

Without access to your source code it's difficult to see what the problem is but a segmenation fault indicates that an attempt has been made to access memory that does not belong to the program. This may, for example, indicate that mem_ptr is a 32-bit pointer which is fine on a 32-bit system but needs to be a 64-bit pointer on a 64-bit system.

2
  • i'll check it and come back upon this... Thankx
    – bikram990
    Mar 19, 2013 at 5:45
  • The realloc(mem_ptr, 0) function is freeing memory previously allocated with malloc, calloc, etc. If that pointer has been corrupted in any way then you are trying to free memory you don't own and this generates a segmentation fault Mar 19, 2013 at 8:05
6

Yes, you can use that .ISO. amd64 refers to the architecture. AMD was the first to create a 64-bit CPU, so I believe it was named this at the time, and the name stuck. It seems a little confusing, but amd64 just means 64-bit.

1
  • 11
    They were not the first to create a 64-bit cpu. Intel had one before but it was not backward compatible, so was not widely adopted. The name amd64 was to differentiate AMD's architecture from Intel's IA64, which has now been discontinued.
    – psusi
    May 31, 2012 at 22:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .