66

To check whether I am using 32bit or 64bit Ubuntu. I looked in How do I check if I have a 32-bit or a 64-bit OS? and found this answer uname -a. If it is shown as i386, it will be 32bit and amd64, it will be 64 bit, but I got this result:

Linux mukund-ThinkPad-Edge-E431 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:25:33 UTC 2013 i686 i686 i686 GNU/Linux

What is this i686? Is it 32bit or 64bit - I think it is 32bit, because all the Debian packages which I installed in it are of 32bit, so can anybody please give a detailed explanation.

1

6 Answers 6

62

i686 means that you're using 32 bit OS.

Go into the terminal and type in.

uname -a

If your results are similar to the one below, then yours is 64-bit; otherwise, it is 32-bit.

Linux ubuntu-tm 2.6.35-28-generic #49-Ubuntu SMP Tue Mar 1 14:39:03 UTC 2011 x86_64 GNU/Linux

If you have the x86_64 then your machine is 64-bit.

If your results are similar to this one; then you have 32-bit.

Linux Server 2.6.15-23-386 #1 SMP Tue Mar 1 13:49:40 UTC 2011 i686 GNU/Linux

Notice the i686 in the code, that means your machine is 32-bit.

UPDATE:

Type in the following in the terminal;

uname -m

It will give you either x86_64, which is 64-bit, or something else, which is 32-bit.

Courtesy: https://superuser.com/a/260999/130574 (Its a copy of that answer)

Also referred to as the P6 microarchitecture, it is the sixth generation Intel x86 microarchitecture, implemented by the Pentium Pro microprocessor that was introduced in November 1995. i686 code is intended to be executed on processors which are compatible with the 32 bit Intel x86 platform, which includes all Intel 32bit x86 processors up to and including the Pentium 4, etc. as well as processors from AMD and other vendors which make compatible 32bit chips.

Courtesy: Wikipedia and this link

In short:

It just means that you're running a 32 bit kernel supporting codes compatible with the i686 processor architecture.

N.B:

It doesn't mean that your system is only capable of running a 32bit kernel, it just means that you're currently running a 32 bit kernel based OS.

0
43

i686 is short to the P6 microarchitecture by intel, introduced with the Pentium Pro1

In short words, it is 32-bit architecture. 8086 and 80286 are even 16-bit processors. 80386 is the first 32-bit Intel processor (introduced Protected mode of work, in addition to Real mode). 80586 is the famous Pentium™.

i686 is widely used to describe 32-bit P6 processor architecture which is compatible with Pentium Pro/II and has it's instruction set. For example, AMD K7 (Duron™ and Athlon™) are i686.

2
  • 6
    Intel has never made a processor numbered 80686 (the Pentium II is numbered 80522/3/4). Apr 7, 2014 at 16:26
  • 3
    i686 refers to the P6 architecture that started with the Pentium Pro, not the Pentium II.
    – nobody
    Apr 7, 2014 at 17:48
29

As various posters have said, your kernel is 32-bit. The meaning of i686 deserves a little more explanation, however.

When compiling the Linux kernel (something that end-users don't generally need to do these days - the good people behind Ubuntu supply the kernel ready compiled), there are various options that you can tweak. One important option is CPU feature support.

All x86 CPUs are compatible with the original Intel 80386 (abbreviated i386), so if you want a kernel that's compatible with all x86 CPUs, you would compile an i386 kernel.

However, modern CPUs have many additional features (integrated floating point unit, MMX, etc.), which Linux can use if it is configured to do so. As a balance between backwards compatibility and performance, Ubuntu's kernel is compiled with support for the features that were available on the Intel Pentium II (sometimes abbreviated as i686), which is why the kernel shows up as i686.

This also partly explains why applications compiled for 64-bit processors are sometimes faster. The i686 first appeared in 1997, and modern processors have many features that were not available on the i686 (SSE, extra registers, etc.), but applications need to be compiled with support for these features, which might break compatibility with older systems. By contrast, x86_64 CPUs first appeared in 2003, so applications can be compiled with support for some of the features introduced between 1997 and 2003, without fear of compatibility issues.

6
  • 2
    There is no standard definition of "i686". It has been used to describe everything from P6 architecture (which includes CPUs that can no longer run Ubuntu), "Pentium II and above" by Ubuntu, and up to "Atom/Core2 or above" by other distributions. Apr 7, 2014 at 16:32
  • I like it when you say "This also partly explains why applications compiled for 64-bit processors are sometimes faster.". First time I ran a complete 64-bit system, I was blown away by the speed improvement. However, you will not see this speedup when you run a mixed 32-/64-bit system.
    – Zane
    Apr 7, 2014 at 16:36
  • 2
    CPUs also have the CPUID instruction which allows the CPU to report feature flags. You can see these in /proc/cpuinfo. So even if software is compiled for i686, it might check the flags to see if more current features are supported.
    – Zan Lynx
    Apr 7, 2014 at 18:00
  • Cheers for the info on feature flags and the vagaries of CPU naming. I must confess, it's been a long time since I had to compile my own kernel (probably somewhere in the 2.0 series), and I imagine Linux has gotten a lot cleverer about CPU features since then. If you think the presentation can be improved, please suggest any edits you can think of.
    – James_pic
    Apr 8, 2014 at 8:07
  • If your system has limited RAM, and isn't doing a lot of numeric processing, then you may actually get better performance out of a 32 bit system, as various things get stored more compactly, and your system can do a bit more before resorting to using disk IO. Don't make too many assumptions on this without testing though.
    – mc0e
    Nov 7, 2016 at 14:38
1

Open System Settings, then click on Details. Then you see what type OS you have.

I have Ubuntu 12.04 LTS 64 bit and uname -a shows this:

Linux ubuntu1 3.2.0-60-generic #91-Ubuntu SMP Wed Feb 19 03:54:44 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

See https://superuser.com/questions/238112/what-is-the-difference-between-i686-and-x86-64

2
  • one problem is there, i cannot find system settings in UE 3.8, i just installed it, system settings is not seen in system/administration or system/preferences why?
    – Mukund
    Apr 7, 2014 at 10:02
  • 1
    If you can't find it, you can start if from the terminal: gnome-control-center
    – SPRBRN
    Apr 7, 2014 at 11:43
1

i686 is widely used to describe 32-bit P6 processor architecture which is compatible with Pentium Pro/II and has it's instruction set.

0

From what I can find, you can also use lscpu to find your architecture, and is not limited to which version your kernel was compiled for.

You must log in to answer this question.

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